支持的版本: 当前 (17) / 16 / 15 / 14 / 13
开发版本: devel
不支持的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1

5.13. 外部数据 #

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

外部数据是在外部数据包装器的帮助下访问的。外部数据包装器是一个库,可以与外部数据源通信,隐藏连接到数据源和从中获取数据的细节。有一些外部数据包装器以 contrib 模块的形式提供;请参阅附录 F。其他类型的外部数据包装器可能会作为第三方产品找到。如果现有的外部数据包装器都不能满足您的需求,您可以编写自己的包装器;请参阅第 57 章

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

访问远程数据可能需要对外部数据源进行身份验证。此信息可以由用户映射提供,它可以根据当前的 PostgreSQL 角色提供诸如用户名和密码之类的附加数据。

有关更多信息,请参阅CREATE FOREIGN DATA WRAPPERCREATE SERVERCREATE USER MAPPINGCREATE FOREIGN TABLE,以及IMPORT FOREIGN SCHEMA

提交更正

如果您在文档中看到任何不正确、与您使用特定功能的经验不符或需要进一步澄清的内容,请使用此表格报告文档问题。