

# Athena 生成パスエクストラクターを使用する
<a name="ion-serde-generated-path-extractors"></a>

デフォルトでは、Athena は、Hive の列名と一致する最上位レベルの Amazon Ion 値を検索し、それらの一致する値に基づいてランタイムにパスエクストラクタを作成します。Amazon Ion のデータ形式が Hive テーブルスキーマと一致する場合、Athena は動的にエクストラクタを生成します。したがって、それ以上パスエクストラクタを追加する必要はありません。このデフォルトのパスエクストラクタは、テーブルメタデータには保存されません。

次の例は、Athena が列名に基づいてエクストラクタを生成する方法を示しています。

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

-- Example DDL
CREATE EXTERNAL TABLE example_schema2 (
    identification MAP<STRING, STRING>,
    alias STRING
)
STORED AS ION
LOCATION 's3://amzn-s3-demo-bucket/path_extraction1/'
```

次に示すのは、Athena によって生成されるエクストラクタの例です。最初のエクストラクタで `identification` フィールドを `identification` 列に抽出し、次のエクストラクタで `alias` フィールドを `alias` 列に抽出しています。

```
'ion.identification.path_extractor' = '(identification)'
'ion.alias.path_extractor' = '(alias)'
```

次の例は、抽出されたテーブルを示しています。

```
|                  identification                    |  alias   |
|----------------------------------------------------|----------|
|{["name", "driver_license"],["John Smith", "XXXX"]} | "Johnny" |
```