亚马逊AWS官方博客
使用 AWS Lake Formation 和 AWS Glue 设计数据网格架构
各种规模的组织都认识到,数据是增加和维持创新以及为客户和业务部门带来价值的关键推动因素之一。他们正在热切地利用高度可扩展、功能丰富且经济高效的云原生技术对传统数据平台进行现代化。当您希望做出由数据驱动的业务决策时,您可以通过采用从专业团队交付数据产品的思维模式,而不是通过提供通用分析的集中式数据管理平台来提高灵活性和高效率。
在本文中,我们描述一种使用亚马逊云科技原生服务(Amazon Lake Formation和Amazon Glue)实现数据网格的方法。这种方法使业务线 (LOB) 和组织单位能够端到端自主运营其数据产品,同时为整个组织提供集中数据发现、治理和审计,以确保数据隐私和合规性。
数据网格模型的益处
集中模式旨在将数据和专业技术知识集中在一个地方来简化人员配备和培训,从而通过管理单一数据平台来减少技术负债,并降低运营成本。数据平台组(通常是中央 IT 的一部分)根据他们所支持的平台的技术功能划分团队。例如,一个团队可能拥有用于从其他团队和 LOB 管理的众多数据源中收集数据的摄取技术。不同的团队可能拥有数据管道、编写和调试提取、转换和加载 (ETL) 代码以及编排作业运行,同时验证和修复数据质量问题,并确保数据处理符合业务 SLA 要求。但是,通过集中式的中央数据平台管理数据可能会带来扩展、所有权和问责制方面的挑战,因为中心团队可能无法理解数据域的具体需求,无论是由于数据类型和存储、安全性、数据目录要求还是数据处理所需的特定技术。
您通常可以通过赋予拥有数据的团队所有权和自主权来减少这些挑战,最好允许他们构建数据产品,而不仅仅是能够使用公用的中央数据平台。例如,产品团队负责确保使用新产品和现有产品的变更,定期更新产品库存。他们是产品库存数据集的领域专家。如果出现差异,他们是唯一知道如何解决这个问题的群体。因此,他们最能够实施和运行技术解决方案来摄取、处理和生成产品库存数据集。他们拥有导致数据被消费的一切:他们选择技术堆栈,以数据作为产品的思维运作,实施安全和审计,并提供一种机制,以便以易于使用的方式向组织公开数据。这减少了组织中信息流的总体摩擦,生产者对自己生成的数据集负责,并根据发布的 SLA 对消费者负责。
这种数据即产品范式类似于 Amazon 构建服务的运营模型。服务团队构建自己的服务,使用发布的 SLA 公开 API,运营他们的服务,并拥有端到端的客户体验。这与构建软件与运营软件分属不同团队的理念是不一样的。端到端所有权模式使我们能够以更高的效率更快地实施,并快速扩展以满足客户的使用案例。我们不受集中团队及其扩展以满足业务需求的能力的限制。我们构建的每项服务都以提供构建基石的其他服务为基础。与数据世界类似的是,数据生产者根据自己独特的需求及选择的技术,拥有数据产品的端到端实现和服务。在 AWS,多年来我们一直在讨论数据驱动的企业模式,该模式由数据生产者和消费者组成。这种模型与我们的一些客户使用的模型类似,Thoughtworks 的 Zhamak Dehghani 最近富于表现力地描述了这个模型,他在 2019 年创造了数据网格这一术语。
解决方案概览
在本文中,我们演示了智能湖仓架构为何非常适合于帮助团队构建数据域,以及如何使用数据网格方法将域集中在一起,以实现跨业务部门的数据共享和联合。这种方法可以实现更好的自主性和更快的创新步伐,同时建立在经过验证和广泛理解的架构和技术堆栈的基础上,并确保数据安全和治理的高标准。
以下是考虑数据网格设计时的关键点:
- 数据网格是一种模式,用于定义组织如何围绕数据域进行组织,重点是将数据作为产品交付。但是,它可能不是适合每一个客户的正确模式。
- 智能湖仓方法和数据湖架构为在 AWS 上构建现代数据平台提供了技术指导和解决方案。
- 带有基础数据湖的智能湖仓方法是以可扩展的方式实施数据域和产品的可重复蓝图。
- 在数据网格模式中使用 AWS 分析服务的方式可能会随着时间的推移而发生变化,但仍与每项服务的技术建议和最佳实践保持一致。
以下是数据网格设计目标:
- 数据即产品 – 每个组织域都端到端地拥有其数据。他们负责构建、运营、服务和解决因使用其数据而产生的任何问题。数据的准确性和问责制取决于域内的数据所有者。
- 联合数据治理 – 数据治理可确保数据安全、准确且不被滥用。每个数据域都可以管理数据治理的技术实施,例如收集数据血缘、验证数据质量、加密静态和传输中的数据以及实施适当的访问控制措施。但是,需要集中数据发现、报告和审计,以方便用户查找数据及审计人员验证合规性。
- 通用访问 – 数据必须能够被数据分析师和数据科学家等主题角色以及 Amazon Athena、Amazon Redshift 和 Amazon SageMaker 之类的专用分析和机器学习 (ML) 服务轻松使用。为此,数据域必须公开一组使数据可使用的接口,同时实施适当的访问控制和审计跟踪。
以下是用户体验注意事项:
- 从创建原始数据的应用程序到提取和创建业务报告和预测的分析系统,数据团队拥有自己的信息生命周期。在这个生命周期中,他们拥有数据模型,并确定哪些数据集适合发布给小费者。
- 数据域生产者通过将数据集注册到中央目录,向组织其他部门公开数据集。他们可以选择分享什么、分享多长时间以及消费者如何与之互动。他们还负责维护数据并确保数据的准确和最新。
- 数据域消费者或个人用户访问数据的权限应通过受支持的接口(如数据 API)授予,以确保一致的性能、跟踪和访问控制。
- 所有数据资产都可以从单个中央数据目录中轻松发现。数据目录包含由数据域生产者注册的数据集,包括支持元数据,例如数据血缘、数据质量指标、所有权信息和业务背景。
- 对数据、使用模式、数据转换和数据分类采取的所有操作都应该可以通过单一的中心位置访问。数据所有者、管理员和审计者应该能够在一个地方检查公司的数据合规状况。
首先,我们从建立在数据网格模式之上的上层架构设计开始。如下图所示,它将消费者、生产者和中央治理区分开来,以突出显示之前讨论的关键方面。但是,数据域可能代表数据消费者、数据生产者或两者兼有。
此设计的目标是为构建大规模数据平台奠定基础,通过强有力且一致的治理来支持数据生产者和消费者的目标。AWS设计数据网格的方法确定了一套通用设计原则和服务,以促进构建可扩展数据平台、无处不在的数据共享以及在亚马逊云科技上实现自助分析的最佳实践。
在上图的基础上,我们提供了更多详细信息,以展示亚马逊云科技原生服务如何支持生产者、消费者和治理。每个数据域,无论是生产者、消费者还是两者兼有,都对自己的技术堆栈负责。但是,将 AWS 原生分析服务与智能湖仓架构结合使用可以提供可重复的蓝图,您的组织可以在扩展数据网格设计时使用该蓝图。拥有一致的技术基础可以确保服务得到良好的集成、核心功能得到支持、规模和性能受被考虑在内,且成本保持较低。
数据域:生产者和消费者
数据网格设计围绕数据域进行组织。每个数据域拥有和运营多个数据产品,它们都有自己的数据和技术堆栈,独立于其他数据和技术堆栈。数据域可以是纯粹的生产者,例如仅为消费者的域生成销售和收入数据的财务域,也可以是使用者域,例如使用来自其他域的数据以创建在电子商务网站上显示的产品推荐的产品推荐服务。除了共享之外,集中式数据目录还可以为用户提供更快速地查找可用数据集的能力,并允许数据所有者分配访问权限和跨业务部门审计使用情况。
生产者域驻留在亚马逊云科技账户中,并使用 Amazon Simple Storage Service (Amazon S3) 存储桶存储原始数据和转换后的数据。它使用 AWS Glue 维护自己的 ETL 堆栈来处理和准备数据,然后再将其编目到自己账户中的 Lake Formation 数据目录中。同样,消费者域包括自己的一套工具,用于在单独的亚马逊云科技账户中执行分析和机器学习。中央数据治理账户用于在生产者和消费者之间安全地共享数据集。需要注意的是,共享仅通过元数据链接完成。数据不会复制到中央账户,所有权仍由生产者掌握。中央目录使任何用户都可以轻松地查找数据并请求数据所有者在单个位置访问。然后,他们可以在自己的环境中使用自己选择的工具对数据执行分析和机器学习。
下图说明了端到端的工作流程。
从生产者到消费者的工作流程包括以下步骤:
- 由生产者托管的数据源位置是在生产者的 Amazon Glue 数据目录中创建的,并在Amazon Lake Formation 中注册。
- 当数据集作为产品呈现时,生产者会在中央治理账户中创建Amazon Lake Formation 数据目录实体(数据库、表、列、属性)。这使得跨消费者查找和发现目录变得很容易。但是,这不会向所有账户或消费者授予目录或数据的任何权限,所有授予均由生产者授权。
- 中央Amazon Lake Formation 数据目录通过指向元数据库和表的Amazon Lake Formation 资源链接将数据目录资源共享回具有所需权限的生产者账户。
- 在中央账户中,Amazon Lake Formation 权限授予生产者角色(例如数据工程师角色),以便在中央数据目录上管理架构更改和执行数据转换(变更、删除、更新)。
- 生产者接受来自中央治理账户的资源共享,以便他们可以在以后对架构进行更改。
- 在生产者账户中进行的数据更改将自动传播到目录的中央治理副本中。
- 根据消费者访问请求以及使数据在消费者的 Amazon Glue 数据目录中可见的需要,中央账户所有者根据直接实体共享或基于标签的访问控制向消费者账户授予Amazon Lake Formation 权限,这些权限可用于通过数据分类、成本中心或环境等控制措施管理访问权限。
- 消费者账户中的Amazon Lake Formation 可以定义这些数据集的访问权限,供本地用户使用。消费者账户中的用户,如数据分析师和数据科学家,可以使用他们选择的工具(如Amazon Athena 和 Amazon Redshift)查询数据。
构建数据产品
数据域生产者通过他们管理、拥有和运营的一组管道将数据摄取到各自的 S3 存储桶中。生产者负责他们控制的数据的整个生命周期,并负责将数据从应用程序捕获的原始数据转移到适合外部方使用的形式。Amazon Glue 是一项无服务器数据集成和准备服务,它以经济高效的方式提供大规模开发、自动化和管理数据管道所需的所有组件。它提供了一个易于使用的界面,组织可以使用该界面快速加载数据域,而无需测试、批准和处理供应商路线图,从而确保所有必需的功能和集成都可用。
集中数据治理
中央数据治理账户可以跨账户存储所有企业数据的数据目录,并提供功能,使生产者可以使用 Amazon Glue 从其所有Amazon S3 存储桶注册和创建目录条目。此账户中不存在任何数据(日志除外)。Amazon Lake Formation 在一处集中定义安全、治理和审计策略,跨分析应用程序为消费者强制执行这些策略,并且仅向请求访问的角色提供数据源的授权和会话令牌访问。Amazon Lake Formation 还通过集中治理和审计的资源共享为企业范围的数据共享提供统一的访问控制。
公共访问
每个消费者都可以通过资源链接的形式从中央治理账户获得对共享资源的访问权限。这些都可以在消费者的本地Amazon Lake Formation 和 Amazon Glue 数据目录中找到,允许由消费者管理员管理的数据库和表访问。授予访问权限后,消费者可以访问账户并使用以下服务执行不同的操作:
- Amazon Athena 充当消费者并对使用Amazon Lake Formation 注册的数据运行查询。Amazon Lake Formation 验证工作组Amazon Identity and Access Management (IAM)角色委托人是否对数据库、表和 Amazon S3 位置具有适当的Amazon Lake Formation 权限(如查询)。如果委托人有权访问,Amazon Lake Formation 会向Amazon Athena 提供临时凭证,然后查询运行。通过 IAM 角色或用户或使用 SAML 或 OIDC 的 Web 联合身份授予身份验证。有关更多信息,请参阅Amazon Athena 如何访问使用Amazon Lake Formation 注册的数据。
- Amazon SageMaker Data Wrangler 允许您可以从 Amazon S3、Amazon Athena、Amazon Redshift、Amazon Lake Formation 和 Amazon SageMaker Feature Store 等多个数据源中快速选择数据。您还可以为数据源编写查询,并将数据从各种文件格式(如 CSV 文件、Pparquet 文件和数据库表)直接导入 Amazon SageMaker。身份验证通过消费者账户中的 IAM 角色授予。有关更多信息,请参阅使用 Amazon SageMaker Data Wrangler 准备 ML 数据。
- Amazon Redshift Spectrum允许您从Amazon Lake Formation注册外部扩展数据,并提供权限层次结构来控制对数据目录中的 Amazon Redshift 数据库和表的访问。如果消费者主体有访问权限,Amazon Lake Formation 会将临时凭证提供给Amazon Redshift Spectrum 表,然后运行查询。身份验证通过 IAM 角色或用户或使用 SAML 或 OIDC 的 Web 联合身份授予。有关更多信息,请参阅将Amazon Redshift Spectrum 与 Amazon Lake Formation 结合使用。
- Amazon QuickSight 通过Amazon Athena 与Amazon Lake Formation 权限集成。如果您正在使用Amazon Athena 查询数据,则可以使用 Amazon Lake Formation 简化从 QuickSight 安全地连接到数据。Amazon Lake Formation将应用于,亚马逊云科技分析和机器学习服务的自己的权限添加到IAM权限模型中,通过映射到 QuickSight 用户权限的 IAM 角色授予身份验证。有关更多信息,请参阅通过 Amazon Lake Formation 授权连接。
- Amazon EMR Studio 和 Amazon EMR Notebook允许针对由 SAML 授权支持的 Amazon Lake Formation 表运行 Spark SQL。从 Amazon EMR 5.31.0 开始,您可以启动与Amazon Lake Formation 集成的集群。通过 IAM 角色或用户或使用 SAML 或 OIDC 的 Web 联合身份授予进行身份验证。有关更多信息,请参阅将 Amazon EMR 与 Amazon Lake Formation 集成。
借助此设计,您可以将多个数据湖仓连接到一个集中的治理账户,该账户可存储来自每个环境的所有元数据。这种方法的优点在于它集成了所有元数据,并将其存储在一个元模型架构中,各种消费者都可以通过亚马逊云科技服务轻松访问该架构。您可以扩展此架构以注册新的数据湖目录并在消费者账户之间共享资源。下图说明了跨账户数据网格架构。
结论
数据网格方法提供了一种使组织可以跨业务部门共享数据的方法。每个域都负责摄取、处理和提供其数据。他们是数据所有者和领域专家,负责数据质量和准确性。这与微服务将一组技术功能转变为可供其他微服务使用的产品的方式类似。通过使用 Amazon Glue、Amazon Lake Formation、Amazon Athena 和 Amazon Redshift Spectrum 等托管服务和无服务器服务来提供一个易于理解、高性能、可扩展且经济有效的解决方案来集成、准备和提供数据,从而在亚马逊云科技上可以很便捷的实施数据网格。
JPMorgan Chase 就是使用此数据网格模式的一位客户。有关更多信息,请参阅 JPMorgan Chase 如何构建数据网格架构来推动重大价值,从而增强其企业数据平台。
Amazon Lake Formation 提供了在每个数据域内和跨域实施数据治理的能力,以确保数据的安全并易于发现,且数据血缘可跟踪,访问可审计。智能湖仓架构为支持数据网格提供了理想的基础,并提供了一种设计模式来加强组织内的生产者域的交付。每个域都可以自主选择自己的技术堆栈,但受可以集中管理的联合安全模型管理,提供了安全性和合规性的最佳实践,同时允许域内具有高度敏捷性。