AWS 胶水工作室 现在与 AWS Glue 数据酿造。 AWS Glue Studio 是一个图形界面,可让您轻松创建、运行和监控提取、转换和加载 (ETL) 作业 AWS胶水。 DataBrew 是一种可视化数据准备工具,使您无需编写任何代码即可清理和标准化数据。 它提供的 200 多种转换现在可用于 AWS Glue Studio 可视化作业。
在DataBrew中, 食谱 是一组数据转换步骤,您可以在其直观的可视化界面中以交互方式编写这些步骤。 在本文中,您将了解如何在 DataBrew 中构建配方,然后将其应用为 AWS Glue Studio 可视化 ETL 作业的一部分。
现有 DataBrew 用户也将从这种集成中受益 - 除了能够使用高级作业配置和最新的 AWS Glue 引擎版本之外,您现在还可以将配方作为更大的可视化工作流程的一部分与 AWS Glue Studio 提供的所有其他组件一起运行。
这种集成为这两种工具的现有用户带来了明显的好处:
- 您可以在 AWS Glue Studio 中集中查看整个 ETL 图(端到端)
- 您可以交互地定义配方,在 DataBrew 控制台上查看值、统计数据和分布,然后在 AWS Glue Studio 可视化作业中重用经过测试和版本控制的处理逻辑
- 您可以在一个 AWS Glue ETL 作业中编排多个 DataBrew 配方,甚至可以使用 AWS Glue 工作流程编排多个作业
- DataBrew 配方现在可以使用 AWS Glue 作业功能,例如用于增量数据处理的书签、自动重试、自动缩放或对小文件进行分组以提高效率
解决方案概述
在我们的虚构用例中,要求是清理为此帖子创建的合成医疗索赔数据集,其中故意引入了一些数据质量问题,以演示 DataBrew 在数据准备方面的功能。 然后,在用来自单独来源的有关相应医疗提供者的一些相关详细信息丰富目录后,索赔数据将被提取到目录中(以便分析师可以看到)。
该解决方案包含一个 AWS Glue Studio 可视化作业,该作业分别读取两个包含声明和提供商的 CSV 文件。 该作业应用第一个数据集的配方来解决质量问题,从第二个数据集中选择列,连接两个数据集,最后将结果存储在 亚马逊简单存储服务 (Amazon S3),在目录上创建一个表,以便输出数据可以由其他工具使用,例如 亚马逊雅典娜.
创建 DataBrew 配方
首先注册索赔文件的数据存储。 这将允许您使用实际数据在其交互式编辑器中构建配方,以便您可以在定义转换时评估转换的结果。
- 使用以下链接下载索赔 CSV 文件: alabama_claims_data_Jun2023.csv.
- 在 DataBrew 控制台上,选择 数据集 在导航窗格中,然后选择 连接新数据集.
- 选择选项 上传文件.
- 针对 数据集名称,输入
Alabama claims
. - 针对 选择要上传的文件,选择您刚刚下载到计算机上的文件。
- 针对 输入 S3 目标,输入或浏览到您的账户和区域中的存储桶。
- 保留其余选项默认(CSV 以逗号和标题分隔)并完成数据集创建。
- 项目 在导航窗格中,然后选择 创建项目.
- 针对 项目名,命名
ClaimsCleanup
. - 下 食谱详情,为 附食谱,选择 创建新配方,命名
ClaimsCleanup-recipe
,然后选择Alabama claims
您刚刚创建的数据集。 - 选择 适合 DataBrew 的角色 或者新建一个,完成项目创建。
这将使用数据的可配置子集创建一个会话。 初始化会话后,您可以注意到某些单元格具有无效或缺失值。
除了列中的缺失值之外 诊断码, 索赔金额及 索赔日期,数据中的某些值有一些额外的字符: 诊断码 值有时以“code”为前缀(包括空格),并且 程序代码 值有时后跟单引号。
索赔金额 值可能会用于某些计算,因此请转换为数字,并且 索赔数据 应该转换为日期类型。
既然我们确定了要解决的数据质量问题,我们需要决定如何处理每种情况。
您可以通过多种方式添加配方步骤,包括使用列上下文菜单、顶部的工具栏或从配方摘要中。 使用最后一种方法,您可以搜索指示的步骤类型以复制本文中创建的配方。
索赔金额 对于此用例至关重要,因此决定删除此类行。
- 添加步骤 删除缺失值.
- 针对 源列,选择 索赔金额.
- 保留默认操作 删除有缺失值的行 并选择 使用 保存它。
视图现已更新以反映步骤应用程序,并且缺少金额的行不再存在。
诊断码 可以为空,因此可以接受,但在这种情况下 索赔日期,我们想要有一个合理的估计。 数据中的行按时间顺序排序,因此您可以使用前面行中的预览有效值来估算缺失的日期。 假设每天都有索赔,如果当天是第一个索赔而错过了日期,那么最大的错误就是将其分配到预览日; 出于说明目的,我们认为潜在的错误是可以接受的。
首先,将列从字符串类型转换为日期类型。
- 添加步骤 变更类型.
- 索赔日期 作为列和 日期 作为类型,然后选择 使用.
- 现在要对缺失的日期进行插补,请添加以下步骤 填充或估算缺失值.
- 选择使用最后一个有效值填充作为操作,然后选择 索赔日期 作为来源。
- 预览变更 验证它,然后选择 使用 以保存该步骤。
到目前为止,您的食谱应该包含三个步骤,如以下屏幕截图所示。
- 接下来,添加步骤 删除引号.
- 选择 程序代码 列和选择 前导引号和尾随引号.
- 预览以验证其是否具有所需的效果并应用新步骤。
- 添加步骤 删除特殊字符.
- 选择 索赔金额 列,更具体地说,选择 自定义特殊字符 并进入
$
输入自定义特殊字符. - 添加 变更类型 踩柱子 索赔金额 并选择 翻番 作为类型。
- 最后一步,要删除多余的“code”前缀,请添加 替换值或模式 步。
- 选择列 诊断码,和 输入自定义值,输入
code
(末尾有一个空格)。
现在您已经解决了示例中发现的所有数据质量问题,请将项目发布为配方。
- 发布 ,在 烹饪食谱 窗格中,输入可选说明,然后完成发布。
每次发布时,它都会创建不同版本的食谱。 稍后,您将能够选择使用哪个版本的配方。
在 AWS Glue Studio 中创建可视化 ETL 作业
接下来,您创建使用该配方的作业。 完成以下步骤:
- 在 AWS Glue Studio 控制台上,选择 可视化ETL 在导航窗格中。
- 带有空白画布的视觉效果 并创建视觉作业。
- 在作业顶部,将“无标题作业”替换为您选择的名称。
- 点击 招聘详情 选项卡,指定作业将使用的角色。
这需要是一个 AWS身份和访问管理 (我是) 适合 AWS Glue 的角色 具有 Amazon S3 和 AWS Glue 数据目录的权限。 请注意,之前用于 DataBrew 的角色不可用于运行作业,因此不会在 IAM角色 下拉菜单在这里。
如果您之前仅使用过 DataBrew 作业,请注意,在 AWS Glue Studio 中,您可以选择性能和成本设置,包括工作线程大小、自动缩放和 灵活执行,以及使用最新的 AWS Glue 4.0 运行时并受益于它带来的显着性能改进。 对于此作业,您可以使用默认设置,但为了节俭而减少所需的工人数量。 对于这个例子,两个工人就可以了。 - 点击 视觉 选项卡,添加 S3 源并为其命名
Providers
. - 针对 S3 网址,输入
s3://awsglue-datasets/examples/medicare/Medicare_Hospital_Provider.csv
.
- 选择格式为 CSV 并选择 推断架构.
现在架构已列在 输出模式 使用文件头选项卡。
在这个用例中,我们决定不需要提供者数据集中的所有列,因此我们可以丢弃其余的列。
- 随着 提供服务者 选中节点,添加一个 拖放字段 变换(如果您没有选择父节点,则它不会有父节点;在这种情况下,请手动分配节点父节点)。
- 选择之后的所有字段 提供者邮政编码.
稍后,该数据将与使用提供商的阿拉巴马州的索赔结合起来; 但是,第二个数据集没有指定状态。 我们可以利用数据知识通过过滤我们真正需要的数据来优化连接。
- 添加 筛选器 作为孩子的转变 拖放字段.
- 命名它
Alabama providers
并添加状态必须匹配的条件AL
. - 添加第二个源(新的 S3 源)并为其命名
Alabama claims
. - 进入 S3 网址,在单独的浏览器选项卡上打开 DataBrew,在导航窗格中选择数据集,然后在表中复制表中显示的位置 阿拉巴马州声称 (复制以 s3:// 开头的文本,而不是关联的 http 链接)。 然后回到视觉作业,将其粘贴为 S3 网址; 如果正确,您将在 输出模式 选项卡列出的数据字段。
- 选择 CSV 格式并推断架构,就像您对其他源所做的那样。
- 作为此源的子项,请在 添加节点 菜单
recipe
并选择 数据准备方法. - 在这个新节点的属性中,为其指定名称
Claim cleanup recipe
并选择您之前发布的配方和版本。 - 您可以在此处查看配方步骤,并根据需要使用 DataBrew 链接进行更改。
- 添加 加入 节点并选择两者 阿拉巴马州供应商 和 索取清理食谱 作为家长。
- 添加与两个源的提供者 ID 相等的连接条件。
- 最后一步,添加 S3 节点作为目标(请注意,搜索时列出的第一个节点是源;确保选择列为目标的版本)。
- 在节点配置中,保留默认格式 JSON 并输入作业角色有权写入的 S3 URL。
此外,将数据输出作为目录中的表格提供。
- 在 数据目录更新选项 部分,选择第二个选项 在数据目录中创建表,并在后续运行中更新架构并添加新分区,然后选择您有权创建表的数据库。
- 分配
alabama_claims
作为名称并选择 索赔日期 作为分区键(这是为了说明目的;如果以后不添加更多数据,像这样的小表实际上并不需要分区)。 - 现在您可以保存并运行作业。
- 点击 运行 选项卡中,您可以跟踪流程并使用作业 ID 链接查看详细的作业指标。
该作业应该需要几分钟才能完成。
- 作业完成后,导航到 Athena 控制台。
- 搜索表格
alabama_claims
在您选择的数据库中,然后使用上下文菜单选择 预览表,这将在表上运行一个简单的 SELECT * SQL 语句。
您可以在作业结果中看到数据已由 DataBrew 配方清理并由 AWS Glue Studio 联接丰富。
Apache Spark 是运行在 AWS Glue Studio 上创建的作业的引擎。 使用 Spark UI 生成的事件日志,您可以查看有关作业计划和运行的见解,这可以帮助您了解作业的执行情况以及潜在的性能瓶颈。 例如,对于大型数据集上的这项作业,您可以使用它来比较在执行连接之前显式过滤提供者状态的影响,或者确定您是否可以从添加自动平衡转换以提高并行性中受益。
默认情况下,作业会将 Apache Spark 事件日志存储在路径下 s3://aws-glue-assets-<your account id>-<your region name>/sparkHistoryLogs/
。 要查看作业,您必须使用安装历史服务器 可用的方法之一.
清理
如果您不再需要此解决方案,您可以删除在 Amazon S3 上生成的文件、作业创建的表、DataBrew 配方和 AWS Glue 作业。
结论
在这篇文章中,我们展示了如何使用 AWS DataBrew 使用提供的交互式编辑器构建配方,然后将发布的配方用作 AWS Glue Studio 可视化 ETL 作业的一部分。 我们提供了一些在进行数据准备和将数据提取到 AWS Glue Catalog 表时所需的常见任务的示例。
此示例在可视化作业中使用了单个配方,但可以在 ETL 过程的不同部分使用多个配方,以及在多个作业中重复使用相同的配方。
这些 AWS Glue 解决方案允许您有效地创建易于构建和维护的高级 ETL 管道,而无需编写任何代码。 您现在就可以开始创建结合这两种工具的解决方案。
关于作者
米哈伊尔·斯米尔诺夫 是 AWS Glue 团队的高级软件开发工程师,也是 AWS Glue DataBrew 开发团队的成员。 工作之余,他的兴趣包括学习弹吉他和与家人一起旅行。
贡萨洛·埃雷罗斯 是 AWS Glue 团队的高级大数据架构师。 他常驻爱尔兰都柏林,利用基于 AWS Glue 的大数据解决方案帮助客户取得成功。 业余时间,他喜欢棋盘游戏和骑自行车。
- :具有
- :是
- :不是
- $UP
- 10
- 100
- 12
- 15%
- 20
- 200
- 22
- 26
- 28
- 500
- 7
- 8
- a
- Able
- 关于
- 可接受
- 公认
- ACCESS
- 账号管理
- 操作
- 实际
- 加
- 添加
- 添加
- 增加
- 地址
- 高级
- 后
- 阿拉巴马
- 所有类型
- 让
- 还
- Amazon
- 亚马逊网络服务
- 量
- an
- 分析师
- 和
- 任何
- 阿帕奇
- Apache Spark
- 应用领域
- 使用
- 保健
- AS
- 相关
- At
- 作者
- 汽车
- 自动表
- 可使用
- AWS
- AWS胶水
- 背部
- 基于
- BE
- before
- 作为
- 得益
- 好处
- 大
- 大数据运用
- 空白
- 板
- 棋盘游戏
- 书签
- 都
- 带来
- 浏览器
- 建立
- 但是
- by
- CAN
- 能力
- 案件
- 检索目录
- 细胞
- 集中
- 更改
- 更改
- 字符
- 孩子
- 选择
- 要求
- 索赔
- 码
- 柱
- 列
- 结合
- 未来
- 相当常见
- 比较
- 完成
- 组件
- 一台
- 流程条件
- 配置
- 考虑
- 由
- 安慰
- 上下文
- 兑换
- 转换
- 正确
- 相应
- 价格
- 可以
- 创建信息图
- 创建
- 创造
- 创建
- 习俗
- 合作伙伴
- data
- 资料准备
- 数据处理
- 数据质量
- 数据库
- 数据集
- 日期
- 重要日期
- 天
- 处理
- 决定
- 决定
- 默认
- 演示
- 描述
- 期望
- 详细
- 详情
- 开发
- 研发支持
- 开发团队
- DID
- 不同
- 不同
- 分配
- do
- 不会
- 做
- 美元
- 翻番
- 下降
- 都柏林
- 每
- 易
- 编辑
- 效果
- 只
- 使
- 结束
- 发动机
- 工程师
- 丰富
- 充实
- 输入
- 错误
- 必要
- 醚(ETH)
- 评估
- 甚至
- 活动
- 所有的
- 每天
- 例子
- 例子
- 现有
- 额外
- 提取
- 家庭
- 远
- 特征
- 少数
- 字段
- 文件
- 档
- 填
- 过滤
- 过滤
- 终于
- (名字)
- 其次
- 以下
- 针对
- 格式
- 止
- 进一步
- Games
- 产生
- 给
- 更大的
- 有
- he
- 帮助
- 帮助
- 相关信息
- 他的
- 历史
- 创新中心
- How To
- 但是
- HTML
- HTTP
- HTTPS
- IAM
- ID
- 确定
- 鉴定
- 身分
- if
- 影响力故事
- 改善
- 改善
- in
- 包括
- 包括
- 包含
- 表示
- 输入
- 可行的洞见
- 安装
- 例
- 集成
- 积分
- 互动
- 兴趣
- 利益
- 接口
- 成
- 介绍
- 直观的
- 爱尔兰
- 问题
- IT
- 它的
- 工作
- 工作机会
- 加入
- 加盟
- JPG
- JSON
- 只是
- 保持
- 键
- 知识
- 大
- 大
- 最大
- (姓氏)
- 后来
- 最新
- 学习
- 离开
- 喜欢
- 容易
- 友情链接
- 已发布
- 加载
- 圖書分館的位置
- 逻辑
- 不再
- 保持
- 使
- 制作
- 手动
- 匹配
- 医生
- 菜单
- 方法
- 方法
- 指标
- 分钟
- 失踪
- 显示器
- 更多
- 多
- 必须
- 姓名
- 导航
- 旅游导航
- 需求
- 打印车票
- 需要
- 全新
- 没有
- 节点
- 注意..
- 现在
- 数
- of
- on
- 一
- 仅由
- 打开
- 优化
- 附加选项
- 附加选项
- or
- 秩序
- 其他名称
- 我们的
- 产量
- 学校以外
- 超过
- 最划算
- 面包
- 部分
- 部分
- 径
- 性能
- 执行
- 允许
- 权限
- 计划
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 播放
- 可能
- 帖子
- 潜力
- 准备
- 预览
- 预览
- 过程
- 处理
- 产生
- 项目
- 提供
- 提供者
- 供应商
- 提供
- 出版物
- 发布
- 出版
- 目的
- 目的
- 质量
- 报价
- 真
- 合理
- 食谱
- 食谱
- 减少
- 反映
- 地区
- 注册
- 相应
- 去掉
- 更换
- 要求
- 必须
- 需求
- 分别
- REST的
- 导致
- 成果
- 重用
- 检讨
- 角色
- 运行
- 运行
- 同
- 保存
- 鳞片
- 缩放
- 搜索
- 其次
- 部分
- 看到
- 看到
- 选
- 分开
- 特色服务
- 会议
- 集
- 设置
- 应该
- 显示
- 如图
- 签署
- 显著
- 简易
- 单
- 尺寸
- 小
- So
- 至今
- 软件
- 方案,
- 解决方案
- 一些
- 来源
- 来源
- 太空
- 火花
- 特别
- 具体的
- 指定
- SQL
- 开始
- 开始
- 州/领地
- 个人陈述
- 统计
- 步
- 步骤
- 存储
- 商店
- 简单的
- 串
- 工作室
- 随后
- 走向成功
- 这样
- 合适的
- 概要
- 肯定
- 合成的
- 表
- 采取
- 目标
- 任务
- 团队
- 测试
- 这
- 国家
- 他们
- 然后
- 那里。
- Free Introduction
- 三
- 次
- 至
- 今晚
- 工具
- 工具
- 最佳
- 跟踪时
- 改造
- 转型
- 转换
- 旅游
- 二
- 类型
- ui
- 下
- 理解
- 更新
- 更新
- 网址
- 可用
- 使用
- 用例
- 用过的
- 用户
- 使用
- 运用
- 验证
- 折扣值
- 价值观
- 确认
- 版本
- 查看
- 可见
- 想
- 是
- 方法
- we
- 卷筒纸
- Web服务
- 井
- 为
- ,尤其是
- 这
- 将
- 也完全不需要
- 工作
- 工人
- 工人
- 工作流程
- 将
- 写
- 写作
- 您
- 您一站式解决方案
- 和风网
- 压缩