关键字:
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优势在于随取随用,无需创建对象。
本文介绍了KingbaseES中的Dblink插件,包括如何通过KDB_Database_link连接不同数据库,创建和配置数据链,以及使用dblink_connect()进行连接操作。重点讲解了连接设置、查询、插入更新和删除数据链的过程。
4313

被折叠的 条评论
为什么被折叠?



