原 GreenPlum中的dblink和postgres_fdw
Tags: 原创GreenPlumDBLinkpostgres_fdw跨库访问
dblink简介
dblink模块支持从数据库会话中连接到其他Greenplum数据库。 这些数据库可以驻留在相同的Greenplum数据库系统中,也可以驻留在远程系统中。
Greenplum数据库支持Greenplum数据库安装中具有相同主要版本号的数据库之间的dblink连接。 您还可以使用dblink连接到使用兼容libpq库的其他Greenplum数据库安装。
Note: dblink适用于数据库用户在其他数据库中执行简短的临时查询。 dblink不能替代外部表或gpcopy之类的管理工具。
Greenplum数据库dblink模块是PostgreSQL dblink模块的修改版本。 在Greenplum数据库中使用该模块时,存在一些限制。
安装和注册模块
当您安装Greenplum数据库时,将安装dblink模块。 在使用模块中定义的任何函数之前,必须在要使用这些函数的每个数据库中注册dblink扩展。
Greenplum数据库注意事项
在此版本的Greenplum数据库中,修改表数据的语句不能使用命名或隐式dblink连接。 而是必须直接在dblink()函数中提供连接字符串。例如:
1 2 3 4 | gpadmin=# CREATE TABLE testdbllocal (a int, b text) DISTRIBUTED BY (a); CREATE TABLE gpadmin=# INSERT INTO testdbllocal select * FROM dblink('dbname=postgres', 'SELECT * FROM testdblink') AS dbltab(id int, product text); INSERT 0 2 |
dblink的Greenplum数据库版本禁用以下异步函数:
- dblink_send_query()
- dblink_is_busy()
- dblink_get_result()
使用dblink
以下过程确定了在Greenplum数据库中配置和使用dblink的基本步骤。 这些示例使用dblink_connect()创建与数据库的连接,并使用dblink()执行SQL查询。