跨数据库查询数据 - Amazon Redshift
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

跨数据库查询数据

通过在 中使用跨数据库查询Amazon Redshift,您可以跨 Amazon Redshift 集群中的数据库进行查询。借助跨数据库查询,您可以从Amazon Redshift集群中的任何数据库查询数据,而不管连接到哪个数据库。跨数据库查询消除数据副本,并简化数据组织以支持来自同一数据仓库的多个业务组。

借助跨数据库查询,您可以执行以下操作:

  • 在 Amazon Redshift 集群中跨数据库查询数据。

    您不仅可以从连接到的数据库进行查询,还可以从您有权访问的任何其他数据库中读取。

    当您查询任何其他未连接数据库上的数据库对象时,您只能对这些数据库对象进行读取访问。您可以使用跨数据库查询来访问Amazon Redshift集群上任何数据库的数据,而无需连接到该特定数据库。这样做可以帮助您快速轻松地查询和联接跨Amazon Redshift集群中的多个数据库分布的数据。

    您还可以在单个查询中联接多个数据库中的数据集,并使用商业智能 (BI) 或分析工具分析数据。您可以使用标准 Amazon Redshift SQL 命令继续为用户设置精细表或列级访问控制。通过这样做,您可以帮助确保用户仅看到他们拥有其权限的相关数据子集。

  • 查询对象

    您可以使用通过三部分表示法表示的完全限定对象名称查询其他数据库对象。任何数据库对象的完整路径包含三个组件:数据库名称、架构和对象名称。您可以使用完整路径表示法 从任何其他数据库访问任何对象database_name.schema_name.object_name。要访问特定列,请使用 database_name.schema_name.object_name.column_name

    您还可以使用外部架构表示法为另一个数据库中的架构创建别名。此外部架构引用另一个数据库和架构对。查询可以使用外部架构表示法 访问其他数据库对象。 external_schema_name.object_name

    在同一只读查询中,您可以从其他数据库中查询各种数据库对象,例如用户表、常规视图、具体化视图和后期绑定视图。

  • 管理权限

    Amazon Redshift 集群中任何数据库中具有对象访问权限的用户都可以查询这些对象。您可以使用 GRANT 命令向用户和用户组授予权限。当用户不再需要访问特定数据库对象时,您也可以使用 REVOKE 命令撤销权限。

  • 使用元数据和 BI 工具。

    您可以创建外部 schema 来引用同一Amazon Redshift集群中另一个Amazon Redshift数据库中的 schema。有关信息,请参阅 CREATE EXTERNAL SCHEMA 命令。

    创建外部架构引用后, 在 中的其他数据库的架构下Amazon Redshift显示表SVV_EXTERNAL_TABLESSVV_EXTERNAL_COLUMNS并在这些表中显示用于浏览元数据的工具。

    要将跨数据库查询与 BI 工具集成,您可以使用以下系统视图。这可帮助您查看有关已连接的集群和Amazon Redshift集群上其他数据库中的对象的元数据的信息。

    以下是显示Amazon Redshift集群中所有数据库的所有Amazon Redshift对象和外部对象的系统视图:

    以下是显示Amazon Redshift集群中所有数据库的所有Amazon Redshift对象的系统视图: