本文档提供了下载、安装和使用 CnosDB FDW 的简要说明。请根据您的实际需求和环境对文档进行调整。
概述
CnosDB FDW 是一个用于在 PostgreSQL 数据库中访问 CnosDB 数据库的外部数据包装器(Foreign Data Wrapper)。它提供了在 PostgreSQL 中查询 CnosDB 数据的功能。
本文档将指导您下载、安装和使用 CnosDB FDW。
下载
方法一
git clone git@github.com:cnosdb/wrappers.git
cd wrappers/wrappers
CnosDB FDW依赖pgrx,在安装之前需要先安装pgrx,可以参考官方仓库readme [
https://github.com/pgcentralfoundation/pgrx#system-requirements\]。
pgrx安装完毕后,运行以下命令:
cargo pgrx install --pg-config [path_to_pg_config] --features cnosdb_fdw
方法二
release [
https://github.com/cnosdb/wrappers/releases\]下载对应系统的动态库,放置到Postgres对应目录
$PATH_TO_PG/share/extension/wrappers.control
$PATH_TO_PG/lib/wrappers-0.1.18.so
$PATH_TO_PG/share/extension/wrappers--0.1.18.sql
用例
准备CnosDB数据
启动CnosDB server和client,在client中输入以下SQL:
CREATE TABLE air (
visibility DOUBLE,
temperature DOUBLE,
pressure DOUBLE,
TAGS(station)
);
INSERT INTO air (time, station, visibility, temperature, pressure) VALUES('2023-01-01 01:10:00', 'XiaoMaiDao', 79, 80, 63);
INSERT INTO air (time, station, visibility, temperature, pressure) VALUES('2023-01-01 01:20:00', 'XiaoMai', 80, 60, 62);
INSERT INTO air (time, station, visibility, temperature, pressure) VALUES('2023-01-01 01:30:00', 'Xiao', 81, 70, 61);
执行查询SQL:
SELECT * FROM air;
public ❯ select * from air;
+---------------------+------------+------------+-------------+----------+
| time | station | visibility | temperature | pressure |
+---------------------+------------+------------+-------------+----------+
| 2023-01-01T01:10:00 | XiaoMaiDao | 79.0 | 80.0 | 63.0 |
| 2023-01-01T01:20:00 | XiaoMai | 80.0 | 60.0 | 62.0 |
| 2023-01-01T01:30:00 | Xiao | 81.0 | 70.0 | 61.0 |
+---------------------+------------+------------+-------------+----------+
使用Postgres查询CnosDB数据
创建CnosDB外部表
-- create extension
create extension wrappers;
SELECT * FROM pg_extension;
-- create foreign data wrapper and enable 'CnosdbFdw'
CREATE FOREIGN DATA WRAPPER cnosdb_wrapper
HANDLER cnosdb_fdw_handler
VALIDATOR cnosdb_fdw_validator;
SELECT * FROM pg_foreign_data_wrapper;
-- create server and specify custom options
CREATE SERVER my_cnosdb_server
FOREIGN DATA WRAPPER cnosdb_wrapper
OPTIONS (
url 'http://localhost:8904',
username 'root',
password '',
tenant 'cnosdb',
db 'public'
);
-- create an example foreign table
CREATE FOREIGN TABLE air(
time timestamp,
station text,
visibility double precision,
temperature double precision,
pressure double precision
)
SERVER my_cnosdb_server
OPTIONS (
table 'air'
);
查询CnosDB数据
SELECT * FROM air;
postgres=# select * from air;
time | station | visibility | temperature | pressure
---------------------+------------+------------+-------------+----------
2023-01-01 01:30:00 | Xiao | 81 | 70 | 61
2023-01-01 01:20:00 | XiaoMai | 80 | 60 | 62
2023-01-01 01:10:00 | XiaoMaiDao | 79 | 80 | 63
(3 rows)
注意事项
- 在使用 CnosDB FDW 之前,请确保已安装和配置了正确版本的 CnosDB 数据库。
- 目前只支持PostgreSQL v14, v15和v16。
- 在创建外部服务器时,根据实际情况修改URL。
- 在创建外部表时,根据实际情况修改表名和列定义。
- CnosDB FDW 支持常见的查询操作,但某些高级功能(如时空函数,事务)可能受到限制。
- CnosDB FDW 的代码实现存在限制,查询性能以及内存使用情况会受到影响。
- 请参考 CnosDB FDW 的官方文档以获取更多详细信息和示例。
结论
通过 CnosDB FDW,您可以轻松地在 PostgreSQL 中访问和操作 CnosDB 数据库。本文档提供了下载、安装和使用 CnosDB FDW 的简要说明。请根据您的实际需求和环境对文档进行调整。
如果您需要更多帮助或有其他问题,请参考 CnosDB FDW 的官方文档或联系 CnosDB 支持团队。
希望这篇示例文档对您有所帮助!如果您有其他问题,请随时提问。
CnosDB简介
CnosDB是一款高性能、高易用性的开源分布式时序数据库,现已正式发布及全部开源。
欢迎关注我们的社区网站:https://cn.cnosdb.com