资讯中心

Our News
您的位置: 首页 > 资讯中心 > 作者通过AWS Glue可视化ETL实现互动数据准备体验的数据集成工作 大数据博客

作者通过AWS Glue可视化ETL实现互动数据准备体验的数据集成工作 大数据博客

发布时间:2026-01-27 浏览量:26

使用 AWS Glue 视觉 ETL 进行作者数据整合工作

关键要点

AWS Glue Studio 新增可视化数据准备功能,实现低代码数据整合。可以通过图形界面轻松编辑数据准备流程,无需手动编写代码。本文展示了如何创建 ETL 工作,以满足业务需求。

我们很高兴地宣布,AWS Glue Studio 视觉编辑器新增了一项功能,提供了全新的可视化用户体验。现在,您可以使用 AWS Glue Studio 视觉编辑器创建和编辑数据准备转换。AWS Glue Studio 视觉编辑器是一个图形化界面,允许您在 AWS Glue 中创建、运行和监控数据整合工作。

AWS Glue Studio 中的新数据准备界面提供了直观的电子表格式视图,以便更好地与表格数据进行交互。在此界面中,您可以直观地检查表格数据样本,实时验证流程步骤,并无需编写代码即可创建数据准备流程。您可以从数百个预构建的转换中进行选择,这使得数据分析师和数据科学家能够快速构建满足其业务需求的数据准备步骤。完成流程后,AWS Glue Studio 会自动生成 Python 脚本,执行 AWS Glue 提取、转换和加载ETL作业中所需的流程变换。

在本文中,我们将展示如何使用此新功能构建一个视觉化的 ETL 作业,该作业对数据进行预处理,以满足示例用例的业务需求,整个过程均在 AWS Glue Studio 控制台内完成,无需手动编写脚本。

示例用例

假设一家虚构的电子商务公司销售服装,允许客户为每个产品留下文本评论和星级评分,以帮助其他客户做出明智的购买决定。我们将使用一个包含不同产品和客户评论的示例合成评论数据集来模拟这一过程。

在此场景中,您是该公司的数据分析师。您的角色涉及预处理原始客户评论数据,以便为后续分析做好准备。这需要通过诸如将列转换为适当的数据类型、将单列拆分为多列和根据其他列添加计算列等操作来变换数据。为了快速创建符合这些业务需求的 ETL 作业,您使用 AWS Glue Studio 检查数据并创建数据准备流程。

AWS Glue 作业将配置为以您所需的格式输出文件到 Amazon Simple Storage ServiceAmazon S3,并自动在 AWS Glue 数据目录中创建一个表。该数据目录表将与您的分析团队共享,使其能够使用 Amazon Athena 查询该表。

前提条件

在此教程中,您需要一个 S3 存储桶来存储 AWS Glue ETL 作业和 Athena 查询的输出结果,以及一个数据目录数据库来创建新表。您还需要为 AWS Glue 作业和 AWS 管理控制台 用户创建 AWS 身份和访问管理IAM角色。

创建一个 S3 存储桶以存储来自 AWS Glue ETL 作业和 Athena 查询结果的输出

您可以选择 创建一个新的 S3 存储桶 或使用现有存储桶来存储 AWS Glue ETL 作业和 Athena 查询 的输出。在下面的步骤中,请将 ltglueetloutputs3bucketgt 和 ltathenaqueryoutputs3bucketgt 替换为您的 S3 存储桶名称。

创建数据目录数据库

您可以选择 创建一个新的数据目录数据库 或使用现有数据库来创建表。在下面的步骤中,请将 ltyourdatabasegt 替换为您的数据库名称。

为 AWS Glue 作业创建 IAM 角色

按照以下步骤为 AWS Glue 作业创建 IAM 角色:

在 IAM 控制台的导航窗格中,选择 角色。选择 创建角色。对于 受信任的实体类型,选择 AWS 服务。对于 服务或用例,选择 Glue。选择 下一步。对于 添加权限,选择 AWSGlueServiceRole,然后选择 下一步。对于 角色名称,输入一个角色名称在本文中为 GlueJobRolerecipedemo。选择 创建角色。选择创建的 IAM 角色。在 权限策略 下,选择 添加权限 和 创建内联策略。对于 策略编辑器,选择 JSON,并输入以下策略:

json{ Version 20121017 Statement [ { Effect Allow Action [ s3GetObject s3PutObject s3DeleteObject ] Resource [ arnawss3awsbigdatablog/generatedsyntheticreviews/ ] } { Effect Allow Action [ s3List s3GetObject s3PutObject s3DeleteObject ] Resource [ arnawss3ltglueetloutputs3bucketgt/ arnawss3ltglueetloutputs3bucketgt ] } ]}

选择 下一步。对于 策略名称,输入您的策略名称。选择 创建策略。

为控制台用户创建 IAM 角色

按照以下步骤创建用于与控制台交互的 IAM 角色:

在 IAM 控制台的导航窗格中,选择 角色。选择 创建角色。对于 受信任的实体类型,选择您所需的实体。对于 添加权限,添加以下 AWS 管理策略:AmazonAthenaFullAccessAWSGlueConsoleFullAccess选择 下一步。对于 角色名称,输入您的角色名称。选择 创建角色。选择创建的 IAM 角色。在 权限策略 下,选择 添加权限 和 创建内联策略。对于 策略编辑器,选择 JSON,并输入以下策略:

json{ Version 20121017 Statement [ { Sid Statement1 Effect Allow Action [ iamPassRole ] Resource [ arnawsiamltaccountidgtrole/GlueJobRolerecipedemo ] } { Effect Allow Action [ s3GetObject ] Resource [ arnawss3awsbigdatablog/generatedsyntheticreviews/ ] } { Effect Allow Action [ s3List s3GetObject s3PutObject s3DeleteObject ] Resource [ arnawss3ltglueetloutputs3bucketgt/ arnawss3ltathenaqueryoutputs3bucketgt/ ] } ]}

选择 下一步。对于 策略名称,输入您的策略名称。选择 创建策略。

现在,您已经创建并配置了本教程所需的 S3 存储桶和 IAM 角色。切换到您设置的控制台用户角色,然后继续执行接下来的步骤。

使用互动的数据准备体验创建并运行数据整合作业

让我们在 AWS Glue Studio 中创建一个 AWS Glue ETL 作业。在这个 ETL 作业中,我们将加载 S3 Parquet 文件作为数据源,使用流程步骤处理数据,并将输出以 Parquet 格式写入 Amazon S3。您可以在 AWS Glue Studio 的可视化编辑器中配置所有这些步骤。我们将利用新的数据准备创作功能创建符合我们业务需求的数据转换流程。请按照以下步骤完成:

在 AWS Glue Studio 控制台中,选择导航窗格中的 可视化 ETL。在 创建作业 下,选择 可视化 ETL。在作业的顶部,将“未命名作业”替换为您选择的名称。在 作业详情 选项卡中,在 基本属性 下,指定作业将使用的 IAM 角色GlueJobRolerecipedemo。选择 保存。在 可视化 选项卡中,选择加号以打开 添加节点 菜单,搜索 s3,然后添加一个 Amazon S3 作为 来源。

对于 S3 源类型,选择 S3 位置。对于 S3 URL,指定 s3//awsbigdatablog/generatedsyntheticreviews/data/productcategory=Apparel/。对于 数据格式,选择 Parquet。作为此数据源的子节点,在 添加节点 菜单中搜索 recipe,并添加 数据准备食谱。在 数据预览 窗口中,选择 开始会话,如果尚未开始。如果没有开始,开始数据预览会话 将显示在 数据准备食谱 中。选择您为 AWS Glue 作业指定的 IAM 角色。选择 开始会话。

啊哈加速器app下载开启数据预览会话后,在 数据准备食谱 转换中选择 编写食谱 以打开数据准备食谱编辑器。

这将初始化一个使用部分数据的会话。会话初始化后,AWS Glue Studio 控制台提供了一个交互式界面,使得可以直观地构建 AWS Glue ETL 作业的食谱步骤。

根据我们的示例用例,您正在编写食谱以预处理客户评论数据进行分析。在检查电子表格式数据预览时,您会注意到 producttitle 列中包含像 business formal pants plain 和 business formal jeans patterned 这样的值,产品名称与子属性之间用逗号分隔。为了更好地结构化这些数据以便后续分析,您决定在逗号分隔符上拆分 producttitle 列,从而为产品名称和子属性创建单独的列。这将使后续分析时通过产品类型或属性更容易进行筛选和聚合。

在电子表格式用户界面中,您可以查看每一列的统计信息,如最小值、中位数、最大值、基数和子集数据的值分布。这为数据提供了有用的洞察,以帮助决策变换。查看 reviewyear 列的统计信息时,您发现它包含跨越 15 年的广泛值。为了便于分析季节性和周趋势,您决定从 reviewdate 列中推导出反映日期的周数和星期几的新列。

作者通过AWS Glue可视化ETL实现互动数据准备体验的数据集成工作 大数据博客

此外,为了方便后续分析,您决定将 customerid 和 productid 列的数据类型从字符串更改为整数。数据类型转换是 ETL 工作流中的常见任务。AWS Glue Studio 中的数据准备食谱提供了多种常见的 ETL 转换,例如重命名列、删除列、排序和重新排序列。请随意浏览数据准备 UI,发现其他可以帮助您转换数据的可用食谱。

接下来,我们看看如何在 数据准备食谱 转换中实现这些需求的步骤。

选择 customerid 列并选择 更改类型 食谱步骤。对于 更改类型为,选择 整数。选择 应用 以添加食谱步骤。

选择 productid 列并选择 更改类型 食谱步骤。对于 更改类型为,选择 整数。选择 应用。选择 producttitle 列并选择 在单个分隔符上 进行 拆分。对于 分隔符,选择 输入自定义值 并输入 。选择 应用。

选择 reviewdate 列并选择 周数 在 提取 下进行转换。对于 目标列,输入 reviewdateweeknumber。选择 应用。

选择 reviewdate 列并选择 星期几 在 提取 下进行转换。对于 目标列,输入 reviewdateweekday。选择 应用。

在这些食谱步骤应用后,您可以看到 customerid 和 productid 列已转变为整数,producttitle 列已拆分为 producttitle1 和 producttitle2,并添加了 reviewdateweeknumber 和 reviewdateweekday。在编写数据准备食谱步骤时,您可以查看表格数据并检查食谱步骤是否按预期工作。这使得在食谱创作过程中可以通过界面预览进行互动式验证。

选择 完成编写食谱 以关闭界面。

现在,在 AWS Glue Studio 控制台的 脚本 选项卡中,您可以看到根据食谱步骤生成的脚本。AWS Glue Studio 会自动将通过用户界面配置的食谱步骤转换为 Python 代码。这使您能够构建利用数据准备食谱中可用的广泛转换的 ETL 作业,而无需手动编写逻辑。

选择 保存 以保存作业。在 可视化 选项卡中,搜索 添加节点 菜单中的 s3 并添加一个 Amazon S3 作为 目标。对于 格式,选择 Parquet。对于 压缩类型,选择 Snappy。对于 S3 目标位置,选择您的输出 S3 位置 s3//ltglueetloutputs3bucketgt/output/。对于 数据目录更新选项,选择 在数据目录中创建表,并在后续运行时更新架构和添加新分区。对于 数据库,选择您所选的数据库。对于 表名,输入 datapreparationrecipedemotbl。在 分区键 下,选择 添加分区键,并选择 reviewyear。选择 保存,然后选择 运行 以运行作业。

截至目前,我们已创建并运行了 ETL 作业。当作业完成运行时,将在数据

QQ

在线咨询真诚为您提供专业解答服务

热线

13594780373
7*24小时服务热线

微信

二维码 扫一扫微信交流