【问题标题】:foreign table, foreign sever and foreign data wrapper: how they communicate外部表、外部服务器和外部数据包装器:它们如何通信
【发布时间】:2017-07-07 07:24:51
【问题描述】:

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

我想知道当数据库服务器查询到外部表时发生的消息顺序?

【问题讨论】:

  • 您正在寻找一些低级 C 的东西,或者只是一些基本的东西:Query points at -> foreign table -> points at -> foreign server -> 描述远程主机和 fdw 要做什么使用

标签: postgresql foreign-data-wrapper multicorn


【解决方案1】:

让我们澄清一下术语。

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

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多