我们很高兴地宣布,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 查询 的输出。在下面的步骤中,请将 ltglueetloutputs3bucketgt 和 ltathenaqueryoutputs3bucketgt 替换为您的 S3 存储桶名称。 您可以选择 创建一个新的数据目录数据库 或使用现有数据库来创建表。在下面的步骤中,请将 ltyourdatabasegt 替换为您的数据库名称。 按照以下步骤为 AWS Glue 作业创建 IAM 角色: json{ Version 20121017 Statement [ { Effect Allow Action [ s3GetObject s3PutObject s3DeleteObject ] Resource [ arnawss3awsbigdatablog/generatedsyntheticreviews/ ] } { Effect Allow Action [ s3List s3GetObject s3PutObject s3DeleteObject ] Resource [ arnawss3ltglueetloutputs3bucketgt/ arnawss3ltglueetloutputs3bucketgt ] } ]} 按照以下步骤创建用于与控制台交互的 IAM 角色: 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 控制台提供了一个交互式界面,使得可以直观地构建 AWS Glue ETL 作业的食谱步骤。 根据我们的示例用例,您正在编写食谱以预处理客户评论数据进行分析。在检查电子表格式数据预览时,您会注意到 producttitle 列中包含像 business formal pants plain 和 business formal jeans patterned 这样的值,产品名称与子属性之间用逗号分隔。为了更好地结构化这些数据以便后续分析,您决定在逗号分隔符上拆分 producttitle 列,从而为产品名称和子属性创建单独的列。这将使后续分析时通过产品类型或属性更容易进行筛选和聚合。 在电子表格式用户界面中,您可以查看每一列的统计信息,如最小值、中位数、最大值、基数和子集数据的值分布。这为数据提供了有用的洞察,以帮助决策变换。查看 reviewyear 列的统计信息时,您发现它包含跨越 15 年的广泛值。为了便于分析季节性和周趋势,您决定从 reviewdate 列中推导出反映日期的周数和星期几的新列。 此外,为了方便后续分析,您决定将 customerid 和 productid 列的数据类型从字符串更改为整数。数据类型转换是 ETL 工作流中的常见任务。AWS Glue Studio 中的数据准备食谱提供了多种常见的 ETL 转换,例如重命名列、删除列、排序和重新排序列。请随意浏览数据准备 UI,发现其他可以帮助您转换数据的可用食谱。 接下来,我们看看如何在 数据准备食谱 转换中实现这些需求的步骤。 在这些食谱步骤应用后,您可以看到 customerid 和 productid 列已转变为整数,producttitle 列已拆分为 producttitle1 和 producttitle2,并添加了 reviewdateweeknumber 和 reviewdateweekday。在编写数据准备食谱步骤时,您可以查看表格数据并检查食谱步骤是否按预期工作。这使得在食谱创作过程中可以通过界面预览进行互动式验证。 现在,在 AWS Glue Studio 控制台的 脚本 选项卡中,您可以看到根据食谱步骤生成的脚本。AWS Glue Studio 会自动将通过用户界面配置的食谱步骤转换为 Python 代码。这使您能够构建利用数据准备食谱中可用的广泛转换的 ETL 作业,而无需手动编写逻辑。 截至目前,我们已创建并运行了 ETL 作业。当作业完成运行时,将在数据使用 AWS Glue 视觉 ETL 进行作者数据整合工作
关键要点
AWS Glue Studio 新增可视化数据准备功能,实现低代码数据整合。可以通过图形界面轻松编辑数据准备流程,无需手动编写代码。本文展示了如何创建 ETL 工作,以满足业务需求。示例用例
前提条件
创建一个 S3 存储桶以存储来自 AWS Glue ETL 作业和 Athena 查询结果的输出
创建数据目录数据库
为 AWS Glue 作业创建 IAM 角色
为控制台用户创建 IAM 角色
使用互动的数据准备体验创建并运行数据整合作业
