基于Amazon SageMaker Unified Studio 构建可视化 ETL 工作流:低代码无代码实践

新用户可获得高达 200 美元的服务抵扣金
亚马逊云科技新用户可以免费使用亚马逊云科技免费套餐(Amazon Free Tier)。注册即可获得 100 美元的服务抵扣金,在探索关键亚马逊云科技服务时可以再额外获得最多 100 美元的服务抵扣金。使用免费计划试用亚马逊云科技服务,最长可达 6 个月,无需支付任何费用,除非您选择付费计划。付费计划允许您扩展运营并获得超过 150 项亚马逊云科技服务的访问权限。

在 Unified Studio 中,可以使用熟悉的亚马逊云科技工具进行模型开发、构建生成式 AI 应用、处理数据和进行 SQL 分析等,从而更快地进行协作和构建。应用场景包括可视化 ETL。可视化 ETL 平台是一种新的可视化界面,让数据工程师能够轻松创建、运行和监控提取、转换、加载 (ETL) 数据集成流程。你可以使用简单的可视化界面来创建数据移动和转换流程,并使用无服务器计算服务运行这些流程。可视化 ETL 工作流还会自动将流程的有向无环图 (DAG) 转换为 Spark 原生脚本,以便继续通过 Notebook 进行后续编辑工作

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

img

1. 前提条件

  • 创建并登录 亚马逊云科技账户

  • 一个 SageMaker Unified Studio 域

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

2.构建可视化 ETL 工作流

使用数据集构建新的可视化 ETL 工作流:

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

img

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

img

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

img

手动定义 ETL 工作流。

  1. 在左上角,单击圆圈中的 + 图标。在 Data sources(数据源)下,单击 Amazon S3。在画布上找到 Amazon S3 图标。

img

  1. 单击 Amazon S3 数据源节点,然后完成以下设置:
  • S3 URIs3://aws-blogs-artifacts-public/artifacts/BDB-4798/data/venue.csv
  • Format(格式):CSV
  • Delimiter(分隔符):,
  • Multiline(多行):Enabled(启用)
  • Header(标头):Disabled(禁用)

其余参数保留默认值。

img

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

img

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

img

  1. 选择 Rename Columns(重命名列)节点,然后单击 Add new rename pair(新增重命名对)。在 Current name(当前名称)和 New name(新名称)列中,输入以下名称映射对:
  • _c0:venueid
  • *_c1:venuename*
  • *_c2:venuecity*
  • *_c3:venuestate*
  • *_c4:venueseats*

img

  1. 单击 Rename Columns(重命名列)节点右侧的 + 图标。在 Transforms(转换)下,选择 Filter(筛选)。
  2. 单击 Add new filter condition(新增筛选条件)。

12.在 Key(键)字段下,选择 venuestate。在 Operation(操作)字段下,选择 ==。在 Value(值)字段下,输入 DC

img

  1. 重复步骤 5 和 6,添加 events 表的 Amazon S3 数据源节点。
  • S3 URIs3://aws-blogs-artifacts-public/artifacts/BDB-4798/data/events.csv
  • Format(格式):CSV
  • Sep(分隔符):,
  • Multiline(多行):Enabled(启用)
  • Header(标头):Disabled(禁用)
  1. 对该 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*

img

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

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

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

img

  1. 单击 Join(连接)节点右侧的 + 图标。在 Transforms(转换)下,选择 SQL Query(SQL 查询)。
  2. 输入以下查询语句:
select 
  venuename,
  count(distinct eventid) as eventid_count 
from {myDataSource} 
group by venuename

img

  1. 单击 SQL Query(SQL 查询)节点右侧的 + 图标。在 Data target(数据目标)下,选择 Amazon S3
  2. 单击 Amazon S3 目标节点,然后完成以下设置:
  • S3 URI:<项目概述中的 S3 位置+后缀 /output/venue_event/>(如 s3:///dzd_bd693kieeb65yf/52d3z1nutb42w7/dev/output/venue_event/
  • Format(格式):Parquet
  • Compression(压缩):Snappy
  • Mode(模式):Overwrite(覆盖)
  • Update catalog(更新目录):True(是)
  • Database(数据库):选择你的数据库
  • Table(表):venue_event_agg

img

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

img

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

img

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

3. 运行可视化 ETL工作流

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

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

img

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

img

使用 Amazon Athena 查询数据

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

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

img

  1. 在 Data explorer 页面的 Lakehouse 下,单击 AwsDataCatalog。导航到表 venue_event_agg
  2. 单击右侧三个点图标,然后选择 Query with Athena(使用 Athena 查询)。

img

页面将显示四条返回记录。这表示已成功查询到可视化 ETL 工作流的输出表。

img

4. 使用生成式 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

img

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

img

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

img

总结

本文演示了如何使用 Amazon SageMaker Unified Studio 以低代码和无代码 (LCNC) 方式构建可视化 ETL 工作流,从而实现跨多个数据源无缝摄取和转换数据。
以上就是本文的全部内容啦。最后提醒一下各位工友,如果后续不再使用相关服务,别忘了在控制台关闭,避免超出免费额度产生费用~

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐