

# 为 ETL 作业创建表
<a name="schema-classifier"></a>

可以使用 Athena 来创建 Amazon Glue 可用于 ETL 作业的表。Amazon Glue 作业执行 ETL 操作。Amazon Glue 任务运行一个从源中提取数据、转换数据并将其加载到目标中的脚本。有关更多信息，请参阅《Amazon Glue 开发人员指南》中的[在 Amazon Glue 中编写任务](https://docs.amazonaws.cn/glue/latest/dg/author-job-glue.html)。

## 为 Amazon Glue ETL 作业创建 Athena 表
<a name="schema-etl-tables"></a>

您在 Athena 中创建的表必须添加有名为 `classification` 的表属性，该属性标识数据的格式。这使 Amazon Glue 能够将这些表用于 ETL 任务。分类值可以是 `avro`、`csv`、`json`、`orc`、`parquet` 或 `xml`。下面是 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 管理控制台，然后打开 Amazon Glue 控制台，网址为：[https://console.aws.amazon.com/glue/](https://console.amazonaws.cn/glue/)。

1. 在控制台导航窗格中。选择 **Tables**（表）。

1. 选择您要编辑的表的链接，然后依次选择 **Action**（操作）、**Edit table**（编辑表）。

1. 向下滚动到 **Table properties**（表属性）部分。

1. 选择**添加**。

1. 对于**键**，输入 **classification**。

1. 对于 **Value**（值），输入数据类型（例如 **json**)。

1. 选择**保存**。

   在 **Table details**（表详细信息）部分中，您输入的数据类型显示在表的 **Classification**（分类）字段中。

有关更多信息，请参阅《Amazon Glue 开发人员指南**》中的[使用表](https://docs.amazonaws.cn/glue/latest/dg/console-tables.html)。

## 使用 ETL 作业优化查询性能
<a name="schema-etl-performance"></a>

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

Amazon Glue 支持写入 Parquet 和 ORC 数据格式。可以使用此功能来转换数据以在 Athena 中使用。有关使用 Parquet 和 ORC 以及提高 Athena 性能的其他方法的更多信息，请参阅 [Top 10 performance tuning tips for Amazon Athena](https://www.amazonaws.cn/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/)。

**注意**  
要减少 Athena 无法读取 Amazon Glue ETL 作业生成的 `SMALLINT` 和 `TINYINT` 数据类型的可能性，请在创建将数据转换为 ORC 的 ETL 作业时，将 `SMALLINT` 和 `TINYINT` 转换为 `INT`。

## 为 ETL 自动执行 Amazon Glue 作业
<a name="schema-etl-automate"></a>

您可以将 Amazon Glue ETL 任务配置为基于触发器自动运行。当来自 Amazon 外部的数据被以次优格式推送到 Amazon S3 存储桶以便在 Athena 中查询时，此功能非常适用。有关更多信息，请参阅《Amazon Glue 开发人员指南**》中的[触发 Amazon Glue 任务](https://docs.amazonaws.cn/glue/latest/dg/trigger-job.html)。