Amazon Athena
ユーザーガイド

CREATE TABLE AS

SELECT クエリの結果が入力された新しいテーブルを作成します。空のテーブルを作成するには CREATE TABLE を使用します。

概要

CREATE TABLE table_name [ WITH ( property_name = expression [, ...] ) ] AS query [ WITH [ NO ] DATA ]

各パラメータの意味は次のとおりです。

WITH ( property_name = expression [, ...] )

オプションの CTAS テーブルのプロパティのリスト。一部のプロパティはデータストレージ形式に固有です。「CTAS テーブルのプロパティ」を参照してください。

query

新しいテーブルの作成に使用する SELECT クエリ。

重要

パーティションがあるクエリを作成する予定がある場合は、SELECT ステートメントで列のリストの最後に、パーティション分割された列の名前を指定します。

[ WITH [ NO ] DATA ]

WITH NO DATA が指定されている場合、元のテーブルと同じスキーマを持つ新しい空のテーブルが作成されます。

CTAS テーブルのプロパティ

Athena の各 CTAS テーブルには、WITH (property_name = expression [, ...] ) を使用して指定した、オプションの CTAS テーブルのプロパティがあります。これらのパラメータの使用方法については、「CTAS クエリの例」を参照してください。

WITH (property_name = expression [, ...], )
external_location = [location]

Athena が CTAS クエリを保存する Amazon S3 内の場所 (例: WITH (external_location ='s3://my-bucket/tables/parquet_table/'))。このプロパティはオプションです。場所を指定せず、ワークグループがクライアント側の設定を上書きしない場合、Athena は CTAS クエリ結果を external_location = 's3://aws-athena-query-results-<account>-<region>/<query-name-or-unsaved>/<year>/<month>/<date>/<query-id>/' に保存し、再度同じパスは使用しません。手動で場所を指定する場合は、その Amazon S3 の場所にデータがないことを確認します。Athena がデータを削除することはありません。再度同じ場所を使用する場合は、手動でデータをクリーンアップします。そうしないと、CTAS クエリは失敗します。

クエリが実行されるワークグループが強制されたクエリ結果の場所で設定されている場合、CTAS クエリの external_location を指定しないでください。Athena でエラーが発生し、この場合 external_location を指定したクエリは失敗します。たとえば、ワークグループに独自の場所を使用するように強制すると、このクエリは失敗します。CREATE TABLE <DB>.<TABLE1> WITH (format='Parquet', external_location='s3://my_test/test/') AS SELECT * FROM <DB>.<TABLE2> LIMIT 10;

ワークグループの指定された結果の場所を取得するには、ワークグループの詳細を表示します。

format = [format]

CTAS クエリ結果のデータ形式 (例: ORCPARQUETAVROJSON、または TEXTFILE)。たとえば、WITH (format = 'PARQUET') と指定します。省略した場合は、デフォルトで PARQUET が使用されます。このパラメータの名前である format は小文字で記述する必要があります。そうしないと、CTAS クエリは失敗します。

partitioned_by = ( [col_name,…])

オプション。CTAS テーブルをパーティション分割する列の配列リスト。パーティション分割された列の名前は、SELECT ステートメントで列のリストの最後に記述します。

bucketed_by( [bucket_name,…])

データの配置先となるバケットの配列リスト。省略した場合、Athena はこのクエリでデータをバケットに配置しません。

bucket_count = [int]

データの配置先となるバケットの数。省略した場合、Athena はデータをバケットに配置しません。

orc_compression = [format]

ORC データに対して使用する圧縮タイプ。たとえば、WITH (orc_compression = 'ZLIB') と指定します。省略した場合、ORC、および CTAS でサポートされている他のデータストレージ形式に対してはデフォルトで GZIP 圧縮が使用されます。

parquet_compression = [format]

Parquet データに対して使用する圧縮タイプ。たとえば、WITH (parquet_compression = 'SNAPPY') と指定します。省略した場合、Parquet、および CTAS でサポートされている他のデータストレージ形式に対してはデフォルトで GZIP 圧縮が使用されます。

field_delimiter = [delimiter]

オプションであり、テキストベースのデータストレージ形式に固有のパラメータ。CSV、TSV、およびテキストファイルのフィールド区切り文字。たとえば、WITH (field_delimiter = ',') と指定します。フィールド区切り文字を指定しなかった場合、デフォルトで \001 が使用されます。

このページの内容: