

# 경로 추출기 예제
<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/'
```