pgspider 简单试用
前边已经构建好了,关于sqlite,mysql,以及默认的pg 的扩展,以下是一个简单的学习试用
环境准备
为了简单目前只测试关于pg的,后边会学习关于mysql的
- docker-compose 文件
version: "3"
services:
pg-core:
image: dalongrong/pgspider:core
ports:
- "5432:5432"
environment:
- "POSTGRES_PASSWORD:dalong"
pg:
image: postgres:12.1-alpine
ports:
- "5433:5432"
environment:
- "POSTGRES_PASSWORD:dalong"
pg-mysql:
image: dalongrong/pgspider:mysql
ports:
- "5434:5432"
environment:
- "POSTGRES_PASSWORD:dalong"
mysql:
image: mysql:5.7.16
ports:
- 3306:3306
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
environment:
MYSQL_ROOT_PASSWORD: dalongrong
MYSQL_DATABASE: demo
MYSQL_USER: demo
MYSQL_PASSWORD: dalongrong
TZ: Asia/Shanghai
pg-sqlite:
image: dalongrong/pgspider:sqlite
ports:
- "5435:5432"
environment:
- "POSTGRES_PASSWORD:dalong"
使用
- 启动docker-compose 服务
docker-compose up -d
- 创建扩展
CREATE EXTENSION pgspider_core_fdw;
CREATE EXTENSION postgres_fdw;
CREATE EXTENSION pgspider_fdw;
- 创建parent 以及child server
// parent 为当前操作的pg server
CREATE SERVER parent FOREIGN DATA WRAPPER pgspider_core_fdw OPTIONS (host '127.0.0.1', port '5432');
// child 为另外一个pg server
CREATE SERVER postgres_svr FOREIGN DATA WRAPPER postgres_fdw OPTIONS(host 'pg', port '5432', dbname 'postgres');
- 创建user 映射
CREATE USER MAPPING FOR CURRENT_USER SERVER parent OPTIONS(user 'postgres', password 'dalong');
CREATE USER MAPPING FOR CURRENT_USER SERVER postgres_svr OPTIONS(user 'postgres', password 'dalong');
- 创建parent 表映射
// __spd_url 是必须在parent 中定义的表字段
CREATE FOREIGN TABLE t1(i int, t text, __spd_url text) SERVER parent;
- 创建child 表映射
// 当暴露为多租户级的表,需要使用格式为`[Multi-Tenant table name]__[data source name]__0`
CREATE FOREIGN TABLE t1__postgres_svr__0(i int, t text) SERVER postgres_svr OPTIONS (table_name 't1');
- 创建remote pg server 表t1&&
CREATE TABLE t1 (
i SERIAL PRIMARY KEY,
t text
);
INSERT INTO "public"."t1"("i","t")
VALUES
(1,E'demo');
- 查询数据
select * from t1;
效果
- 基于node 节点过滤
SELECT * FROM t1 IN ('/postgres_svr/');
效果
说明
以上是一个简单的使用,目前pgspider 还提供了influxdb 以及GridDB 的fdw 扩展,其他的扩展应该也是可以集成的
参考资料
https://github.com/pgspider/pgspider
https://hub.docker.com/repository/docker/dalongrong/pgspider
https://github.com/rongfengliang/pgspider-docker
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2019-02-05 100 webhook implementations
2019-02-05 streamdataio 实时数据分发平台
2019-02-05 Generic Realtime Intermediary Protocol
2019-02-05 pushpin 将web services 转换为realtime api 的反向代理工具
2019-02-05 Pushpin How it works