关键字:
Dblink,fdw,人大金仓,KingbaseES
概述
Dblink是一个支持从数据库会话中连接到其他kingbase数据库的插件,支持对相关库进行数据操作。
KDB_Database_link是kingbase为了兼容oracle语法开发的跨数据库访问扩展,可以用于访问kingbase,postgresql,oracl。
创建及操作流程
Isql –verison |
Odbcinst –j |
将kdb_database_link加入到参数中且必须放至最后,其需要其他插件项的依赖
- 2.2.1.1创建扩展并更改配置文件
Kdb_database_link实际上是在kingbase.fdw上层进行包装,需要kingbase.fdw扩展,以system用户连接,创建组件:
|
Kdb_database_link扩展创建后,会生成data目录下sys_database_link.conf文件,用于配置服务名,在创建database link时使用
- 2.2.1.2创建扩展并更改配置文件
|
dblink:创建连接的名称
system:被连接库使用的用户
kingbaseV8R6:配置好的连接串,在sys_database_link.conf中配置
数据链创建完成后,更新连接信息在pg_foreign_server和pg_user_mapping中
- 2.2.1.2数据链验证,进行数据操作
①进行查询操作:
Select * from public.test_time@dblink; |
②插入更新操作:
Insert intopublic.test_time@dblink values('2022-09-11 01:15:55','2023-09-12 02:15:55'); |
Update public.link@dblink set id = 3 where id = 1; |
③删除数据链
Drop database link public.dblink; |
- 2.2.dblink_connect()连接方式
- 2.2.1创建dblink插件,建立connect
- 2.2.dblink_connect()连接方式
Create extension dblink; Select * from dblink_connect(‘dblnk’,’host=10.11.1.46 port=54321 user=system password=123456 dbname=kingbase’) |
- 2.2.2跨数据库查询
- ①查询连接表信息
Select * from dblink(‘dblink’,’select id from public.link’)as link_bak(id int); |
- ②存放至临时表或视图
create temp table link_temp as select * from dblink('dblink','select * from public.link') as link_bak(id int); |
Create view link_view as select * from dblink('dblink','select * from public.link') as link_bak(id int); |
③删除连接
Select dblink_disconnect(‘dblink’); |
④不创建连接操作
Select * from dblink(‘host=10.11.1.46 port=54321 user=system password=123456 dbname=kingbase’,’select * from public.link’); |
总结:dblink优势在于随取随用,无需创建对象。




