ITPub博客

首页 > 数据库 > 国内数据库 > CnosDB FDW:打通一扇通往PostgreSQL世界的大门

CnosDB FDW:打通一扇通往PostgreSQL世界的大门

原创 国内数据库 作者:CnosDB 时间:2023-12-06 15:22:47 0 删除 编辑

概述

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 支持团队。

希望这篇示例文档对您有所帮助!如果您有其他问题,请随时提问。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026635/viewspace-2999017/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
打造高性能、高压缩比、高可用的分布式云原生时间序列数据库,引领世界迈向万物智联。 欢迎关注 https://www.cnosdb.com

注册时间:2023-02-10

  • 博文量
    31
  • 访问量
    23526