

# ETL ジョブのテーブルを作成する
<a name="schema-classifier"></a>

Athena を使用して、AWS Glue が ETL ジョブに使用できるテーブルを作成できます。AWS Glue ジョブは ETL オペレーションを実行します。AWS Glue ジョブは、ソースからデータを抽出し、そのデータを変換してターゲット内にロードするためのスクリプトを実行します。詳細については、[AWS デベロッパーガイド](https://docs.aws.amazon.com/glue/latest/dg/author-job-glue.html)の「*AWS Glue Glue でのジョブの作成*」を参照してください。

## AWS Glue ETL ジョブ用の Athena テーブルの作成
<a name="schema-etl-tables"></a>

Athena 内で作成するテーブルには、データの形式を識別する `classification` と呼ばれるテーブルプロパティが追加されている必要があります。これにより、AWS 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` テーブルプロパティは、テーブルの作成時に追加しなかった場合、AWS Glue コンソールを使用して追加できます。

**AWS Glue コンソールを使用して分類テーブルプロパティを追加するには**

1. AWS マネジメントコンソール にサインインし、AWS Glue コンソール ([https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)) を開きます。

1. コンソールのナビゲーションペインで、[**Tables**] (テーブル) を選択します。

1. 編集するテーブルのリンクを選択した後、**[Action]** (アクション)、**[Edit table]** (テーブルの編集) の順に選択します。

1. [**Table properties**] (テーブルプロパティ) セクションまで、下にスクロールします。

1. **[Add]** (追加) を選択します。

1. **[Key]** (キー) に「**classification**」と入力します。

1. [**Value**] (値) に、データタイプを入力します（例:**json**)。

1. **[保存]** を選択します。

   [**Table details**] (テーブルの詳細) セクションで、入力したデータタイプがテーブルの [**Classification**] (分類) フィールドに表示されます。

詳細については、「AWS Glue デベロッパーガイド」の「[テーブルの使用](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html)」を参照してください。

## ETL ジョブを使用してクエリパフォーマンスを最適化する
<a name="schema-etl-performance"></a>

AWS Glue ジョブは、Athena でのクエリパフォーマンスが最適化されるような形式にデータを変換するのに役立ちます。データの形式は、Athena でのクエリパフォーマンスとクエリコストに大きな影響を及ぼします。

AWS Glue は、Parquet および ORC データ形式への書き込みをサポートしています。この機能を使用して、Athena で利用するためにデータを変換できます。Parquet と ORC の使用、および Athena でパフォーマンスを改善する他の方法の詳細については、「[Amazon Athena のパフォーマンスチューニング Tips トップ 10](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/)」を参照してください。

**注記**  
Athena が AWS Glue ETL ジョブによって生成された `SMALLINT` および `TINYINT` データ型を読み取れなくなる可能性を低くするには、データを ORC に変換する ETL ジョブを作成する際に `SMALLINT` と `TINYINT` を `INT` に変換します。

## ETL のために AWS Glue ジョブを自動化する
<a name="schema-etl-automate"></a>

AWS Glue ETL ジョブは、トリガーに基づいて自動的に実行するように設定できます。この機能は、AWS 外からのデータが、Athena でのクエリのために最適とは言えない形式で Amazon S3 バケットにプッシュされている場合に適しています。詳細については、「AWS Glue デベロッパーガイド」の「[AWS Glue ジョブのトリガー](https://docs.aws.amazon.com/glue/latest/dg/trigger-job.html)」を参照してください。