GreenPlum中的dblink和postgres_fdw

0    247    1

Tags:

👉 本文共约2399个字,系统预计阅读时间或需10分钟。

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()函数中提供连接字符串。例如:

dblink的Greenplum数据库版本禁用以下异步函数:

  • dblink_send_query()
  • dblink_is_busy()
  • dblink_get_result()

使用dblink

以下过程确定了在Greenplum数据库中配置和使用dblink的基本步骤。 这些示例使用dblink_connect()创建与数据库的连接,并使用dblink()执行SQL查询。

  1. 首先创建一个示例表以使用dblink函数进行查询。 这些命令在postgres数据库中创建一个小表,稍后您将使用dblink从testdb数据库中查询该表:

  2. 以超级用户身份登录到另一个数据库。 在此示例中,超级用户gpadmin登录到数据库testdb。 如果dblink函数尚不可用,请在数据库中注册dblink扩展:

  3. 使用dblink_connect()函数创建与另一个数据库的隐式或命名连接。 您提供的连接字符串应该是libpq样式的关键字/值字符串。 本示例创建一个名为mylocalconn的连接到本地Greenplum数据库系统上的postgres数据库:

    Note: 如果未指定user,则在启动Greenplum数据库时,dblink_connect()将使用PGUSER环境变量的值。 如果未设置PGUSER,则默认值为启动Greenplum数据库的系统用户。

  4. 使用dblink()函数可使用已配置的连接查询数据库。 请记住,此函数返回记录类型,因此您必须分配dblink()查询中返回的列。 例如,以下命令使用命名连接来查询您先前创建的表:

要以另一个用户身份连接到本地数据库,请在连接字符串中指定该用户。 本示例以用户test_user的身份连接到数据库。 使用dblink_connect(),超级用户无需指定密码即可创建与另一个本地数据库的连接。

要建立与远程数据库系统的连接,请在连接字符串中包含主机和密码信息。 例如,要创建到远程系统的隐式dblink连接:

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复