

# Athena コンソールで CTAS クエリを作成する
<a name="ctas-console"></a>

Athena コンソールでは、別のクエリから CTAS クエリを作成できます。<a name="ctas-create-from-query"></a>

**別のクエリから CTAS クエリを作成する**

1. Athena コンソールのクエリエディターでクエリを実行します。

1. クエリエディタの最下部で **[Create]** (作成) オプションを選択し、次に **[Table from query]** (クエリからのテーブル) を選択します。

1. 次のように、**[Create table as select]** (選択したようにテーブルを作成) フォームの各フィールドに入力します。

   1. **[Table name]** (テーブル名) に新しいテーブルの名前を入力します。小文字とアンダースコアのみを使用します (例: `my_select_query_parquet`)。

   1. **[Database configuration]** (データベース設定) のオプションで、既存のデータベースを選択するか、データベースを作成するかを選択します。

   1. (オプション) **[Result configuration]** (結果設定) の **[Location of CTAS query results]** (CTAS クエリ結果の場所) で、ワークグループのクエリ結果の場所の設定がこのオプションを上書きしない場合は、次のいずれかを実行します。
      + 検索ボックスに既存の S3 の場所へのパスを入力するか、**[Browse S3]** (S3 の参照) を選択してリストから場所を選択します。
      + **[View]** (表示) を選択して Amazon S3 コンソールの **[Buckets]** (バケット) ページを開き、既存のバケットに関する詳細情報を表示したり、独自の設定でバケットを選択または作成したりできます。

      データの出力先となる Amazon S3 内の空の場所を指定します。データが既に存在する場所を指定すると、クエリがエラーを起こし失敗します。

      ワークグループのクエリ結果の場所の設定によってこの場所の設定が上書きされる場合、Athena で `s3://amzn-s3-demo-bucket/tables/query_id/` の場所にテーブルが作成されます。

   1. **[Data format]** (データ形式) で、データの形式を指定します。
      + **テーブルタイプ** – Athena のデフォルトのテーブルタイプは Apache Hive です。
      + **ファイル形式** – CSV、TSV、JSON、Parquet、ORC などのオプションから選択します。Parquet 形式と ORC 形式の詳細については、「[列指向ストレージ形式を使用する](columnar-storage.md)」を参照してください。
      + **書き込み圧縮** – (オプション) 圧縮形式を選択します。Athena は、複数の圧縮形式を使用するテーブルからの読み込みなど、データの読み書きのためのさまざまな圧縮形式をサポートしています。例えば、一部の Parquet ファイルが Snappy で圧縮されており、他の Parquet ファイルは GZIP で圧縮されているといった、Parquet ファイル形式を使用するテーブル内のデータも、Athena は正常に読み込むことができます。同様なことが ORC、テキストファイル、および JSON のストレージ形式に対しても当てはまります。詳細については、「[Athena で圧縮を使用する](compression-formats.md)」を参照してください。
      + **パーティション** – (オプション) パーティションする列を選択します。データをパーティションすると、各クエリによってスキャンされるデータの量が制限されるため、パフォーマンスが向上し、コストが削減されます。任意のキーでデータをパーティションに分割することができます。詳細については、「[データのパーティション化](partitions.md)」を参照してください。
      + **バケット** – (オプション) バケット化する列を選択します。バケットとは、特定の列に基づいてデータを 1 つのパーティションにまとめる手法です。これらの列は*バケットキー*と呼ばれます。関連データを 1 つのバケット (パーティション内のファイル) にグループ化することで、Athena でスキャンされるデータ量を大幅に削減できるため、クエリのパフォーマンスが向上し、コストが削減されます。詳細については、「[パーティショニングとバケット化を使用する](ctas-partitioning-and-bucketing.md)」を参照してください。

   1. **[Preview table query]** (テーブルクエリのプレビュー) でクエリを確認します。クエリ構文については、「[CREATE TABLE AS](create-table-as.md)」を参照してください。

   1. **[テーブルの作成]** を選択します。

Athena コンソールには、CTAS クエリの作成にも使用できる SQL テンプレートがあります。<a name="ctas-create-new"></a>

**SQL テンプレートを使用して CTAS クエリを作成するには**

クエリエディタで CTAS クエリを作成するには、`CREATE TABLE AS SELECT` テンプレートを使用します。

1. Athena コンソールで、**[Tables and views]** (テーブルとビュー) の横にある **[Create table]** (テーブルの作成) をクリックし、次に **[CREATE TABLE AS SELECT]** をクリックします。これにより、プレースホルダに値が設定された CTAS クエリが、クエリエディタに入力されます。

1. 必要に応じて、クエリエディタでクエリを編集します。クエリ構文については、「[CREATE TABLE AS](create-table-as.md)」を参照してください。

1. **[Run]** (実行) を選択します。

例については「[CTAS クエリの例](ctas-examples.md)」を参照してください。

