

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Referensi SerDe properti Amazon Ion
<a name="ion-serde-using-ion-serde-properties"></a>

Topik ini berisi informasi tentang SerDe properti untuk `CREATE TABLE` pernyataan di Athena. Untuk informasi selengkapnya dan contoh penggunaan SerDe properti Amazon Ion, lihat [SerDe properti](https://github.com/amzn/ion-hive-serde/blob/master/docs/serde-properties.md) di SerDe dokumentasi Amazon Ion Hive di [GitHub](https://github.com/amzn/ion-hive-serde/tree/master/docs).

## Cara menentukan SerDe properti Amazon Ion
<a name="ion-serde-specifying-ion-serde-properties"></a>

Untuk menentukan properti untuk Amazon Ion Hive SerDe dalam `CREATE TABLE` pernyataan Anda, gunakan `WITH SERDEPROPERTIES` klausa. Karena `WITH SERDEPROPERTIES` merupakan subfield dari `ROW FORMAT SERDE` klausa, Anda harus menentukan `ROW FORMAT SERDE` dan jalur SerDe kelas Amazon Ion Hive terlebih dahulu, seperti yang ditunjukkan sintaks berikut.

```
...
ROW FORMAT SERDE
 'com.amazon.ionhiveserde.IonHiveSerDe'
WITH SERDEPROPERTIES (
 'property' = 'value',
 'property' = 'value',
...
)
```

Perhatikan bahwa meskipun `ROW FORMAT SERDE` klausa diperlukan jika Anda ingin menggunakan`WITH SERDEPROPERTIES`, Anda dapat menggunakan salah satu `STORED AS ION` atau yang lebih panjang `INPUTFORMAT` dan `OUTPUTFORMAT` sintaks untuk menentukan format Amazon Ion.

## SerDe Properti Amazon Ion
<a name="ion-serde-ion-serde-properties"></a>

Berikut ini adalah SerDe properti Amazon Ion yang dapat digunakan dalam `CREATE TABLE` pernyataan di Athena.

**ion.pengkodean**  
Opsional  
Default: `BINARY`  
Nilai:`BINARY`, `TEXT`  
Properti ini menyatakan apakah nilai baru yang ditambahkan diserialisasikan sebagai [biner Amazon Ion](https://amzn.github.io/ion-docs/docs/binary.html) atau format teks Amazon Ion.  
Contoh SerDe properti berikut menentukan format teks Amazon Ion.  

```
'ion.encoding' = 'TEXT'
```

**ion.fail\$1on\$1overflow**  
Opsional  
Default: `true`  
Nilai:`true`, `false`  
Amazon Ion memungkinkan tipe numerik yang besar secara sewenang-wenang sementara Hive tidak. Secara default, SerDe gagal jika nilai Amazon Ion tidak sesuai dengan kolom Hive, tetapi Anda dapat menggunakan opsi `fail_on_overflow` konfigurasi untuk membiarkan nilai meluap alih-alih gagal.  
Properti ini dapat diatur pada tingkat tabel atau kolom. Untuk menentukannya di tingkat tabel, tentukan `ion.fail_on_overflow` seperti pada contoh berikut. Ini menetapkan perilaku default untuk semua kolom.  

```
'ion.fail_on_overflow' = 'true'
```
Untuk mengontrol kolom tertentu, tentukan nama kolom antara `ion` dan`fail_on_overflow`, dibatasi oleh periode, seperti pada contoh berikut.  

```
'ion.<column>.fail_on_overflow' = 'false'
```

**ion.path\$1extractor.case\$1sensitive**  
Opsional  
Default: `false`  
Nilai:`true`, `false`  
Menentukan apakah akan memperlakukan nama bidang Amazon Ion sebagai peka huruf besar/kecil. Kapan`false`, kasus SerDe mengabaikan penguraian nama bidang Amazon Ion.  
Misalnya, Anda memiliki skema tabel Hive yang mendefinisikan bidang `alias` dalam huruf kecil dan dokumen Amazon Ion dengan `alias` bidang dan `ALIAS` bidang, seperti pada contoh berikut.  

```
-- Hive Table Schema
alias: STRING

-- Amazon Ion Document
{ 'ALIAS': 'value1'} 
{ 'alias': 'value2'}
```
Contoh berikut menunjukkan SerDe properti dan tabel yang diekstraksi yang dihasilkan saat sensitivitas huruf besar diatur ke`false`:  

```
-- Serde properties
'ion.alias.path_extractor' = '(alias)'
'ion.path_extractor.case_sensitive' = 'false'

--Extracted Table
| alias    |
|----------|
| "value1" |
| "value2" |
```
Contoh berikut menunjukkan SerDe properti dan tabel yang diekstraksi yang dihasilkan saat sensitivitas huruf besar diatur ke`true`:  

```
-- Serde properties
'ion.alias.path_extractor' = '(alias)'
'ion.path_extractor.case_sensitive' = 'true'

--Extracted Table
| alias    |
|----------|
| "value2" |
```
Dalam kasus kedua, `value1` untuk `ALIAS` bidang diabaikan ketika sensitivitas kasus disetel ke `true` dan ekstraktor jalur ditentukan sebagai`alias`.

**ion. *<column>*.path\$1extractor**  
Opsional  
Default: NA  
Nilai: String dengan jalur pencarian  
Membuat ekstraktor jalur dengan jalur pencarian yang ditentukan untuk kolom yang diberikan. Ekstraktor jalur memetakan bidang Amazon Ion ke kolom Hive. Jika tidak ada ekstraktor jalur yang ditentukan, Athena secara dinamis membuat ekstraktor jalur pada waktu berjalan berdasarkan nama kolom.  
Contoh berikut path extractor memetakan `example_ion_field` ke. `example_hive_column`  

```
'ion.example_hive_column.path_extractor' = '(example_ion_field)'
```
Untuk informasi selengkapnya tentang ekstraktor jalur dan jalur penelusuran, lihat[Gunakan ekstraktor jalur](ion-serde-using-path-extractors.md).

**ion.timestamp.serialization\$1offset**  
Opsional  
Default: `'Z'`  
Nilai:`OFFSET`, di mana `OFFSET ` direpresentasikan sebagai`<signal>hh:mm`. Contoh nilai:`01:00`,, `+01:00``-09:30`, `Z` (UTC, sama dengan 00:00)  
Tidak seperti [cap waktu](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-timestamp) Apache Hive, yang tidak memiliki zona waktu bawaan dan disimpan sebagai offset dari zaman UNIX, stempel waktu Amazon Ion memang memiliki offset. Gunakan properti ini untuk menentukan offset saat Anda membuat serial ke Amazon Ion.  
Contoh berikut menambahkan offset satu jam.  

```
'ion.timestamp.serialization_offset' = '+01:00'       
```

**ion.serialize\$1null**  
Opsional  
Default: `OMIT`  
Nilai:`OMIT`,`UNTYPED`, `TYPED`  
Amazon Ion SerDe dapat dikonfigurasi untuk membuat serial atau menghilangkan kolom yang memiliki nilai nol. Anda dapat memilih untuk menulis nulls () yang diketik kuat atau nulls yang tidak diketik (`TYPED`). `UNTYPED` Null yang diketik dengan kuat ditentukan berdasarkan pemetaan tipe Amazon Ion ke Hive default.  
Contoh berikut menentukan null yang diketik kuat.  

```
'ion.serialize_null'='TYPED'
```

**ion.ignore\$1malformed**  
Opsional  
Default: `false`  
Nilai:`true`, `false`  
Kapan`true`, abaikan entri yang salah bentuk atau seluruh file jika tidak dapat SerDe membacanya. Untuk informasi selengkapnya, lihat [Abaikan cacat](https://github.com/amzn/ion-hive-serde/blob/master/docs/serde-properties.md#ignore-malformed) dalam dokumentasi di GitHub.

**ion. *<column>*.serialize\$1as**  
Opsional  
Default: Jenis default untuk kolom.  
Nilai: String yang berisi tipe Amazon Ion  
Menentukan tipe data Amazon Ion di mana nilai diserialisasikan. Karena jenis Amazon Ion dan Hive tidak selalu memiliki pemetaan langsung, beberapa tipe Hive memiliki beberapa tipe data yang valid untuk serialisasi. Untuk membuat serial data sebagai tipe data non-default, gunakan properti ini. Untuk informasi selengkapnya tentang pemetaan tipe, lihat halaman [pemetaan Jenis](https://github.com/amzn/ion-hive-serde/blob/master/docs/type-mapping.md) Ion Amazon. GitHub  
Secara default, kolom Hive biner diserialisasikan sebagai gumpalan Amazon Ion, tetapi mereka juga dapat diserialkan sebagai [gumpalan Ion Amazon](https://amzn.github.io/ion-docs/docs/stringclob.html#ion-clob) (objek besar karakter). Contoh berikut membuat serial kolom `example_hive_binary_column` sebagai gumpalan.  

```
'ion.example_hive_binary_column.serialize_as' = 'clob'       
```