lightdb数据库链接之postgresql_fdw
FDW简介
FDW(Foreign Data Wrapper)是lightdb的一个插件。通过FDW,可以将远程pg数据库映射到本地(映射为server),将远程数据库table映射为本地的foreign table。通过FDW映射的foreign table,实际数据只存在于远端数据库,本地并不实际存储实际的数据库。读写foreign table会映射为读写远程数据库对应的table。这个模块提供的功能大体上覆盖了较老的 dblink 模块的功能。但是 postgres_fdw 提供了更透明且更兼容标准的语法来访问远程表,并且可以在很多情况下给出更好的性能。最初本地只支持foreign table只读操作,从PG9.3版本开始,支持本地写入foreign table。
使用步骤如下:
使用 CREATE EXTENSION 来安装 postgres_fdw扩展。
使用 CREATE SERVER 创建一个外部服务器对象,它用来表示你想连接的每一个远程数据库。指定除了 user 和 password 之外的连接信息作为该服务器对象的选项。
使用 CREATE USER MAPPING 创建一个用户映射,每一个用户映射都代表你想允许一个数据库用户访问一个外部服务器。指定远程用户名和口令作为用户映射的 user 和 password 选项。
为每一个你想访问的远程表使用 CREATE FOREIGN TABLE 或者 IMPORT FOREIGN SCHEMA 创建一个外部表。外部表的列必须匹配被引用的远程表。但是,如果你在外部表对象的选项中指定了正确的远程名称,你可以使用不同于远程表的表名和/或列名。
完整操作SQL
--安装扩展 create extension IF NOT EXISTS postgres_fdw; --验证扩展 select * from pg_available_extensions where name='postgres_fdw'; --创建 server create server server_remote_pg2pg foreign data wrapper postgres_fdw options(host '192.168.1.11',port '5432',dbname 'my'); --创建用户映射 create user mapping for postgres server server_remote_pg2pg options(user 'postgres', password '1234'); --验证 select * from pg_foreign_server; --创建外部表 create foreign table tb_fdw_foreign(shi varchar,geom geometry(MULTIPOLYGON, 4490)) server server_remote_pg2pg options(schema_name 'dataimporttest',table_name 'shi'); create foreign table tb_fdw_foreign(SHI VARCHAR,geom GEOMETRY(MULTIPOLYGON, 4490)) server server_remote_pg2pg options(schema_name 'dataimporttest',table_name 'SHI'); select * from tb_fdw_foreign; --操作外部表 INSERT into tb_fdw_foreign(shi,geom) SELECT shi,geom from jxlcs_yw.yjjc_pdtb; INSERT into tb_fdw_foreign(SHI,geom) SELECT SHI,geom from jxlcs_yw.yjjc_hstb_py; --删除外部表 drop foreign table tb_fdw_foreign; --删除用户映射 drop user mapping for postgres server server_remote_pg2pg; --删除 server drop server server_remote_pg2pg; --删除扩展 drop extension postgres_fdw;
参考:
https://xiaosonggong.blog.csdn.net/article/details/124274880
http://www.light-pg.com/docs/lightdb/13.3-22.2/postgres-fdw.html
https://blog.csdn.net/asmartkiller/article/details/128637237、https://blog.51cto.com/feishujun/6007524 parquet_s3_fdw
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!