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

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

跨数据库查询数据(预览版)

中的 跨数据库查询Amazon Redshift 允许您跨 Amazon Redshift 集群中的数据库进行查询。借助跨数据库查询,您可以查询 Amazon Redshift 集群中任何数据库的数据,而无论连接到哪个数据库。跨数据库查询消除了数据副本,并简化了数据组织以支持来自同一数据仓库的多个业务组。

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

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

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

    当您查询任何其他未连接数据库上的数据库对象时,您只能对这些数据库对象进行读取访问。您可以使用跨数据库查询访问 Amazon Redshift 集群上任何数据库的数据,而无需连接到该特定数据库。这样做可以帮助您提高跨 Amazon Redshift 集群中的多个数据库分布的数据的常见提取、转换、加载 (ETL) 暂存和处理性能。

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

  • 查询对象

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

    您还可以使用外部架构表示法为其他数据库中的架构创建别名。此外部 schema 引用了另一个数据库和 schema 对。使用外部 schema 表示法(例如 schema_name.object)查询和访问其他数据库对象。

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

  • 管理权限

    具有对 Amazon Redshift 集群的任何数据库中的对象的访问权限的用户可以查询这些对象。您可以使用 GRANT 向用户和用户组授予权限。有关更多信息,请参阅 GRANT 命令。当用户不再需要获得对特定数据库对象的访问权限时,您也可以使用 REVOKE 撤消权限。有关更多信息,请参阅 REVOKE 命令。

  • 使用元数据和 BI 工具

    您可以创建外部架构以引用同一 Amazon Redshift 集群中另一个 Amazon Redshift 数据库中的架构。有关信息,请参阅 CREATE EXTERNAL SCHEMA 命令。创建外部 schema 引用之后,Amazon Redshift 在 SVV_EXTERNAL_TABLESSVV_EXTERNAL_COLUMNS 中,显示用于探索元数据的工具中其他数据库的 schema 下的表。

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

注意

在使用预览时,请注意以下事项:

  • 必须使用 Amazon RedshiftPREVIEW_CROSSDB 维护跟踪创建新的 集群。有关预览跟踪的更多信息,请参阅选择集群维护跟踪

  • 此功能目前仅可用于测试目的。不要将该功能用于生产使用案例。

  • 您无法将现有 Amazon Redshift 集群从当前或尾随状态切换到此预览跟踪,反之亦然。但是,您可以从当前或尾随跟踪上运行的集群快照还原数据。

  • 跨数据库查询预览期预计将持续到 2020 年 11 月 30 日。除非扩展,否则在此跟踪上创建的集群将在此日期被 AWS 自动删除。

  • 您可在具有 AWS RA3 实例类型的任意 Amazon Redshift 区域中使用集群来预览跨数据库查询功能。

  • 对于预览期间与预览功能相关的任何疑问、问题或反馈,请发送电子邮件至 redshift-crossdb@amazon.com 或通过 AWS Support 开立支持案例。