亚马逊 DataZone 在预览中推出与 OpenLineage 兼容的数据 lineage 可视化

新闻动态

14

Amazon DataZone 推出与 OpenLineage 兼容的数据血缘可视化预览

核心要点

Amazon DataZone 现已引入与 OpenLineage 兼容的数据血缘可视化功能,帮助用户捕获、存储和可视化数据资产的流动和转化情况。通过 API,数据管理员和数据生产者可以捕获超出 Amazon DataZone 可用的血缘事件数据,包括在 Amazon S3 和 AWS Glue 等服务中的转化过程。数据血缘支持用户了解数据的来源、变更和最终去向,提升数据消费信任度。文中还介绍了如何从 AWS Glue、Amazon Redshift 和 Amazon MWAA 等其他服务开始捕获血缘数据。

数据血缘的重要性

数据血缘提供了对数据资产的整体视图,使用户能够了解对象的来源及其连接链。它能够跟踪数据在时间上的移动,帮助用户清晰地理解数据的起源、变化及在数据管道中的最终去向。对于数据消费者而言,透明的数据来源使其对数据的有效性更加信任。通过在表、列和作业等层面上捕获血缘信息,用户可以进行影响分析并响应数据问题,例如观察某一字段对下游源的影响,从而帮助用户在提交变更前做出更明智的决策,避免不必要的更改。

Amazon DataZone的数据血缘功能,通过兼容OpenLineage的API捕获和可视化来自OpenLineage支持系统的数据血缘事件。可视化的数据血缘包括 Amazon DataZone 业务数据目录中的活动,捕获了编录的资产、订阅者以及通过API以编程方式捕获的发生在业务数据目录外的活动。

此外,Amazon DataZone 在每个事件中版本化血缘,用户可以在任何时间点可视化血缘或比较资产或作业的变换历史。这种历史血缘提供了更深的理解,便于故障排除、审计和维护数据资产的完整性。

以下是 Amazon DataZone 数据目录可视化的一张血缘图示例:

初识 OpenLineage 兼容数据血缘

为了在各类分析服务中始终如一地捕获数据血缘并将其结合成统一对象模型,OpenLineage 应运而生。OpenLineage 是一个开源项目,提供了收集和分析血缘的框架,以及可持久化元数据的对象模型的引用实现。

OpenLineage 的关键概念

血缘事件:OpenLineage通过一系列事件捕获血缘信息。事件是指在数据管道中对数据执行的特定操作,诸如数据摄取、转换或消费。血缘实体:在 OpenLineage 中,实体代表血缘过程中涉及的各种数据对象,如数据集和表。血缘作业:血缘作业代表数据管道或作业的特定运行,包含多个血缘事件和实体。血缘表单类型:表单类型或特性,提供了关于血缘实体或事件的附加元数据或上下文,有助于更丰富和详细的血缘信息。OpenLineage 为运行、作业和数据集提供特性,同时可以构建自定义特性。

Amazon DataZone 的数据血缘 API 兼容 OpenLineage,并扩展其功能,提供了一个物化端点用于在可扩展对象模型中持久化血缘输出。OpenLineage 对某些源提供集成,这些源与 Amazon DataZone 的集成也相对简单,因为 Amazon DataZone 的数据血缘 API 明白格式并转换为血缘数据模型。

以下是 Amazon DataZone 血缘数据模型的示意图:

在 Amazon DataZone 中,每个血缘节点都代表一个基础资源,血缘节点与逻辑或物理资源如表、视图或资产之间存在一一映射。节点代表特定作业的特定运行或表或资产的节点,以及一个订阅目标节点。

节点的每个版本捕获特定时间戳下基础资源发生的事件。在 Amazon DataZone 中,血缘不仅讲述了数据流动的故事,还代表了 Amazon DataZone 内部活动的血缘,如资产的创建、整理、发布和订阅。

为了填充 Amazon DataZone 的血缘模型,捕获了两种类型的血缘:

啊哈加速器安卓Amazon DataZone 内部的血缘活动:包括编录并发布的资产,以及自动捕获的关于订阅的详细信息。当你在生产项目上下文中例如当前选定项目为您正在浏览的资产的拥有项目且您是该项目的成员,会看到数据集节点的两个状态:库存资产类型节点定义了在目录中处于未发布阶段的资产,其他用户无法订阅该库存资产。详情请参见在 Amazon DataZone 中创建库存和发布数据。

已发布资产类型表示该资产实际可被组织内数据用户发现。该资产类型可以被其他项目成员订阅。如果您是消费者而不是该资产的生产项目的一部分,您只会看到已发布的资产节点。

Amazon DataZone 外部的血缘活动可以通过PostLineageEvent以编程方式捕获。通过捕获这些针对编录资产上下游的事件,数据生产者和消费者获得了数据移动的全面视图,可以检查数据的来源或消费情况。后文将讨论如何使用 API 捕获血缘事件。

以下是 Amazon DataZone 中可用的两种不同类型的血缘节点:

数据集节点:在 Amazon DataZone 中,血缘可视化节点代表表和视图。根据项目的上下文,生产者可查看库存和已发布资产,而消费者只可阅读已发布资产。当您首次打开资产详细信息页面的血缘标签时,编录数据集节点将是血缘图遍历的起点。数据集节点包括来自 Amazon DataZone 的自动生成血缘节点和自定义血缘节点:自动数据集节点:这些节点包含在 Amazon DataZone 目录中发布的 AWS Glue 或 Amazon Redshift 资产的信息。它们是自动生成的,其中包含对应的 AWS Glue 或 Amazon Redshift 图标。

自定义数据集节点:这些节点包含未在 Amazon DataZone 目录中发布的资产的信息。它们由领域管理员生产者手动创建,并在节点中以默认自定义资产图标表示。基本上,这些是使用 OpenLineage 事件格式创建的自定义血缘节点。

作业运行节点:此节点捕获作业的详细信息,表示特定作业的最新运行及其运行详情。此节点还会捕获作业的多个运行,可以在节点详细信息的历史标签中查看。

在 Amazon DataZone 中可视化血缘

Amazon DataZone 为数据生产者和消费者提供了全面的体验。资产详细信息页面提供了血缘的图形表示,使数据关系的可视化变得简单明了。资产详细信息页面提供以下功能来导航图形:

列级别的血缘:当数据集节点中存在可用信息时,可以展开列级别的血缘。这会自动显示与上下游数据集节点的关系。列搜索:如果数据集中的列数超过 10,则节点会呈现分页以浏览未最初呈现的列。若要快速查看特定列,您可以在仅列出搜索到的列的数据集节点上进行搜索。仅查看数据集节点:如果您想筛选掉作业节点,可以在图形查看器中选择打开视图控制图标,切换 仅显示数据集节点。这将从图形中移除所有作业节点,让您只浏览数据集节点。详细信息窗格:每个血缘节点捕获并显示如下详细信息:每个数据集节点有三个标签:血缘信息、架构 和 历史。历史标签列出了为该节点捕获的不同版本的血缘事件。作业节点具有详细信息窗格,显示带有 作业信息 和 历史 标签的作业详细信息。详细信息窗格还捕获作为作业一部分运行的查询或表达式。版本标签:所有 Amazon DataZone 数据血缘中的血缘节点都会版本化,基于捕获的血缘事件作为历史进行记录。您可以查看特定时间戳的血缘,这会在血缘页面上打开一个新标签,以帮助比较不同时间戳之间的对比。

以下是数据血缘可视化的示例:

您可以通过在血缘标签上选择预览,并选择尝试示例血缘链接来体验包括示例数据的可视化。这会打开一个新浏览器选项卡,展示示例数据以测试和学习此功能,带或不带引导图 tour,如下图所示:

解决方案概述

现在我们已了解 Amazon DataZone 中新的数据血缘功能的能力,让我们探索如何从 AWS Glue 表和 ETL提取、转换和加载作业、Amazon Redshift 和 Amazon MWAA 开始捕获数据血缘。

获取入门脚本可在 Amazon DataZone 的新 GitHub 仓库 中获得。

前提条件

对于此次演示,您应具备以下前提条件:

一个 AWS 账户一个 AWS 身份与访问管理IAM用户,该用户可以访问以下服务:AWS Cloud9AWS CloudFormationAWS CloudShellAmazon DataZoneAWS GlueAmazon S3一个 Amazon DataZone 域一个 Amazon DataZone 项目,并创建了数据湖环境

如果您在跟随本文时使用的 AWS 账户利用 AWS Lake Formation 来管理 AWS Glue 数据目录上的权限,请确保您以具有创建数据库和表权限的用户身份登录。有关更多信息,请参阅隐式 Lake Formation 权限。

启动 CloudFormation 堆栈

要使用 AWS CloudFormation 创建此用例的资源,请完成以下步骤:

在 useast1 启动 CloudFormation 堆栈:

在 堆栈名称 中,输入堆栈名称。

选择 下一步。选择 我已确认 AWS CloudFormation 可能会创建具有自定义名称的 IAM 资源。选择 创建堆栈。

等待堆栈形成完成资源的配置。当您看到 CREATECOMPLETE 状态时,您可以继续下一步。

从 AWS Glue 表捕获数据血缘

在此示例中,我们将使用 CloudShell基于浏览器的 Shell运行必要的命令,从 AWS Glue 表中提取血缘元数据。完成以下步骤:

在 AWS Glue 控制台中,选择导航窗格中的 爬虫。选择 CloudFormation 模板创建的 AWSomeRetailCrawler 爬虫。选择 运行。

当爬虫完成时,您将看到 成功 状态。

接下来,用 CloudShell 收集血缘元数据。

下载 extractgluecrawlerlineagepy 文件。

在 Amazon DataZone 控制台中打开 CloudShell。

在 操作 菜单中,选择 更新文件。

上传 extractgluecrawlerlineagepy 文件。

运行以下命令: bash sudo yum y install python3 python3 m venv env env/bin/activate pip install boto3

您应该看到以下结果。

在配置好所有库和依赖项后,运行以下命令,从库存表中收集血缘元数据,替换 dzdYourdomain 为您的 DataZone 域 ID: bash python extractgluecrawlerlineagepy d awsomeretaildb t inventory r useast1 i dzdYourdomain

脚本会要求确认提供的设置,输入 Yes。

您应该会收到一条通知,指示脚本运行成功。

在从 Inventory 表捕获血缘信息后,完成以下步骤以运行数据源。

在 Amazon DataZone 数据门户中,打开 Sales 项目。

在 数据 标签下,选择导航窗格中的 数据源。

亚马逊 DataZone 在预览中推出与 OpenLineage 兼容的数据 lineage 可视化

选择要运行的数据源作业并选择 运行。

在这个示例中,我们已经创建了一个名为 SalesDLDataSourceV2 的数据源作业,以指向 awsomeretaildb 数据库。有关如何创建数据源作业的更多信息,请参见为 AWS Glue 数据目录创建和运行 Amazon DataZone 数据源。

作业运行成功后,您应该会看到确认信息。

![作业运行成功](https//d2908q01vomqb2cloudfrontnet/b6692ea5df920cad691c20319a6fffd7a4a766b8/2024/07/02/BDB

使用 Alchemy 和 AWS 创建账户抽象钱包:第二部分关键要点在本文中,我们将深入探讨账户抽象AA的技术核心概念,并介绍如何使用 AWS 和 Alchemy 的 Account Kit SDK 构建解决方案。我们将细致分析用于该解决方案的 Account Kit 组件,包括 AASDK、Bun...