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 プロパティリファレンス」を参照してください。