Amazon Glue 中的蓝图概览
注意
蓝图功能目前在 Amazon Glue 控制台的以下区域不可用:亚太地区(雅加达)和中东(阿联酋)。
Amazon Glue 蓝图提供了一种创建和共享 Amazon Glue 工作流的方法。当存在可用于类似用例的复杂 ETL 流程时,您可以创建单个蓝图,而不是为每个使用案例创建一个 Amazon Glue 工作流。
蓝图指定要包含在工作流中的任务和爬网程序,并指定工作流用户在运行蓝图创建工作流时提供的参数。参数的使用使单个蓝图能够为各种类似的用例生成工作流。有关工作流的更多信息,请参阅Amazon Glue 中的工作流概述。
以下是蓝图的示例用例:
-
您想要对现有数据集进行分区。蓝图的输入参数包括 Amazon Simple Storage Service(Amazon S3)源和目标路径以及分区列列表。
-
您希望将 Amazon DynamoDB 表快照到 SQL 数据存储(如 Amazon Redshift)中。蓝图的输入参数包括 DynamoDB 表名称和 Amazon Glue 连接,它指定 Amazon Redshift 集群和目标数据库。
-
您想将多个 Amazon S3 路径中的 CSV 数据转换为 Parquet。您希望 Amazon Glue 工作流为每个路径包含一个单独的爬网程序和任务。输入参数是 Amazon Glue 数据目录中的目标数据库和以逗号分隔的 Amazon S3 路径列表。请注意,在这种情况下,工作流创建的爬网程序和任务的数量是可变的。
蓝图组件
蓝图是包含以下组件的 ZIP 格式归档:
-
Python 布局生成器脚本
包含指定工作流布局的函数 – 为工作流创建的爬网程序和任务、任务和爬网程序属性以及任务和爬网程序之间的依赖关系。该函数接受蓝图参数并返回 Amazon Glue 用于生成工作流的工作流结构(JSON 对象)。因为您使用 Python 脚本来生成工作流,因此您可以添加适合您的用例的逻辑。
-
一个配置文件
指定生成工作流布局的 Python 函数的完全限定名称。还指定脚本使用的所有蓝图参数的名称、数据类型和其他属性。
-
(可选)ETL 脚本和支持文件
作为高级用例,您可以参数化任务使用的 ETL 脚本的位置。您可以在 ZIP 格式归档中包含任务脚本文件,并为要复制脚本的 Amazon S3 位置指定蓝图参数。布局生成器脚本可以将 ETL 脚本复制到指定位置,并将该位置指定为任务脚本位置属性。您还可以包含任何库或其他支持文件,前提是您的脚本处理它们。

蓝图运行
从蓝图创建工作流时,Amazon Glue 会运行蓝图,这会开启一个异步过程来创建工作流以及工作流封装的任务、爬网程序和触发器。Amazon Glue 使用蓝图运行来编排工作流及其组件的创建。您可以通过查看蓝图运行状态来查看创建过程的状态。蓝图运行还存储您为蓝图参数提供的值。

您可以使用 Amazon Glue 控制台或 Amazon Command Line Interface(Amazon CLI)查看蓝图运行。查看工作流或对工作流进行问题排查时,您始终可以返回蓝图运行以查看用于创建工作流的蓝图参数值。
蓝图的生命周期
蓝图经过开发、测试、向 Amazon Glue 注册并运行以创建工作流。蓝图生命周期中通常涉及三个角色。
角色 | 任务 |
---|---|
Amazon Glue 开发人员 |
|
Amazon Glue 管理员 |
|
数据分析人员 |
|