Amazon Ion テーブルを作成する
Amazon Ion 形式で格納されたデータから Athena でテーブルを作成するには、CREATE TABLE ステートメントで次のいずれかの方法を使用します。
-
STORED AS IONを指定します。この方法では、Amazon Ion Hive SerDe を明示的に指定する必要はありません。このオプションの方が簡単です。 -
ROW FORMAT SERDE、INPUTFORMAT、およびOUTPUTFORMATの各フィールドで Amazon Ion のクラスパスを指定します。
また、CREATE TABLE AS SELECT (CTAS) ステートメントを使用して、Athena で Amazon Ion テーブルを作成することもできます。詳細については、CTAS と INSERT INTO を使用して Amazon Ion テーブルを作成する を参照してください。
STORED AS ION を指定する
次の例の CREATE TABLE ステートメントでは、LOCATION 句の前で STORED AS
ION を使用し、Amazon Ion 形式でフライトデータに基づいたテーブルを作成しています。LOCATION 句では、Ion 形式の入力ファイルが置かれているバケットまたはフォルダを指定します。指定した場所にあるすべてのファイルをスキャンします。
CREATE EXTERNAL TABLE flights_ion ( yr INT, quarter INT, month INT, dayofmonth INT, dayofweek INT, flightdate STRING, uniquecarrier STRING, airlineid INT, ) STORED AS ION LOCATION 's3://amzn-s3-demo-bucket/'
Amazon Ion クラスパスを指定する
STORED AS ION 構文を使用する代わりに、次のように ROW FORMAT SERDE、INPUTFORMAT、および OUTPUTFORMAT 句に Ion クラスパスの値を明示的に指定することができます。
| パラメータ | Ion クラスパス |
|---|---|
ROW FORMAT SERDE |
'com.amazon.ionhiveserde.IonHiveSerDe' |
STORED AS INPUTFORMAT |
'com.amazon.ionhiveserde.formats.IonInputFormat' |
OUTPUTFORMAT |
'com.amazon.ionhiveserde.formats.IonOutputFormat' |
次の DDL クエリでは、この手法を使用して、前の例と同じ外部テーブルを作成しています。
CREATE EXTERNAL TABLE flights_ion ( yr INT, quarter INT, month INT, dayofmonth INT, dayofweek INT, flightdate STRING, uniquecarrier STRING, airlineid INT, ) ROW FORMAT SERDE 'com.amazon.ionhiveserde.IonHiveSerDe' STORED AS INPUTFORMAT 'com.amazon.ionhiveserde.formats.IonInputFormat' OUTPUTFORMAT 'com.amazon.ionhiveserde.formats.IonOutputFormat' LOCATION 's3://amzn-s3-demo-bucket/'
Athena の CREATE TABLE ステートメントの SerDe プロパティの詳細については、「Amazon Ion SerDe プロパティリファレンス」を参照してください。