AWS Glue 概念 - AWS Glue
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

AWS Glue 概念

下图表明了 AWS Glue 环境的架构。


      在 AWS Glue 中填充您的 Data Catalog 和处理 ETL 数据流的基本概念。

您可以在 AWS Glue 中定义作业来完成从数据源提取、转换和加载 (ETL) 数据到数据目标所需的工作。您通常会执行以下操作:

  • 对于数据存储源,您定义爬网程序 以使用元数据表定义填充 AWS Glue 数据目录。您将爬网程序指向数据存储,并且爬网程序在 Data Catalog 中创建表定义。对于流式处理源,您可以手动定义 Data Catalog 表并指定数据流属性。

    除了表定义,AWS Glue 数据目录 还包含定义其他 ETL 作业所需的其他元数据。在定义作业以转换数据时,您可以使用此元数据。

  • AWS Glue 可以生成用于转换数据的脚本。或者,您可以在 AWS Glue 控制台或 API 中提供脚本。

  • 您可以按需运行作业,也可以将其设置为在指定的触发器发生时启动。触发器可以是基于时间的计划或事件。

    当您的作业运行时,脚本从数据源中提取数据,转换数据,并将其加载到数据目标。该脚本在 AWS Glue 中的 Apache Spark 环境内运行。

重要

AWS Glue 中的表和数据库是 AWS Glue 数据目录 中的对象。它们包含元数据;它们不包含数据存储中的数据。

基于文本的数据(如 CSV)必须采用 UTF-8 进行编码,以便 AWS Glue 成功处理该数据。有关更多信息,请参阅 Wikipedia 中的 UTF-8

AWS Glue 术语

AWS Glue 依赖于多个组件之间的交互来创建和管理提取、传输和加载 (ETL) 工作流。

AWS Glue 数据目录

AWS Glue 中的持久元数据存储。它包含表定义、作业定义以及其他用于管理您的 AWS Glue 环境的控制信息。每个 AWS 账户在每个 AWS 区域有一个 AWS Glue 数据目录。

分类器

确定您的数据的架构。AWS Glue 提供常见文件类型的分类器,如 CSV、JSON、Avro、XML 等。此外,它还使用 JDBC 连接为常用关系数据库管理系统提供分类器。您可以编写自己的分类器,具体做法是使用 grok 模式或在 XML 文档中指定行标记。

Connection

Data Catalog 对象,其中包含了连接到特定数据存储所需的属性。

爬网程序

该程序连接到数据存储(源或目标),通过分类器的优先级列表不断更新以确定您的数据架构,然后在 AWS Glue 数据目录 中创建元数据表。

Database

一组关联的 Data Catalog 表定义,这些定义组织到一个逻辑组内。

数据存储、数据源、数据目标

数据存储 是用于持久性存储数据的存储库。示例包括 Amazon S3 存储桶和关系数据库。数据源 是用作进程或转换输入的数据存储。数据目标 是进程或转换写入到的数据存储。

开发终端节点

一种可以用来开发和测试 AWS Glue ETL 脚本的环境。

动态帧

支持嵌套数据(如结构和数组)的分布式表。每条记录都是自描述的,旨在实现半结构化数据的架构灵活性。每条记录都包含数据以及描述该数据的架构。您可以在 ETL 脚本中同时使用动态帧和 Apache Spark DataFrame,并在它们之间进行转换。动态帧为数据清理和 ETL 提供了一组高级转换。

作业

执行 ETL 工作所需的业务逻辑。它由转换脚本、数据源和数据目标组成。作业运行通过可由事件计划或触发的触发器启动。

笔记本服务器

可用于运行 PySpark 语句的基于 Web 的环境。PySpark 是用于 ETL 编程的 Python 方言。有关更多信息,请参阅 Apache Zeppelin。您可以在开发终端节点上设置笔记本服务器,以运行具有 AWS Glue 扩展的 PySpark 语句。

脚本

从源中提取数据、转换数据并将其加载到目标中的代码。AWS Glue 生成 PySpark 或 Scala 脚本。

表示您的数据的元数据定义。无论您的数据存储在 Amazon Simple Storage Service (Amazon S3) 文件中、Amazon Relational Database Service (Amazon RDS) 表中或另一组数据中,表都定义您的数据的架构。AWS Glue 数据目录 中的表包含列的名称、数据类型定义、分区信息以及有关基本数据集的其他元数据。数据的架构在您的 AWS Glue 表定义中表示。实际数据保留在原始数据存储中,无论是在文件中还是关系数据库表中。AWS Glue 在 AWS Glue 数据目录 中编录您的文件和关系数据库表。在您创建 ETL 作业时,它们用作源和目标。

转换

用于将数据处理为其他格式的代码逻辑。

触发器

启动 ETL 作业。可以根据计划时间或事件来定义触发器。