創建 Amazon 離子表 - Amazon Athena

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

創建 Amazon 離子表

若要從以 Amazon Ion 格式儲存的資料在 Athena 中建立資料表,您可以在CREATETABLE陳述式中使用下列其中一種技巧:

  • 指定 STORED AS ION。在這種用法中,您不必 SerDe 明確指定 Amazon 離子蜂巢。這種選擇是更為直接的選項。

  • ROW FORMAT SERDEINPUTFORMATOUTPUTFORMAT 欄位中指定 Amazon Ion 類別路徑。

您還可以使用CREATE TABLE AS SELECT(CTAS)語句在 Athena 創建 Amazon 離子表。如需相關資訊,請參閱 使用CTAS和INSERTINTO創建 Amazon 離子表

指定STORED為 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 離子類路徑

您可以明確指定 ROW FORMAT SERDEINPUTFORMATOUTPUTFORMAT 子句的 Ion 類別路徑值,但不要使用 STORED AS 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 離子 SerDe 屬性參考