
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 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 | +---------------------+------------+------------+-------------+----------+
-- 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' );
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,您可以轻松地在 PostgreSQL 中访问和操作 CnosDB 数据库。本文档提供了下载、安装和使用 CnosDB FDW 的简要说明。请根据您的实际需求和环境对文档进行调整。
如果您需要更多帮助或有其他问题,请参考 CnosDB FDW 的官方文档或联系 CnosDB 支持团队。
希望这篇示例文档对您有所帮助!如果您有其他问题,请随时提问。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026635/viewspace-2999017/ ,如需转载,请注明出处,否则将追究法律责任。