跨 Amazon Web Services 区域共享数据 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

跨 Amazon Web Services 区域共享数据

您可以在 Amazon Web Services 区域 内的不同 Amazon Redshift 集群间共享数据,以进行读取。通过跨区域数据共享,您可以跨 Amazon Web Services 区域 共享数据,无需手动复制数据。您无需将数据卸载到 Amazon S3 中,并将数据复制到新的 Amazon Redshift 集群中或执行跨区域快照复制。

通过跨区域数据共享,您可以在同一个 Amazon Web Services 账户 或不同 Amazon Web Services 账户 中共享数据,即使集群位于不同区域。与位于相同 Amazon Web Services 账户但不同 Amazon Web Services 区域的 Amazon Redshift 集群共享数据时,请遵循与在 Amazon Web Services 账户中共享数据相同的工作流。有关更多信息,请参阅 共享对 Amazon Web Services 账户内数据的读取访问权限

如果共享数据的集群位于不同的 Amazon Web Services 账户 和 Amazon Web Services 区域,您可以遵循与跨 Amazon Web Services 账户 共享数据相同的工作流程,并在使用者集群中包括区域级别的关联。跨区域数据共享支持与整个 Amazon Web Services 账户、整个 Amazon Web Services 区域,或者 Amazon Web Services 区域 中的特定集群命名空间的数据共享关联。有关在 Amazon Web Services 账户 账户中共享数据的更多信息,请参阅跨 Amazon Web Services 账户共享数据

当使用来自其他区域的数据时,使用者需要支付从生产者区域到使用者区域的跨区域数据传输费。

要使用数据共享,使用者账户管理员可以通过以下三种方式之一关联数据共享。

  • 与跨其所有 Amazon Web Services 区域 的整个 Amazon Web Services 账户 关联

  • 与 Amazon Web Services 账户 中的特定 Amazon Web Services 区域 关联

  • 与 Amazon Web Services 区域 中的特定集群命名空间关联

若管理员选择整个 Amazon Web Services 账户,该账户中跨不同 Amazon Web Services 区域 的所有现有和未来的集群命名空间均有权访问数据共享。使用者账户管理员还可以选择区域内的特定 Amazon Web Services 区域 或集群命名空间,以授予其对数据共享的访问权限。

如果您是创建者集群管理员或数据库所有者,请创建数据共享、将数据库对象和数据使用者添加到数据共享中,并向数据使用者授予权限。有关更多信息,请参阅 创建者集群管理员操作

如果您是创建者账户管理员,则应使用 Amazon Command Line Interface(Amazon CLI)或 Amazon Redshift 控制台授权数据共享,并选择数据使用者。

如果您是使用者账户管理员 – 按照以下步骤操作:

要将从其他账户共享的一个或多个数据共享与您的整个 Amazon Web Services 账户或 Amazon Web Services 区域中的特定 Amazon Web Services 区域或集群命名空间关联,请使用 Amazon Redshift 控制台。

借助跨区域数据共享,您可以使用 Amazon Command Line Interface(Amazon CLI)或 Amazon Redshift 控制台在特定的 Amazon Web Services 区域中添加集群。

要指定一个或多个 Amazon 区域,您可以使用 associate-data-share-consumer CLI 命令以及可选的 consumer-region 选项。

以下示例使用 CLI 将 Salesshare 与整个 Amazon Web Services 账户关联,并选择了 associate-entire-account 选项。您一次只能关联一个区域。

aws redshift associate-data-share-consumer --region {PRODUCER_REGION} --data-share-arn arn:aws:redshift:{PRODUCER_REGION}:{PRODUCER_ACCOUNT}:datashare:{PRODUCER_CLUSTER_NAMESPACE}/Salesshare --associate-entire-account

以下示例将 Salesshare 关联到美国东部(俄亥俄州)区域 (us-east-2)。

aws redshift associate-data-share-consumer --region {PRODUCER_REGION} --data-share-arn arn:aws:redshift:{PRODUCER_REGION}:0123456789012:datashare:{PRODUCER_CLUSTER_NAMESPACE}/Salesshare --consumer-region 'us-east-2'

以下示例将 Salesshare 与另一个 Amazon Web Services 账户在亚太地区(悉尼)区域(ap-southeast-2)的一个特定使用者集群命名空间关联。

aws redshift associate-data-share-consumer --data-share-arn arn:aws:redshift:{PRODUCER_REGION}:{PRODUCER_ACCOUNT}:datashare:{PRODUCER_CLUSTER_NAMESPACE}/Salesshare --consumer-arn 'arn:aws:redshift:ap-southeast-2:{CONSUMER_ACCOUNT}:namespace:{ConsumerImmutableClusterId}'

您可以使用 Amazon Redshift 控制台将数据共享与整个 Amazon Web Services 账户 或 Amazon Web Services 区域 中的特定 Amazon Web Services 区域 或集群命名空间关联。要执行此操作,请登录 https://console.aws.amazon.com/redshiftv2/。然后将从其它账户共享的一个或多个数据共享与您的整个 Amazon Web Services 账户、整个 Amazon Web Services 区域,或 Amazon Web Services 区域 中的特定集群命名空间关联。有关更多信息,请参阅 关联数据共享

关联 Amazon Web Services 账户 或特定集群命名空间后,数据共享将可供使用。您还可以随时更改数据共享关联。将关联从单个集群命名空间更改到 Amazon Web Services 账户 时,Amazon Redshift 会使用 Amazon Web Services 账户 信息覆盖集群命名空间。将关联从 Amazon Web Services 账户 更改到特定集群命名空间时,Amazon Redshift 会使用集群命名空间信息覆盖 Amazon Web Services 账户 信息。将关联从整个 Amazon Web Services 账户 更改到特定 Amazon 区域和集群命名空间时,Amazon Redshift 会使用特定区域和集群命名空间信息覆盖 Amazon Web Services 账户 信息。

如果您是使用者集群管理员,您可以创建引用数据共享的本地数据库,并根据需要向使用者集群中的用户或角色授予对从数据共享创建的数据库的访问权限。您还可以对共享对象创建视图,并创建外部架构,以引用导入到使用者集群上的使用者数据库中的特定架构并为其分配精细权限。有关更多信息,请参阅 使用者集群管理员操作