关键字:
Dblink,fdw,人大金仓,KingbaseES
概述
Dblink是一个支持从数据库会话中连接到其他kingbase数据库的插件,支持对相关库进行数据操作。
KDB_Database_link是kingbase为了兼容oracle语法开发的跨数据库访问扩展,可以用于访问kingbase,postgresql,oracl。
创建及操作流程
-
-
- 2.1检查环境
-
Isql –verison
Odbcinst –j
-
-
- 2.2连接kingbase
- 2.2.kdb_database_link连接方式,配置shared参数
- 2.2连接kingbase
-
将kdb_database_link加入到参数中且必须放至最后,其需要其他插件项的依赖
-
-
-
-
- 2.2.1.1创建扩展并更改配置文件
-
-
-
Kdb_database_link实际上是在kingbase.fdw上层进行包装,需要kingbase.fdw扩展,以system用户连接,创建组件:
-
-
-
- Create extension kdb_database_link;
- Create extension kingbase_fdw;
-
-
Kdb_database_link扩展创建后,会生成data目录下sys_database_link.conf文件,用于配置服务名,在创建database link时使用
-
-
-
-
- 2.2.1.2创建扩展并更改配置文件
-
-
-
-
-
-
- Create database link ‘dblink’ connect to ‘system’ identified by ‘123456’ using ‘kingbaseV8R6’
-
-
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优势在于随取随用,无需创建对象。