PostgreSQL实现了SQL/MED规范的一部分,允许使用规则的SQL查询访问驻留在PostgreSQL外部的数据。这样的数据被称为外部数据。(请注意这种使用不能同外键混淆,外键是数据库的一种约束类型。)
外部数据是通过外部数据封装器的帮助来访问的。一个外部数据封装器是一个可以与外部数据源沟通的库,隐藏与外部数据源连接的细节并且从外部数据源获得数据。这里有几个作为贡献模板的可用外部数据封装器。其他类型的外部数据封装器可能会在第三方产品中见到。如果现存的外部数据封装器没有适合你的需要的。
要访问外部数据,你需要创建一个外部服务器对象,它定义了如何根据支持的外部数据封装器设置的选项,连接到一个特定的外部数据源。然后你需要创建一个或多个外部表,它定义了远程数据的结构。一个外部表可以像普通表那样用于查询,但是外部表不会存储在PostgreSQL服务器中。无论何时用到外部表,PostgreSQL要求外部数据封装器从外部源获取数据,或者在更新命令时传输数据到外部源。
访问远程数据可能需要到外部数据源的验证。这个信息可以通过一个用户映射来提供,用户映射可以根据当前的PostgreSQL角色提供额外的数据,如用户名和密码。