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 权限。一旦提交写入事务,所有仓库都可获得实时数据。
Amazon Redshift 数据共享使用案例
Amazon Redshift 数据共享对于以下使用案例尤其有用:
-
支持不同类型的业务关键型工作负载 – 使用与多个业务情报 (BI) 或分析集群共享数据的中央提取、转换和加载 (ETL) 集群。此方法提供读取工作负载隔离和单个工作负载的退款。您可以根据特定于工作负载的价格和性能要求调整单个工作负载计算的大小并对其进行扩展。
-
启用跨组协作 – 跨团队和业务组实现无缝协作,以实现更广泛的分析、数据科学和跨产品影响分析。
-
提供数据即服务 – 在整个组织中共享数据即服务。
-
在环境之间共享数据 – 在开发环境、测试环境和生产环境之间共享数据。您可以在不同的粒度级别下共享数据,以提高团队敏捷性。
-
使用 Amazon Redshift 授权访问数据 – 在 AWS Data Exchange 目录中列出 Amazon Redshift 数据集,客户可以在几分钟内找到、订阅和查询这些数据集。
数据共享写入访问权限用例
用于写入的数据共享有几个重要的用例:
-
更新生产者上的业务源数据 – 您可以将数据作为一项服务在整个组织内共享,但随后使用者也可以对源数据执行操作。例如,他们可以回传最新值或确认收到数据。这些只不过是几个可能的业务使用案例。
-
在生产者中插入其他记录 – 使用者可以向原始源数据添加记录。如果需要,可以将其标记为来自使用者。
有关如何对数据共享执行写入操作的具体信息,请参阅 Sharing write access to data。
Amazon Redshift 中不同级别的数据共享
借助 Amazon Redshift,您可以在不同级别共享数据。这些级别包括数据库、schema、表、视图(包括常规视图、后期绑定视图和实体化视图)和 SQL 用户定义函数 (UDF)。您可以为给定数据库创建多个数据共享。一个数据共享可以包含来自创建共享的数据库中多个 schema 的对象。
通过在共享数据方面具有这种灵活度,您可以获得精细访问控制。您可以为需要访问 Amazon Redshift 数据的不同用户和企业定制此控制。
Amazon Redshift 中数据共享的一致性管理
Amazon Redshift 在所有创建器和使用者集群上提供事务一致性,并与所有使用者共享最新且一致的数据视图。
您可以不断更新创建器集群上的数据。事务中的使用者集群上的所有查询都读取共享数据的相同状态。Amazon Redshift 不考虑在使用者集群上的事务开始后提交的创建器集群上的另一个事务更改的数据。在生产者集群上提交数据更改后,使用者集群上的新事务可以立即查询更新的数据。
强一致性移除了在数据共享过程中可能包含无效结果的低保真度业务报告的风险。这个因素对于财务分析或结果可能用于编制用于训练机器学习模型的数据集而言尤为重要。