使用 Amazon SageMaker Unified Studio(预览版)创建可视化 ETL 工作流

快照管理
Olawale Olaleye
难度
中级
时间
20 分钟
相关产品
上次更新时间
2024 年 12 月 4 日

介绍

Amazon SageMaker Unified Studio(预览版) 是 Amazon SageMaker 提供的数据和 AI 集成开发环境工具。在 Unified Studio 中,你可以使用熟悉的 AWS 工具进行模型开发、构建生成式 AI 应用、处理数据和进行 SQL 分析等,从而更快地进行协作和构建。应用场景包括可视化 ETL。可视化 ETL 平台是一种新的可视化界面,让数据工程师能够轻松创建、运行和监控提取、转换、加载 (ETL) 数据集成流程。你可以使用简单的可视化界面来创建数据移动和转换流程,并使用无服务器计算服务运行这些流程。此外,你还可以选择使用基于 Amazon Q生成式 AI 助手,通过输入自然语言(英文)提示语 (prompt) 创建可视化工作流。可视化 ETL 工作流还会自动将流程的有向无环图 (DAG) 转换为 Spark 原生脚本,以便你继续通过 Notebook 进行后续编辑工作。这样,喜欢使用代码进行创作的开发人员也可以快速开始创建体验。

本教程将介绍如何以低代码和无代码 (LCNC) 的方式构建可视化 ETL 工作流,以实现跨多个数据源无缝摄取数据和转换数据。我们将演示如何:

此外,我们还会探讨生成式 AI 如何增强你的 LCNC 可视化 ETL 开发过程,创建直观而强大的工作流程,使整个开发体验更为顺畅。

使用场景概览

在此示例中,我们使用 Amazon SageMaker Unified Studio 开发可视化 ETL 工作流。此流程管道从 Amazon S3 存储桶中的指定文件位置读取数据,对数据执行转换,然后将转换后的数据写回 Amazon S3 中存储的 AWS Glue 数据目录表中。我们使用名为 TICKIT 的数据集中的 allevents_pipe 和 venue_pipe 数据文件作为示例来演示此功能。

TICKIT 数据集记录模拟 TICKIT 网站上的销售活动数据。用户可以在该网站在线购买和出售不同类型活动的门票,例如体育比赛、表演和音乐会门票。分析师可以使用此数据集来跟踪门票销售如何随时间变化,评估卖家的销量,并确定门票销售最成功的活动、场地和季节。

该过程会合并 TICKIT 数据集中 allevents_pipe 和 venue_pipe 文件的数据。接下来,对合并的数据进行筛选,筛选出指定地理区域的数据。然后,对数据进行汇总,按场馆名称计算活动数量。最后,转换后的输出数据将保存到 Amazon S3 中,并创建新的 AWS Glue 数据目录表。

下图展示总体架构:

前提条件

开始本实验之前,你必须具备以下前提条件:

  • 一个 AWS 账户
  • 一个 SageMaker Unified Studio 域
  • 一个包含数据分析和机器学习配置的 SageMaker Unified Studio 项目

构建可视化 ETL 工作流

按照以下步骤,使用示例数据集构建新的可视化 ETL 工作流:

  1. 在 SageMaker Unified Studio 控制台的顶部菜单中,选择 Build(构建)。
  2. DATA ANALYSIS & INTEGRATION(数据分析与集成)下,选择 Visual ETL flows(可视化 ETL 工作流),如以下屏幕截图所示。

3. 选择项目,然后单击 Continue(继续)。

4. 单击 Create visual ETL flow(创建可视化 ETL 工作流)。

你还需要手动定义 ETL 工作流。

5. 在左上角,单击圆圈中的 + 图标。在 Data sources(数据源)下,单击 Amazon S3,如以下屏幕截图所示。在画布上找到 Amazon S3 图标。

6. 单击 Amazon S3 数据源节点,然后完成以下设置:

  • S3 URIs3://aws-blogs-artifacts-public/artifacts/BDB-4798/data/venue.csv
  • Format(格式):CSV
  • Delimiter(分隔符):,
  • Multiline(多行):Enabled(启用)
  • Header(标头):Disabled(禁用)

其余参数保留默认值。

7. 等待屏幕底部出现数据预览。

8. 单击 Amazon S3 节点右侧圆圈中的 + 图标。在 Transforms(转换)下,单击 Rename Columns(重命名列)。

9. 选择 Rename Columns(重命名列)节点,然后单击 Add new rename pair(新增重命名对)。在 Current name(当前名称)和 New name(新名称)列中,输入以下名称映射对:

  • _c0:venueid
  • _c1:venuename
  • _c2:venuecity
  • _c3:venuestate
  • _c4:venueseats

10. 单击 Rename Columns(重命名列)节点右侧的 + 图标。在 Transforms(转换)下,选择 Filter(筛选)。

11. 单击 Add new filter condition(新增筛选条件)。

12.在 Key(键)字段下,选择 venuestate。在 Operation(操作)字段下,选择 ==。在 Value(值)字段下,输入 DC,如以下屏幕截图所示。

13. 重复步骤 5 和 6,添加 events 表的 Amazon S3 数据源节点。

  • S3 URIs3://aws-blogs-artifacts-public/artifacts/BDB-4798/data/events.csv
  • Format(格式):CSV
  • Sep(分隔符):,
  • Multiline(多行):Enabled(启用)
  • Header(标头):Disabled(禁用)

其余参数保留默认值

14. 对该 Amazon S3 数据源节点重复步骤 7 和 8。选择 Rename Columns(重命名列)节点,单击 Add new rename pair(新增重命名对)。在 Current name(当前名称)和 New name(新名称)列中,输入以下名称映射对:

  • _c0:eventid
  • _c1:e_venueid
  • _c2:catid
  • _c3:dateid
  • _c4:eventname
  • _c5:starttime

15. 单击 Rename Columns(重命名列)节点右侧的 + 图标。在 Transforms(转换)下,选择 Join(连接)。

16.将 Filter(筛选)节点右侧的 + 图标拖放到 Join(连接)节点的左侧。

17.将 Join type(连接类型)设置为 Inner(内部)。将 Left data source(左数据源)设置为 e_venueid。将 Right data source(右数据源)设置为 venue_id

18. 单击 Join(连接)节点右侧的 + 图标。在 Transforms(转换)下,选择 SQL Query(SQL 查询)。

19. 输入以下查询语句:

select 
  venuename,
  count(distinct eventid) as eventid_count 
from {myDataSource} 
group by venuename

20. 单击 SQL Query(SQL 查询)节点右侧的 + 图标。在 Data target(数据目标)下,选择 Amazon S3

21. 单击 Amazon S3 目标节点,然后完成以下设置:

  • S3 URI:<项目概述中的 S3 位置+后缀 /output/venue_event/>(如 s3://<bucket-name>/dzd_bd693kieeb65yf/52d3z1nutb42w7/dev/output/venue_event/
  • Format(格式):Parquet
  • Compression(压缩):Snappy
  • Mode(模式):Overwrite(覆盖)
  • Update catalog(更新目录):True(是)
  • Database(数据库):选择你的数据库
  • Table(表):venue_event_agg

此时,你应该会看到类似下图中这种端到端的可视化流程。现在,你可以发布这个工作流。

22. 在页面右上角,单击 Save to project(保存到项目),保存流程编排。你还可以更改工作流名称和添加描述。然后,单击 Save to project(保存到项目)。

可视化 ETL 工作流已成功保存。

运行工作流

本小节介绍如何运行你创建的可视化 ETL 工作流。

  1. 在工作流页面右上角,单击 Run(运行)。

屏幕底部显示运行状态。运行状态从 Starting(启动中)转换为 Running(运行中),再从 Running(运行中)转换为 Finished(已完成)。

2. 等待运行状态变为 Finished(完成)。

使用 Amazon Athena 查询数据

输出数据已写入目标 S3 存储桶。本小节介绍如何查询输出数据表。

  1. 在左上角 Build 菜单下的 DATA ANALYSIS & INTEGRATION(数据分析和集成)下,选择 Query Editor(查询编辑器)。

2. 在 Data explorer 页面的 Lakehouse 下,单击 AwsDataCatalog。导航到表 venue_event_agg

3. 单击右侧三个点图标,然后选择 Query with Athena(使用 Athena 查询)。

页面将显示四条返回记录,如以下屏幕截图所示。这表示你已成功查询到可视化 ETL 工作流的输出表。

使用生成式 AI 生成可视化 ETL 工作流

上述操作指导是在可视化控制台上逐步完成可视化 ETL 工作流创建。SageMaker Unified Studio 还支持使用基于 Amazon Q 的生成式 AI 自动创建工作流。

  1. 在左上角的菜单中,单击 Visual ETL flows(可视化 ETL 工作流)。
  2. 单击 Create visual ETL flow(创建可视化 ETL 工作流)。
  3. 输入以下文本内容,然后单击 Submit(提交)。

Create a flow to connect 2 Glue catalog tables venue and event in database glue_db, join on event id , filter on venue state with condition as venuestate=='DC' and write output to a S3 location

系统将自动创建以下工作流模板。你可以对其进行编辑,从而快速创建你需要的可视化 ETL 工作流。

生成的工作流节点上会保留用于生成该工作流模板的 Prompt 上下文。

清理资源

在此实验过程中,我们创建了一些 AWS 资源。请在实验完成后,及时清理资源,以避免持续产生费用。

  1. 删除表。在 SQL 查询工具中,执行以下 SQL 语句删除创建的表:
drop table venue_event_agg

2. 删除工作流。在 Actions(操作)下,选择 Delete flow(删除工作流)。

总结

本文演示了如何使用 Amazon SageMaker Unified Studio 以低代码和无代码 (LCNC) 方式构建可视化 ETL 工作流,从而实现跨多个数据源无缝摄取和转换数据。

要了解更多信息,请参阅我们的文档AWS 新闻博客

更多教程

快速搭建容量高达 35GB 的免费个人网盘

本教程将介绍如何搭建一个没有使用限制的免费私人网盘。

构建企业专属智能客服机器人

本文将演示如何结合多种服务,打造企业专属的智能客服。

使用生成式 AI 构建多语言问答知识库

使用多种服务,构建可汇总搜索结果的多语言知识库。

查看全部教程 >>

免费套餐

AWS 海外区域

拓展海外业务或个人体验
免费使用 100 余种云产品或服务, 长达 12 个月

AWS 中国区域

发展中国业务
免费使用 40 余种核心云服务产品,长达 12 个月