

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

# 路徑擷取器範例
<a name="ion-serde-examples"></a>

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

## 扁平化和重新命名欄位
<a name="ion-serde-flattening-and-renaming-fields"></a>

下列範例說明了一組展平和重新命名欄位的搜尋路徑。此範例使用搜尋路徑來執行下列動作：
+ 將 `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"    |
```

如需搜尋路徑和其他搜尋路徑範例的詳細資訊，請參閱 GitHub 上的 [Ion Java Path Extraction](https://github.com/amzn/ion-java-path-extraction) (Ion Java 路徑擷取) 頁面。

## 將航班資料擷取為文字格式
<a name="ion-serde-extracting-flight-data-to-text-format"></a>

以下 `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/'
```