深入解析 AWS Glue:一款强大的云端数据集成服务
随着越来越多的企业开始采用托管数据集成服务,Amazon Glue 的受欢迎程度日益攀升。它已成为众多公司处理复杂数据流程的首选工具。
数据抽取、转换和加载(ETL)是将数据从源数据库迁移至数据仓库的关键步骤。然而,由于其固有的复杂性,ETL 对于所有企业数据来说,实施起来可能非常具有挑战性。为了解决这个问题,亚马逊推出了 AWS Glue。
AWS Glue 旨在帮助 ETL 开发人员和数据工程师构建、监控和运行 ETL 工作流程,从而简化整个过程。
AWS Glue 的核心是什么?
AWS Glue 是一种无服务器的数据集成服务,旨在简化从各种来源查找、准备、移动和集成数据的过程。它在机器学习(ML)和数据分析领域中发挥着至关重要的作用。
该服务能够大幅缩短为分析准备数据所需的时间。它可以自动检测和分类数据,生成 Scala 或 Python 代码来处理数据传输,并根据预定事件触发加载和转换作业。
AWS Glue 允许灵活地进行任务调度,并提供可扩展的 Apache Spark 环境,以满足目标数据加载的需求。此外,它还提供强大的数据流监控和变更管理功能。作为一种无服务器服务,AWS Glue 显著简化了应用程序开发中的复杂操作。
它能够实现多个有效数据的快速集成,并能够快速分解和授权数据访问。
AWS Glue 的应用场景
了解 AWS Glue 最适合的应用场景至关重要。以下是一些您应该考虑使用 AWS Glue 的例子:
- AWS Glue 可帮助您在 Amazon S3 数据湖上执行无服务器查询。它是您入门的理想选择,允许您在统一界面上访问所有数据,无需移动即可进行分析。
- 使用 AWS Glue,您可以轻松了解您的数据资产。其数据目录功能让您可以便捷地搜索不同的 AWS 数据集,并在多个 AWS 服务中存储数据,同时保持一致的数据视图。
- 在构建事件驱动的 ETL 工作流程时,AWS Glue 能够发挥关键作用。您可以利用 AWS Lambda 服务调用 Glue ETL 任务,从而在 Amazon S3 上执行 ETL 操作。
- AWS Glue 还可以用于清理、验证、格式化和组织数据,以存储到数据湖或数据仓库中。
AWS Glue 的主要组成部分
以下是 AWS Glue 的关键组件:
- 数据目录: 存储元数据和数据结构信息。
- 数据库: 用于访问和创建源数据库和目标数据库。
- 表: 在数据库中创建,用于表示源和目标数据。
- 爬虫和分类器: 爬虫从源检索数据,并使用内置或自定义分类器进行分类,然后在数据目录中创建或使用预定义的元数据表。
- 作业: 执行 ETL 任务的业务逻辑单元,内部使用 Python 和 Scala 语言在 Apache Spark 环境中编写。
- 触发器: 用于按需或在特定时间启动 ETL 作业执行的机制。
- 开发终端节点: 提供一个环境,用于测试、开发和调试 ETL 作业脚本。
AWS Glue 的优势
在您的工作场所或组织内使用 AWS Glue 的好处包括:
- 使用爬网程序自动扫描所有可用数据。
- 处理后的数据可以存储在多个位置,例如 Amazon RDS、Amazon Redshift 和 Amazon S3。
- 作为一种基于云的服务,无需在本地基础设施上投入资金。
- 提供经济高效的无服务器 ETL 解决方案。
- 快速生成 Python/Scala ETL 代码。
AWS Glue 的主要功能
AWS Glue 提供集成数据所需的全部功能,使您能够更快地获取有价值的见解,并在短时间内取得进展。以下是一些您需要了解的关键功能:
- 拖放界面: 作业编辑器允许您通过拖放操作创建 ETL 流程。AWS Glue 会自动生成提取、转换和加载数据所需的代码。
- 自动模式发现: 您可以使用 Glue 服务创建连接到不同数据源的爬虫,用于组织和提取数据信息,然后用于监控 ETL 过程。
- 作业调度: 您可以按需使用 Glue,或者根据预定计划使用。调度程序可用于构建复杂的 ETL 管道,并设置任务之间的依赖关系。
- 代码生成: Glue Elastic Views 允许您轻松创建物化视图,将来自不同数据源的数据进行组合和复制,无需编写任何专有代码。
- 内置机器学习: Glue 包含名为“FindMatches”的内置机器学习功能,可以删除彼此不完全相同的重复记录。
- 开发人员终端节点: 如果您需要积极开发 ETL 代码,Glue 提供开发人员终端节点,允许您修改、调试和测试生成的代码。
- Glue DataBrew: 是一种数据准备工具,可以帮助数据分析师和数据科学家清理和标准化数据,它提供了一个活跃的可视化界面。
AWS Glue 的定价机制
AWS Glue 的收费基于小时计算,对于爬网程序(用于数据发现)和 ETL 作业(用于数据处理和加载)则按秒计费。访问和存储 AWS Glue 数据目录中的元数据需要支付简单的月度费用。
Amazon Glue 的起步价格为 0.44 美元。您可以选择以下四个计划:
- ETL 任务、开发终端节点和其他 ETL 任务的价格为 0.44 美元。
- 爬网程序交互式会话的价格为 0.44 美元。
- DataBrew 作业的起步价格为 0.48 美元。
- 每月存储和请求数据目录的费用为 1.00 美元。
AWS 不提供免费的 Glue 计划。每个 DPU 每小时将花费 0.44 美元。平均而言,这将花费您每天 21 美元。价格可能会因您所在地区而异。
AWS Glue 的设置步骤
数据目录允许您快速查找和搜索多个 AWS 数据集,而无需移动数据。数据编目后,可以立即使用 Amazon Athena 和 Amazon EMR 进行查询和搜索。
参考:https://aws.amazon.com/glue/
- Amazon Redshift、Amazon S3、Amazon RDS 和 Amazon EC2 上的数据库:使用 AWS Glue 数据目录发现您的数据、存储元数据。
- AWS Glue 数据目录:使用数据目录作为元数据的中央存储库来管理数据。
- AWS Glue ETL:读取元数据并将其写入数据目录。
- Amazon Athena 和 Amazon Redshift、Amazon EMR、Amazon ETL:获取用于 ETL、分析等的数据目录。
如何设置 AWS Glue?
首先,登录 AWS 管理控制台并打开 IAM 控制台,点击“创建角色”。在角色类型中,找到 Glue,然后选择权限。
选择 “AWSGlueServiceRole” 以获取 AWS Glue Studio 和 AWS Glue 的通用权限,并选择 AWS 托管策略“AmazonS3FullAccess”以访问 Amazon S3 资源。
输入角色名称。
点击“创建角色”。
创建一个 Amazon S3 存储桶。
在 S3 存储桶内创建一个文件夹。
选择要上传的文件。
最后,上传存储桶中的文件。
接下来,从 AWS 管理控制台打开 AWS Glue 并创建一个数据库。
现在您在 AWS Glue 中有了一个数据库,请创建一个爬网程序。
在数据源中,选择您创建的 S3 存储桶。
接下来,为在开始时创建的 AWS Glue 选择 IAM 角色。
最后,在输出中,选择您创建的 gluedb。
检查所有设置并创建爬虫。
创建爬虫后,选择它并点击“运行”。一段时间后,您的爬虫状态将变为“已准备好”。
通过运行爬虫,数据库将获得一个包含 CSV 文件中所有数据的表。
当您点击“查看数据”时,您将被带到 Amazon Athena(查询编辑器)。执行查询时,您可以看到表格中的数据。
现在,您可以成功地在任何 ETL 作业中使用此 AWS Glue 爬网程序。
什么是 AWS Glue DataBrew?
AWS Glue DataBrew 允许用户在不编写任何代码的情况下标准化和清理数据。与自定义开发的数据准备方法相比,DataBrew 可以将为机器学习和分析准备数据所需的时间减少多达 80%。
它提供了超过 250 种预制数据转换功能,可自动执行数据准备任务,如过滤异常值、更正无效值以及将数据转换为标准格式。
DataBrew 使数据科学家、业务分析师和工程师可以更容易地合作,从原始数据中提取有价值的见解。DataBrew 是一种无服务器服务,因此您无需管理基础设施或创建集群即可探索和转换 TB 级的原始数据。
企业级 DataBrew 功能
可视化数据准备
DataBrew 提供了一种以图形方式呈现数据的方式,这与通常以字母数字形式查看的列式数据库不同。DataBrew 可视化所有加载的数据源,以帮助您了解数据之间的关系和层次结构。
250 多种数据准备自动化
作为工作的一部分,数据科学家通常会执行各种可重复的、独立的工作流程。AWS 已将这些工作流程建模为与语言和数据无关的模块。该库包含了最终用户可以使用的大量操作。
数据沿袭
类似于 IT 网络中用于跟踪客户活动的审计日志,数据沿袭允许您跟踪 AWS DataBrew 中的数据转换活动。此信息包括数据源、应用的转换和数据输出,以及目标位置。
数据映射
DataBrew 允许您在两个数据源中查找匹配的字段。一旦识别出匹配的字段,就可以将其加载到模式中。
AWS Glue DataBrew 的优势
以下是 AWS Glue DataBrew 的功能和优势:
- 降低数据准备的入门门槛
- 自动生成数据配置文件
- 自动执行 250 多个数据准备流程
- 提供智能配方建议
AWS Glue 的替代方案
Airflow
Airflow 属于技术堆栈的“工作流管理器”部分。它是一个开源工具,支持 GitHub 星星、GitHub 分叉和其他功能。Airflow 允许您使用有向无环图(DAG)创建工作流。Airflow 调度程序使用一组工作人员并遵循指定的依赖关系来执行您的任务。
Matillion
Matillion ETL 是一种专门为 Amazon Redshift 和 Google BigQuery 等云数据库平台设计的 ETL/ELT 工具。它拥有基于浏览器的现代用户界面,并提供强大的下推 ETL/ELT 功能。通过快速设置,您可以在几分钟内启动并运行。
Stitch
Stitch 是一种开源 ETL 服务,可连接多个数据源并将数据复制到首选目标位置。它易于使用,无需任何编码知识即可在 Stitch 中移动数据。它拥有友好的图形用户界面,速度也很快。
与其他 ETL 工具不同,Stitch 不允许您选择预先构建的仪表板。您必须将数据集成到您选择作为目标的开放数据仓库中。浏览库存可能比较困难。
Alteryx
Alteryx 是一个分析自动化平台,可协助进行数据收集准备和混合。这些数据可用于加速流程并提供业务洞察力。由于它是一个拖放工具,因此您不需要任何编程知识。Alteryx 是一个向行业专业人士寻求建议和答案的好去处。
结论
AWS Glue 是一种基于云的解决方案,允许您使用 ETL 管道。总而言之,AWS Glue 用户交互过程由三个阶段组成。首先使用数据爬虫创建数据目录。然后,创建 AWS 数据管道所需的 ETL 代码。最后,创建 ETL 计划。希望这篇博文能让您对 Amazon Glue 有一个清晰的了解。
您还可以了解保护 AWS S3 存储的最佳技巧。