5.10. 外部数据

PostgreSQL实现了SQL/MED规范的一部分, 允许使用规则的SQL查询访问驻留在PostgreSQL外部的数据。 这样的数据被称为外部数据。 (请注意这种使用不能同外键混淆,外键是数据库的一种约束类型。)

外部数据是通过外部数据封装器的帮助来访问的。 一个外部数据封装器是一个可以与外部数据源沟通的库,隐藏与外部数据源连接的细节并且从外部数据源获得数据。 这里有几个作为贡献模板的可用外部数据封装器,见附录 F。 其他类型的外部数据封装器可能会在第三方产品中见到。 如果现存的外部数据封装器没有适合你的需要的,你可以自己写一个;见第 53 章

要访问外部数据,你需要创建一个外部服务器对象, 它定义了如何根据支持的外部数据封装器设置的选项,连接到一个特定的外部数据源。 然后你需要创建一个或多个外部表,它定义了远程数据的结构。 一个外部表可以像普通表那样用于查询,但是外部表不会存储在PostgreSQL服务器中。 无论何时用到外部表,PostgreSQL要求外部数据封装器从外部源获取数据, 或者在更新命令时传输数据到外部源。

访问远程数据可能需要到外部数据源的验证。这个信息可以通过一个用户映射来提供, 用户映射可以根据当前的PostgreSQL角色提供额外的数据,如用户名和密码。

要获取更多的信息,请参阅 CREATE FOREIGN DATA WRAPPERCREATE SERVERCREATE USER MAPPINGCREATE FOREIGN TABLE