AWS Glue のアイコン

AWS Glue 热门2016年〜

自动化数据抽取、转换和加载的无服务器 ETL 服务

它能做什么

AWS Glue 是自动化从各种数据源抽取数据、转换为适合分析的格式并加载到数据仓库或数据湖的一系列处理 (ETL) 的无服务器服务。无需构建和管理服务器,数据目录功能可自动发现和管理数据的位置和模式 (结构)。内置基于 Apache Spark 的处理引擎,可并行高速执行大规模数据转换。

使用场景

适用于将 S3 中积累的原始数据格式转换并集成到数据湖、构建从多个数据库和应用整合数据的管道、在 RedshiftAthena 分析前进行数据清洗和规范化、将日志数据转换为 Parquet 格式以优化查询成本等需要数据预处理和集成的场景。

日常类比

可以将其比作食品加工厂。从农户 (数据源) 送来的蔬菜水果 (原始数据) 形状大小各异。加工厂 (Glue) 自动进行清洗、切割、包装,使其能整齐地摆放在超市货架 (数据仓库) 上。工厂设备只按使用时间收费,不运行时维护费为零。

什么是 Glue

AWS Glue 是 2017 年推出的无服务器数据集成服务。ETL 是 Extract (抽取)、Transform (转换)、Load (加载) 的缩写,指收集分散在不同系统中的数据、整理成易于分析的形式并存储的处理。传统 ETL 工具需要大量精力构建运维服务器和配置作业调度,而 Glue 将这些全部交由 AWS 管理,开发者可专注于数据转换逻辑。

数据目录

Glue 的核心功能之一是数据目录。称为爬虫的功能自动扫描 S3、RDSRedshift 等数据源,将表定义和模式信息注册到目录中。该目录可被 Athena、Redshift Spectrum、EMR 等其他 AWS 分析服务引用,作为集中管理数据位置和结构的元数据存储。数据添加或变更时,爬虫检测差异并自动更新目录。

ETL 作业机制

Glue 的 ETL 作业在基于 Apache Spark 的分布式处理引擎上运行。可用 Python (PySpark) 或 Scala 编写作业脚本,使用 Glue Studio 的可视化编辑器还可以通过拖放构建 ETL 管道而无需编写代码。作业执行时自动分配所需计算资源,处理完成后释放。定价基于 DPU (Data Processing Unit) 使用时间按量计费。 如需把握 ETL 作业机制的全貌,可参阅 专业书籍 (Amazon)

作业调度与工作流

Glue 内置了管理作业执行计划的调度器和连接多个作业的工作流功能。可用 cron 表达式设置作业定期执行,或定义前置作业成功后才执行下一个作业的依赖关系。使用触发器功能还可以构建以文件到达 S3 为触发自动启动 ETL 作业的事件驱动管道。

入门指南

要开始使用 Glue,首先在 Glue 控制台创建爬虫,指定 S3 存储桶等数据源并执行。爬虫检测数据并在目录中注册表后,在 Glue Studio 中创建可视化 ETL 作业。将源 (输入)、转换 (过滤和列变更)、目标 (输出目的地) 作为节点放置并连接,即可完成 ETL 管道。测试运行确认结果后,设置计划转入定期执行。

注意事项

  • Pricing is based on DPU usage time, so costs increase with large data transformations. Use small datasets for development and testing
  • Running crawlers too frequently increases costs. Set appropriate schedules based on data update frequency
  • Glue Studio's visual editor enables no-code ETL, but for complex transformation logic, writing PySpark scripts directly is more appropriate
共有するXB!