5.11. 国外数据

PostgreSQL 实现了 SQL/MED 规范的某些部分,允许您使用常规 SQL 查询访问 PostgreSQL 外部的数据。此类数据称为外国数据。 (请注意,不要将此用法与外键混淆,后者是数据库中的一种约束.)

外部数据可通过外国数据包装器访问。外部数据包装器是一个可以与外部数据源进行通信的库,它隐藏了连接到数据源并从中获取数据的详细信息。有一些外部数据包装器可作为contrib模块使用;参见Appendix F。其他类型的外部数据包装器也可能是第三方产品。如果现有的外部数据包装器都不满足您的需求,则可以编写自己的数据包装器;参见Chapter 57

要访问外部数据,您需要创建一个* foreign server 对象,该对象根据其支持的外部数据包装程序使用的选项集定义如何连接到特定的外部数据源。然后,您需要创建一个或多个外部表*,这些表定义了远程数据的结构。外部表可以像普通表一样用于查询,但是外部表在 PostgreSQL 服务器中没有存储。无论何时使用 PostgreSQL,PostgreSQL 都会要求外部数据包装器从外部源获取数据,或者使用更新命令将其传输到外部源。

访问远程数据可能需要对外部数据源进行身份验证。该信息可以由用户 Map提供,后者可以根据当前 PostgreSQL 角色提供其他数据,例如用户名和密码。

有关其他信息,请参见创建外部数据包装器CREATE SERVER创建用户 Map创建外表导入外国模式