外表,外部服务器和外部数据包装器:它们如何通信

时间:2017-07-07 07:24:52

标签: postgresql foreign-data-wrapper multicorn

当postgreSQL数据库服务器获取查询时,它如何找到相关的外部数据包装器来解析查询?外国服务器到底做了什么?

我想知道数据库服务器在外表上查询时发生的消息序列吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

让我们澄清术语。

  • 外部数据包装器是一个包装代码以与外部数据源进行通信的对象。

  • 外部服务器是一个指定如何查找某个外部数据源的对象。它属于外部数据包装器。

  • 用户映射是一个对象,其中包含用于通过外部数据源进行身份验证的凭据。它属于外部服务器和数据库用户。

  • 外部表是描述包含外部数据源中的数据的对象的对象。它属于外国服务器。

因此,当用户尝试访问外表时,PostgreSQL知道如何访问数据源(通过属于该表的外部服务器),如何进行身份验证(通过用户映射)以及用于执行的函数此连接和交换数据(通过外部数据包装器)。

大多数外国数据包装器不需要连接到远程数据源进行查询计划,但是当获取或发送数据时,将建立连接。

根据外部数据包装器,在查询完成或缓存数据库会话的生命周期时,将关闭此类连接。