为 ETL 作业创建表 - Amazon Athena

为 ETL 作业创建表

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

为 AWS Glue ETL 作业创建 Athena 表

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

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

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

使用 AWS Glue 控制台添加分类表属性
  1. 登录 AWS Management Console,然后打开 AWS 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(分类)字段中。

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

使用 ETL 作业优化查询性能

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

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

注意

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

为 ETL 自动执行 AWS Glue 作业

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