路徑提取器示例 - Amazon Athena

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

路徑提取器示例

以下路徑擷取器範例顯示如何平面化和重新命名欄位,或將資料擷取為 Amazon Ion 文字。

平面化和重新命名欄位

下列範例說明了一組展平和重新命名欄位的搜尋路徑。此範例使用搜尋路徑來執行下列動作:

  • nickname 資料欄映射至 alias 欄位

  • name 資料欄映射至位於 identification 結構中的 name 子欄位。

以下是 Amazon Ion 文件範例。

-- Example Amazon Ion Document { identification: { name: "John Smith", driver_license: "XXXX" }, alias: "Johnny" }

以下是定義路徑擷取器的範例 CREATE TABLE 陳述式。

-- Example DDL Query CREATE EXTERNAL TABLE example_schema2 ( name STRING, nickname STRING ) ROW FORMAT SERDE 'com.amazon.ionhiveserde.IonHiveSerDe' WITH SERDEPROPERTIES ( 'ion.nickname.path_extractor' = '(alias)', 'ion.name.path_extractor' = '(identification name)' ) STORED AS ION LOCATION 's3://amzn-s3-demo-bucket/path_extraction2/'

下列範例說明了擷取的資料。

-- Extracted Table | name | nickname | |--------------|--------------| | "John Smith" | "Johnny" |

如需有關搜尋路徑和其他搜尋路徑範例的詳細資訊,請參閱上的 Ion Java 路徑擷取頁面 GitHub。

將飛行數據提取為文本格式

以下 CREATE TABLE 查詢範例使用 WITH SERDEPROPERTIES 來新增路徑擷取器,以擷取航班資料並將輸出編碼指定為 Amazon Ion 文字。此範例使用 STORED AS ION 語法。

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' WITH SERDEPROPERTIES ( 'ion.encoding' = 'TEXT', 'ion.yr.path_extractor'='(year)', 'ion.quarter.path_extractor'='(results quarter)', 'ion.month.path_extractor'='(date month)') STORED AS ION LOCATION 's3://amzn-s3-demo-bucket/'