在数据库和数据仓库领域,“ETL”(提取、转换和加载)这一术语可能耳熟能详。随着组织数据量的增长,利用这些数据进行分析以获得商业洞察的需求也随之增长。为了高效管理这些数据,ETL过程变得必不可少。AWS通过其服务AWS Glue帮助用户执行ETL任务,尤其是复杂的ETL任务。AWS Glue是一个无服务器的ETL工具,它帮助用户进行数据分析,并在短时间内获得结果。此外,由于它是一个自动管理的完全由AWS维护的服务,用户无需管理任何云基础设施。
为什么数据科学家和分析师选择AWS Glue?作为一个基于云的工具,AWS Glue降低了成本,减少了创建ETL作业所需的时间。它还消除了与ETL数据处理相关的所有复杂任务,因为它与各种平台关联,可以快速进行数据分析。本文概述了AWS Glue,为什么它是ETL数据处理的有效工具,Glue的架构和组件,它的工作原理以及一些用例。
AWS Glue是一个无服务器数据集成服务,开发用于执行提取、转换和加载数据的ETL过程。由于它是一个无服务器服务,用户无需管理基础设施、配置、扩展或提供资源。Glue提供了易于使用的工具,根据计划、事件触发器或按需创建和跟踪作业任务。AWS Glue提供了可视化和基于代码的界面,使数据集成更加易于管理。通过AWS Glue Studio,用户可以仅通过几次点击就可视化地创建、运行和监控ETL工作流。
自动ETL代码生成:通过指定数据的源和目的地,AWS Glue可以为整个ETL管道生成Python或Scala代码。这个特性简化了数据集成操作,并允许用户并行处理重负载工作。
仅为使用的资源付费:Glue具有成本效益,用户只需为使用的资源付费。如果ETL作业偶尔需要更多的计算能力,但在其他时间消耗较少资源,用户无需为非高峰时间的资源付费。
开发者端点:对于喜欢手动创建和测试自己的自定义ETL脚本的用户来说,这很有帮助。它可以调试、编辑和测试自动生成的代码。使用开发者端点,可以创建自定义读取器、写入器或转换,这些可以进一步作为自定义库导入到Glue ETL作业中。
自动模式发现:Glue使用爬虫解析数据及其源或目标。爬虫获取与模式相关的信息并将其存储在数据目录中,这有助于管理工作。因此,用户无需单独为数据设计模式以适应ETL过程的复杂特性。
AWS Glue由许多单独的组件组成,如数据目录、作业调度系统、爬虫、ETL引擎、数据存储等。Glue依赖于这些组件之间的交互来开发和维护ETL操作。不同的组件可以通过Glue工作流进行编排,以获得功能性数据处理管道。工作流定义并可视化了启动爬虫和作业的顺序,以促进数据转换。
Glue架构的组件包括:
首先,用户必须确定用作过程或转换输入的数据源。数据爬虫分析并提取有关数据源和目标的必要信息。它对数据进行分类,以确定原始数据的格式和相关属性,并将数据分组到表或分区中。这些数据被发送并存储为Glue数据目录中的元数据表定义。在Glue数据目录完全分类后,数据将准备好进行ETL,可搜索和可查询。用户可以创建脚本,安排ETL作业,或设置触发事件以启动作业。在执行任务时,脚本将从数据源提取数据,转换并加载到数据目标。因此,ETL(提取、转换、加载)过程将完成。
AWS Glue在构建事件驱动的ETL工作流时非常有用。它允许开发人员根据Amazon EventBridge传递的事件启动AWS Glue工作流。这个特性使用户能够从任何AWS服务、SaaS提供商或自定义应用程序的事件触发数据集成工作流。用户可以通过AWS Lambda函数在Amazon S3中新数据可用时调用AWS Glue ETL作业来启动ETL作业。
AWS Glue具有使用JDBC驱动程序的本地连接器,可以在AWS或任何具有IP连接的云中使用。使用JDBC协议,Glue原生支持像Amazon RDS及其变体、Amazon Redshift等数据存储。对于Glue不原生支持的数据源,如SAP Sybase、IBM DB2、Pivotal Greenplum或其他RDBMS,用户可以从AWS S3导入自定义数据库连接器到AWS Glue作业中。