Amazon Redshift 中的数据共享
借助 Amazon Redshift,您可以跨 Amazon Redshift 集群或与其它 AWS 服务安全地共享数据。数据共享可让您共享实时数据,而无需创建副本或移动数据。数据库管理员和数据工程师可以利用数据共享,为分析目的提供安全的只读数据访问,同时保持对数据的控制。数据分析师、商业智能专业人员和数据科学家可以利用共享的数据获得见解,而无需复制或移动数据。常见应用场景包括与合作伙伴共享数据、实现跨职能分析以及促进组织内的数据民主化。以下各节将介绍在 Amazon Redshift 中配置和管理数据共享的详细信息。
使用 Amazon Redshift 数据共享,您可以在 Amazon Redshift 集群、工作组、AWS 账户和 AWS 区域之间安全地共享对实时数据的访问权限,而无需手动移动或复制数据。由于数据是实时的,只要进行了更新,所有用户就都可以在 Amazon Redshift 中看到最新、最一致的信息。
您可以在预置集群、无服务器工作组、可用区、AWS 账户和 AWS 区域之间共享数据。您可以在集群类型之间共享,也可以在预调配集群和无服务器之间共享。
您可以跨同一 AWS 账户内的不同 Amazon Redshift 集群或 Amazon Redshift Serverless 工作组共享数据库对象以进行读取和写入,也可以在不同 AWS 账户之间进行共享。您也可以跨区域写入数据。您可以为不同的表授予 SELECT、INSERT 和 UPDATE 等权限,为不同的架构授予 USAGE 和 CREATE 权限。一旦提交写入事务,所有仓库都可获得实时数据。
有关在 PREVIEW_2023 库中配置数据共享功能的更多信息,请参阅共享对数据的写入访问权限(预览版)。
注意
目前,ra3.xlplus 集群无法通过数据共享实现多仓库写入。要使用此功能,请创建 ra3.4xl 集群、ra3.16xl 集群或 Amazon Redshift Serverless 工作组。
在 Amazon Redshift 中使用数据共享的注意事项
以下是使用 Amazon Redshift 数据共享时的注意事项。有关数据共享限制的信息,请参阅数据共享的限制。
-
跨区域数据共享会产生额外的跨区域数据传输费用。同一区域内的数据传输不会产生这些费用,只有跨区域的数据传输才会产生这些费用。有关更多信息,请参阅 管理跨区域数据共享的成本控制。
-
当您从数据共享中读取数据时,会保持与本地集群数据库的连接。有关设置和读取通过数据共享创建的数据库的更多信息,请参阅查询数据共享对象和Amazon Redshift Spectrum 中外部数据湖表的实体化视图。
-
使用者需要支付查询创建者数据所需的所有计算和跨区域数据传输费用。创建者需要为其预置集群或无服务器命名空间中的数据底层存储付费。
-
对共享数据的查询性能取决于使用者集群的计算容量。
用于数据共享的集群加密管理
要跨 AWS 账户 共享数据,必须对生产者和使用者集群进行加密。
在 Amazon Redshift 中,您可以为集群开启数据库加密,以帮助保护静态数据。为集群开启加密时,会对集群及其快照的数据块和系统元数据进行加密。您可以在启动集群时开启加密,也可以修改未加密的集群以使用 AWS Key Management Service (AWS KMS) 加密。有关 Amazon Redshift 数据库加密的更多信息,请参阅《Amazon Redshift 管理指南》中的 Amazon Redshift 数据库加密。
为了保护传输中的数据,所有数据都在传输过程中通过生产者集群的加密模式进行加密。加载数据时,使用者集群采用此加密模式。然后,使用者集群作为普通加密集群运行。创建者和使用者之间的通信也使用共享密钥模式进行加密。有关传输中加密的更多信息,请参阅传输中加密。
数据共享的限制
以下是在 Amazon Redshift 中使用数据共享时的限制:
所有预置的 RA3 集群类型和 Amazon Redshift Serverless 均支持数据共享。其他集群类型不支持数据共享。
如果生产者和使用者集群以及无服务器命名空间都在同一个账户中,它们必须具有相同的加密类型(要么都未加密,要么都已加密)。在其它任何情况下,包括 Lake Formation 托管的数据共享,使用者和生产者都必须加密。这是出于安全目的。但是,二者不需要共享相同的加密密钥。
通过数据共享,您只能共享 SQL UDF。不支持 Python 和 Lambda UDF。
如果生产者数据库有特定的排序规则,请在使用者数据库中使用相同的排序规则设置。
Amazon Redshift 不支持将外部架构、表或外部表上的后期绑定视图添加到数据共享。
Amazon Redshift 不支持生产者集群上的嵌套 SQL 用户定义的函数。
Amazon Redshift 不支持共享具有交错排序键的表以及引用具有交错排序键的表的视图。
使用者无法将数据共享对象添加到另一个数据共享。此外,使用者无法将引用数据共享对象的视图添加到另一个数据共享。
Amazon Redshift 不支持访问在“准备”和“执行”访问之间发生了并发 DDL 的数据共享对象。
Amazon Redshift 不支持通过数据共享来共享存储过程。
Amazon Redshift 不支持共享元数据系统视图和系统表。
可进行数据共享的区域
下表列出了数据共享功能的可用性。
区域 | 同区域数据共享 | 跨区域数据共享 | AWS Lake Formation 监管的数据共享 |
---|---|---|---|
美国东部(弗吉尼亚州北部)(us-east-1) | 是 | 是 | 是 |
美国东部(俄亥俄州)(us-east-2) | 是 | 是 | 是 |
美国西部(北加利福尼亚)(us-west-1) | 是 | 是 | 是 |
美国西部(俄勒冈州)(us-west-2) | 是 | 是 | 是 |
亚太地区(香港)(ap-east-1) | 是 | 否 | 否 |
亚太地区(孟买)(ap-south-1) | 是 | 是 | 是 |
亚太地区(海得拉巴)(ap-south-2) | 是 | 否 | 否 |
亚太地区(东京)(ap-northeast-1) | 是 | 是 | 是 |
亚太地区(新加坡)(ap-southeast-1) | 是 | 是 | 是 |
亚太地区(悉尼)(ap-southeast-2) | 是 | 是 | 是 |
亚太地区(雅加达);(ap-southeast-3) | 是 | 否 | 否 |
亚太地区(墨尔本)(ap-southeast-4) | 是 | 否 | 否 |
亚太地区(首尔)(ap-northeast-2) | 是 | 是 | 是 |
亚太地区(大阪)(ap-northeast-3) | 是 | 否 | 否 |
中国(北京)(cn-north-1) | 是 | 否 | 否 |
中国(宁夏)(cn-northwest-1) | 是 | 否 | 否 |
非洲(开普敦)(af-south-1) | 是 | 否 | 否 |
加拿大西部(卡尔加里)(ca-west-1) | 是 | 否 | 否 |
加拿大(中部)(ca-central-1) | 是 | 是 | 是 |
欧洲地区(法兰克福)(eu-central-1) | 是 | 是 | 是 |
欧洲(苏黎世)(eu-central-2) | 是 | 否 | 否 |
欧洲地区(爱尔兰)(eu-west-1) | 是 | 是 | 是 |
欧洲(伦敦)(eu-west-2) | 是 | 是 | 是 |
欧洲地区(巴黎)(eu-west-3) | 是 | 是 | 是 |
欧洲(米兰)(eu-south-1) | 是 | 否 | 否 |
欧洲(西班牙)(eu-south-2) | 是 | 否 | 否 |
欧洲地区(斯德哥尔摩)(eu-north-1) | 是 | 是 | 是 |
中东(阿联酋)(me-central-1) | 是 | 否 | 否 |
中东(巴林)(me-south-1) | 是 | 否 | 否 |
以色列(特拉维夫)(il-central-1) | 是 | 否 | 否 |
南美洲(圣保罗)(sa-east-1) | 是 | 是 | 是 |
AWS GovCloud(美国东部)(us-gov-east-1) | 是 | 否 | 是 |
AWS GovCloud(美国西部)(us-gov-west-1) | 是 | 否 | 是 |
数据共享多仓库写入的区域可用性
在 PREVIEW_2023 库中,数据共享具有写入操作功能和更精细的共享功能。有关如何配置这些内容的更多信息,请参阅共享对数据的写入访问权限(预览版)。有关提供预览功能的区域的信息,请参阅可进行数据共享的区域(预览版)。