首页 > 数据库 >lightdb数据库链接之postgresql_fdw

lightdb数据库链接之postgresql_fdw

时间:2022-12-23 09:55:48浏览次数:66  
标签:postgresql lightdb -- foreign fdw table server postgres

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

标签:postgresql,lightdb,--,foreign,fdw,table,server,postgres
From: https://www.cnblogs.com/lightdb/p/17000056.html

相关文章

  • postgresql jsonb
    准备测试数据DROPTABLEIFEXISTS"tbl";createtabletbl(idint,jsjsonb);createindexidx_tbl_1ontblusinggin(jsjsonb_path_ops);createindexidx......
  • postgresql jsonb + 索引 + 分区 + 测试
    --创建表DROPTABLEIFEXISTStba;CREATETABLEtba(idserial,peaktempint,jsjsonb,logdatedatenotnull)PARTITIONBYRANGE(logdate); --设置主键......
  • lightdb相关系数计算函数corr
    相关系数是最早由统计学家卡尔·皮尔逊设计的统计指标,是研究变量之间线性相关程度的量,一般用字母r表示。由于研究对象的不同,相关系数有多种定义方式,较为常用的是皮尔......
  • Powerdesigner反向Postgresql14常见问题
    一、数据库连接powerdesigner需要安装32位jdk,同时到Tool->GeneralOptions中设置32位jdk的路径  配置数据库连接:选择菜单Database->UpdateModelFromDataba......
  • 德哥PostgreSQL学习资料汇总(转)
    德哥介绍:周正中,网名德哥(digoal),目前就职于阿里云。PostgreSQL中国社区发起人之一,PostgreSQL象牙塔发起人之一,DBA+社群联合发起人之一,DBGeeK社区专家组成员。德哥:看完......
  • lightdb extra_float_digits--控制浮点数精度
    lightdb中extra_float_digits参数可以用来控制浮点数输出的精度,其采用原生c语言的float4/float8实现,可能我们在平时使用中并不太会留意,但是显示的时候会有一些问题。建一......
  • springboot+postgresql集成anyline试水
    anyline是什么简单讲就是一个工具可以让你抛开常规的机械性建mapper、dao、sql,用通用的语句查询和操作数据库表。目前也在初步探索中,感受还不深。官网文档:http://doc.any......
  • postgreSQL常用命令
     --建表案例CREATETABLEgas_use_test(idserialPRIMARYKEYNOTNULL,tenantIdintegerNOTNULL,meterNovarchar(255)uniqueNOTNULL,......
  • 从Mariadb迁移到postgresql
    前言本文主要实验所用的环境,后端是golang,ginweb框架.mysqldriver:github.com/go-sql-driver/mysqlv1.4.1迁移后PostgreSQLdriver:github.com/jackc/pgx/v5v......
  • postgresql数据库插入和读取图片
    postgresql插入和读取图片postgresql存储图片需要二进制类型bytea,创建一张测试表:postgres=#createtabletest_image(imgbytea);CREATETABLE使用jdbc插入1.jpgtry......