创建 ETL 作业 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

创建 ETL 作业

Amazon Glue 任务执行 ETL 操作。Amazon Glue 任务运行一个从源中提取数据、转换数据并将其加载到目标中的脚本。有关更多信息,请参阅《Amazon Glue 开发人员指南》中的在 Amazon Glue 中编写任务。可以使用 Athena 来创建 Amazon Glue 可用于 ETL 作业的表。

为 Amazon Glue ETL 作业创建 Athena 表

您在 Athena 中创建的表必须添加有名为 classification 的表属性,该属性标识数据的格式。这使 Amazon Glue 能够将这些表用于 ETL 任务。分类值可以是 avrocsvjsonorcparquetxml。下面是 Athena 中的示例 CREATE TABLE 语句:

CREATE EXTERNAL TABLE sampleTable ( column1 INT, column2 INT ) STORED AS PARQUET TBLPROPERTIES ( 'classification'='parquet')

如果在创建表时未添加 classification 表属性,则可以使用 Amazon Glue 控制台添加它。

使用 Amazon Glue 控制台添加分类表属性
  1. 登录 Amazon Web Services Management Console,然后打开 Amazon Glue 控制台,网址为:https://console.aws.amazon.com/glue/

  2. 在控制台导航窗格中。选择 Tables(表)。

  3. 选择您要编辑的表的链接,然后依次选择 Action(操作)、Edit table(编辑表)。

  4. 向下滚动到 Table properties(表属性)部分。

  5. 选择添加

  6. 对于,输入 classification

  7. 对于 Value(值),输入数据类型(例如 json)。

  8. 选择保存

    Table details(表详细信息)部分中,您输入的数据类型显示在表的 Classification(分类)字段中。

有关更多信息,请参阅《Amazon Glue 开发人员指南》中的使用表

使用 ETL 作业优化查询性能

Amazon Glue 任务可帮助您将数据转换为一种可优化 Athena 中的查询性能的格式。数据格式会极大影响 Athena 中的查询性能和查询成本。

Amazon Glue 支持写入 Parquet 和 ORC 数据格式。可以使用此功能来转换数据以在 Athena 中使用。有关使用 Parquet 和 ORC 以及提高 Athena 性能的其他方法的更多信息,请参阅 Top 10 performance tuning tips for Amazon Athena

注意

要减少 Athena 无法读取 Amazon Glue ETL 作业生成的 SMALLINTTINYINT 数据类型的可能性,请在创建将数据转换为 ORC 的 ETL 作业时,将 SMALLINTTINYINT 转换为 INT

为 ETL 自动执行 Amazon Glue 作业

您可以将 Amazon Glue ETL 任务配置为基于触发器自动运行。当来自 Amazon 外部的数据被以次优格式推送到 Amazon S3 存储桶以便在 Athena 中查询时,此功能非常适用。有关更多信息,请参阅《Amazon Glue 开发人员指南》中的触发 Amazon Glue 任务