跨 AWS 区域共享数据
您可以在 AWS 区域 内的不同 Amazon Redshift 集群间共享数据,以进行读取。通过跨区域数据共享,您可以跨 AWS 区域 共享数据,无需手动复制数据。您无需将数据卸载到 Amazon S3 中,并将数据复制到新的 Amazon Redshift 集群中或执行跨区域快照复制。
通过跨区域数据共享,您可以在同一个 AWS 账户 或不同 AWS 账户 中共享数据,即使集群位于不同区域。与位于相同 AWS 账户但不同 AWS 区域的 Amazon Redshift 集群共享数据时,请遵循与在 AWS 账户中共享数据相同的工作流。有关更多信息,请参阅 共享对 AWS 账户内数据的读取访问权限。
如果共享数据的集群位于不同的 AWS 账户 和 AWS 区域,您可以遵循与跨 AWS 账户 共享数据相同的工作流程,并在使用者集群中包括区域级别的关联。跨区域数据共享支持与整个 AWS 账户、整个 AWS 区域,或者 AWS 区域 中的特定集群命名空间的数据共享关联。有关在 AWS 账户 账户中共享数据的更多信息,请参阅跨 AWS 账户共享数据。
当使用来自其他区域的数据时,使用者需要支付从生产者区域到使用者区域的跨区域数据传输费。
要使用数据共享,使用者账户管理员可以通过以下三种方式之一关联数据共享。
与跨其所有 AWS 区域 的整个 AWS 账户 关联
与 AWS 账户 中的特定 AWS 区域 关联
与 AWS 区域 中的特定集群命名空间关联
若管理员选择整个 AWS 账户,该账户中跨不同 AWS 区域 的所有现有和未来的集群命名空间均有权访问数据共享。使用者账户管理员还可以选择区域内的特定 AWS 区域 或集群命名空间,以授予其对数据共享的访问权限。
如果您是创建者集群管理员或数据库所有者,请创建数据共享、将数据库对象和数据使用者添加到数据共享中,并向数据使用者授予权限。有关更多信息,请参阅 创建者集群管理员操作。
如果您是创建者账户管理员,则应使用 AWS Command Line Interface(AWS CLI)或 Amazon Redshift 控制台授权数据共享,并选择数据使用者。
如果您是使用者账户管理员 – 按照以下步骤操作:
要将从其他账户共享的一个或多个数据共享与您的整个 AWS 账户或 AWS 区域中的特定 AWS 区域或集群命名空间关联,请使用 Amazon Redshift 控制台。
借助跨区域数据共享,您可以使用 AWS Command Line Interface(AWS CLI)或 Amazon Redshift 控制台在特定的 AWS 区域中添加集群。
要指定一个或多个 AWS 区域,您可以使用 associate-data-share-consumer
CLI 命令以及可选的 consumer-region
选项。
以下示例使用 CLI 将 Salesshare
与整个 AWS 账户关联,并选择了 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
与另一个 AWS 账户在亚太地区(悉尼)区域(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 控制台将数据共享与整个 AWS 账户 或 AWS 区域 中的特定 AWS 区域 或集群命名空间关联。要执行此操作,请登录 https://console.aws.amazon.com/redshiftv2/
关联 AWS 账户 或特定集群命名空间后,数据共享将可供使用。您还可以随时更改数据共享关联。将关联从单个集群命名空间更改到 AWS 账户 时,Amazon Redshift 会使用 AWS 账户 信息覆盖集群命名空间。将关联从 AWS 账户 更改到特定集群命名空间时,Amazon Redshift 会使用集群命名空间信息覆盖 AWS 账户 信息。将关联从整个 AWS 账户 更改到特定 AWS 区域和集群命名空间时,Amazon Redshift 会使用特定区域和集群命名空间信息覆盖 AWS 账户 信息。
如果您是使用者集群管理员,您可以创建引用数据共享的本地数据库,并根据需要向使用者集群中的用户或角色授予对从数据共享创建的数据库的访问权限。您还可以对共享对象创建视图,并创建外部架构,以引用导入到使用者集群上的使用者数据库中的特定架构并为其分配精细权限。有关更多信息,请参阅 使用者集群管理员操作。