本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon 构建企业数据网格 DataZone AWS CDK,以及 AWS CloudFormation
由 Dhrubajyoti Mukherjee (AWS)、Adjoa Taylor ()、Ravi Kumar () 和 Weizhou Sun (AWS) 创作 AWS AWS
代码存储库:与 Amazon 的数据网格 DataZone | 环境:生产 | 技术:分析;业务生产力;数据库;现代化;多账户策略 |
AWS服务:亚马逊 Athena AWSCDK;;;亚马逊;AWSGlue AWS CloudFormation;Identity an DataZone d Acces AWS s Management;亚马逊;亚马逊 S3 QuickSight |
Summary
在 Amazon Web Services (AWS) 上,客户明白,数据是加速创新和提高企业商业价值的关键。要管理这些海量数据,你可以采用分散式架构,例如数据网格。数据网格架构促进了产品思维,这种思维方式将客户、目标和市场考虑在内。数据网格还有助于建立联合治理模型,提供对数据的快速、安全访问。
构建基于数据网格的企业解决方案的策略 AWS讨论了如何使用数据网格策略框架为组织制定和实施数据网格策略。通过使用数据网格策略框架,您可以优化团队的组织及其互动,从而加快数据网格之旅。
本文档提供了有关如何使用 Amazon 构建企业数据网格的指导 DataZone。Amazon DataZone 是一项数据管理服务,用于编目、发现、共享和管理存储在本地和第三方来源的数据。 AWS该模式包括代码工件,可帮助您使用和部署基于数据网格的数据解决方案基础架构。 AWS Cloud Development Kit (AWS CDK) AWS CloudFormation此模式适用于云架构师和 DevOps 工程师。
有关此模式的目标和解决方案范围的信息,请参阅 “其他信息” 部分。
先决条件和限制
先决条件
至少有两个活跃账户 AWS 账户:一个用于中央治理账户,另一个用于成员账户
AWS 开发环境中中央治理账户的管理员凭证
AWS Command Line Interface (AWS CLI) 已安装,用于 AWS 服务 从命令行管理你的
安装
了 Node.js 和 Node Package Manager (npm) 来管理应用程序 AWS CDK AWS CDK 使用 npm 在全球范围内安装工具包,用于合成和部署应用程序 AWS CDK
npm install -g aws-cdk
你的开发环境中安装了 Python 3.12 版本
TypeScript 安装在您的开发环境中或使用 npm 编译器全局安装:
npm install -g typescript
在你的开发环境中安装了 Docker
使用版本控制系统(例如 Git)来维护解决方案的源代码(推荐)
支持 Python 和(强烈推荐IDE)的集成开发环境 TypeScript () 或文本编辑器
限制
该解决方案仅在运行 Linux 或 macOS 的计算机上进行了测试。
在当前版本中,该解决方案不支持Amazon的集成 DataZone , AWS IAM Identity Center 默认情况下也是如此。但是,您可以将其配置为支持此集成。
产品版本
Python 版本 3.12
架构
下图显示了数据网格参考架构。该架构基于亚马逊,使用亚马逊 DataZone 简单存储服务 (Amazon S3) Simple Service AWS Glue Data Catalog 和作为数据源。根据贵组织的要求 AWS 服务 ,您在数据网格实施 DataZone 中与 Amazon 搭配使用的可能有所不同。
在生产者账户中,原始数据要么适合以当前形式使用,要么通过使用进行转换以供消费 AWS Glue。数据的技术元数据存储在 Amazon S3 中,并使用 AWS Glue 数据爬网程序进行评估。数据质量是使用AWS Glue 数据质量来衡量的。数据目录中的源数据库已注册为亚马逊 DataZone 目录中的资产。Amazon DataZone 目录使用亚马逊 DataZone 数据源任务托管在中央管理账户中。
中央管理账户托管亚马逊 DataZone 域名和亚马逊 DataZone 数据门户。数据生产者和使用者与 Amazon DataZone 域名相关联。 AWS 账户 数据生产者和消费者的亚马逊 DataZone 项目是在相应的亚马逊 DataZone 域名单位下组织的。
数据资产的最终用户使用其 AWS Identity and Access Management (IAM) 凭证或单点登录(通过 Ident IAM ity Center 集成)登录亚马逊 DataZone 数据门户。他们搜索、筛选和查看 Amazon 数据目录中的资产信息(例如,数据质量信息或业务和技术元 DataZone 数据)。
最终用户找到他们想要的数据资产后,他们会使用 Amazon DataZone 订阅功能来请求访问权限。创建者团队的数据所有者会收到通知,并在 Amazon DataZone 数据门户中评估订阅请求。数据所有者根据订阅请求的有效性批准或拒绝订阅请求。
在批准并完成订阅请求后,可以在消费者账户中访问该资产,用于以下活动:
使用 Amazon 开发人工智能/机器学习模型 SageMaker
使用亚马逊 Athena 和亚马逊进行分析和报告 QuickSight
工具
AWS 服务
Amazon Athena 是一项交互式查询服务,可帮助您使用标准直接分析亚马逊简单存储服务 (Amazon S3) 中的数据。SQL
AWS Cloud Development Kit (AWS CDK)是一个软件开发框架,可帮助您在代码中定义和配置 AWS Cloud 基础架构。
AWS CloudFormation帮助您设置 AWS 资源,快速一致地配置资源,并在和的整个 AWS 账户 生命周期中对其进行管理 AWS 区域。
Amazon DataZone 是一项数据管理服务,可帮助您编目、发现、共享和管理存储在本地和第三方来源中的数据。 AWS
Amazon QuickSight 是一项云规模的商业智能 (BI) 服务,可帮助您在单个控制面板中可视化、分析和报告数据。
Amazon SageMaker 是一项托管机器学习 (ML) 服务,可帮助您构建和训练机器学习模型,然后将其部署到生产就绪的托管环境中。
Amazon Simple Storage Service (Amazon S3) 是一项基于云的对象存储服务,可帮助您存储、保护和检索任意数量的数据。
Amazon Simple Queue Service (AmazonSQS) 提供安全、耐用且可用的托管队列,可帮助您集成和分离分布式软件系统和组件。
Amazon Simple Storage Service (Amazon S3) 是一项基于云的对象存储服务,可帮助您存储、保护和检索任意数量的数据。
代码存储库
该解决方案可在 GitHub data-mesh-datazone-cdk-cloudformation 存储库
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
克隆存储库。 | 要克隆存储库,请在本地开发环境(Linux 或 macOS)中运行以下命令:
| 云架构师、 DevOps 工程师 |
创建环境。 | 要创建 Python 虚拟环境,请运行以下命令:
| 云架构师、 DevOps 工程师 |
引导账户。 | 要使用引导中央治理帐户 AWS CDK,请运行以下命令:
登录 AWS Management Console,打开中央治理账户控制台,获取 AWS CDK 执行角色的 Amazon 资源名称 (ARN)。 | 云架构师、 DevOps 工程师 |
构造 | 要从存储库的根目录中构造
| 云架构师、 DevOps 工程师 |
确认模板创建。 | 确保 AWS CloudFormation 模板文件是在该 | 云架构师、 DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
修改配置。 | 在该
将其余参数留空。 | 云架构师、 DevOps 工程师 |
更新 Amazon DataZone 词汇表配置。 | 要更新
| 云架构师、 DevOps 工程师 |
更新 Amazon DataZone 元数据表单配置。 | 要更新中的 Amazon DataZone 元数据表单配置
| 云架构师、 DevOps 工程师 |
导出 AWS 凭证。 | 要将具有管理权限的IAM角色的 AWS 证书导出到您的开发环境中,请使用以下格式:
| 云架构师、 DevOps 工程师 |
合成模板。 | 要合成 AWS CloudFormation 模板,请运行以下命令:
| 云架构师、 DevOps 工程师 |
部署解决方案。 | 要部署解决方案,请运行以下命令:
| 云架构师、 DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
部署 模板。 | 使用以下输入参数部署
| 云架构师、 DevOps 工程师 |
更新ARNs. | 要更新成员账户的 AWS CloudFormation StackSet 执行角色ARNs列表,请使用以下代码:
| 云架构师、 DevOps 工程师 |
合成并部署。 | 要合成 AWS CloudFormation 模板并部署解决方案,请运行以下命令:
| 云架构师、 DevOps 工程师 |
关联成员账户。 | 要将成员账户与中央治理账户关联,请执行以下操作:
| 云架构师、 DevOps 工程师 |
更新参数。 | 要更新配置文件中特定于成员账户的参数
| 云架构师、 DevOps 工程师 |
合成并部署模板。 | 要合成 AWS CloudFormation 模板并部署解决方案,请运行以下命令:
| 云架构师、 DevOps 工程师 |
添加成员账户。 | 要在数据解决方案中创建和配置其他成员帐户,请对每个成员帐户重复上述步骤。 该解决方案不区分数据生产者和消费者。 | 云架构师、 DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
取消关联成员账户。 | 要取消关联账户,请执行以下操作:
| 云架构师、 DevOps 工程师 |
删除堆栈实例。 | 要删除 AWS CloudFormation 堆栈实例,请执行以下操作:
| 云架构师、 DevOps 工程师 |
摧毁所有资源。 | 要销毁资源,请在本地开发环境(Linux 或 macOS)中执行以下步骤:
| 云架构师、 DevOps 工程师 |
相关资源
其他信息
目标
实现此模式可实现以下效果:
分散的数据所有权——将数据所有权从中央团队转移到代表组织源系统、业务部门或用例的团队。
产品思维 − 在考虑组织中的数据资产时,引入一种基于产品的思维方式,包括客户、市场和其他因素。
联合治理-改善组织数据产品的安全护栏、控制和合规性。
多账户和多项目支持 − 支持组织各业务部门或项目之间高效、安全的数据共享和协作。
集中监控和通知-使用 Amazon 监控数据网格的云资源 CloudWatch,并在关联新成员账户时通知用户。
可扩展性和可扩展性 − 随着组织的发展,向数据网格中添加新的用例。
解决方案范围
使用此解决方案时,您可以从小规模开始,并随着数据网格之旅的进展进行扩展。通常,当成员账户采用数据解决方案时,它包含特定于组织、项目或业务部门的账户配置。该解决方案通过支持以下功能来适应这些不同的 AWS 账户 配置:
AWSGlue 数据目录作为亚马逊的数据源 DataZone
管理 Amazon DataZone 数据域和相关数据门户
管理在基于数据网格的数据解决方案中添加成员账户
Amazon DataZone 项目和环境的管理
管理 Amazon DataZone 词汇表和元数据表单
管理与基于数据网格的数据解决方案用户相对应的IAM角色
通知基于数据网格的数据解决方案用户
监控已配置的云基础架构
该解决方案使用 AWS CDK 和 AWS CloudFormation 来部署云基础架构。它 AWS CloudFormation 用于执行以下操作:
在较低的抽象级别上定义和部署云资源。
部署来自的云资源 AWS Management Console。通过使用这种方法,您可以在没有开发环境的情况下部署基础架构。
数据网格解决方案用于 AWS CDK 在更高的抽象级别上定义资源。因此,该解决方案通过选择相关工具来部署云资源,提供了一种解耦的、模块化和可扩展的方法。
后续步骤
您可以联系 AWS专家
该解决方案的模块化性质支持使用不同的架构(例如数据结构和数据湖)构建数据管理解决方案。此外,根据贵组织的要求,您可以将解决方案扩展到其他 Amazon DataZone 数据源。