Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan Amazon IonSerDeciri
Topik ini berisi informasi tentangSerDeproperti untukCREATE
TABLE
pernyataan di Athena. Untuk informasi lebih lanjut dan contoh Amazon IonSerDepenggunaan properti, lihatSerDeciri
Menentukan Amazon IonSerDeciri
Untuk menentukan properti untuk Amazon Ion HiveSerDedi dalam kamuCREATE TABLE
pernyataan, gunakanWITH SERDEPROPERTIES
klausa. KarenaWITH
SERDEPROPERTIES
adalah subfield dariROW FORMAT SERDE
klausa, Anda harus menentukanROW FORMAT SERDE
dan Amazon Ion HiveSerDepath kelas pertama, sebagai sintaks berikut menunjukkan.
... ROW FORMAT SERDE 'com.amazon.ionhiveserde.IonHiveSerDe' WITH SERDEPROPERTIES ( '
property
' = 'value
', 'property
' = 'value
', ... )
Perhatikan bahwa meskipunROW FORMAT SERDE
klausa diperlukan jika Anda ingin menggunakanWITH SERDEPROPERTIES
, Anda dapat menggunakanSTORED AS
ION
atau semakin lamaINPUTFORMAT
danOUTPUTFORMAT
sintaks untuk menentukan format Amazon Ion.
Ion AmazonSerDeciri
Berikut ini adalah Amazon IonSerDesifat yang dapat digunakan dalamCREATE
TABLE
pernyataan di Athena.
- ion.pengkodean
-
Opsional
Default:
BINARY
Nilai-nilai:
BINARY
,TEXT
Properti ini menyatakan apakah nilai-nilai baru ditambahkan serial sebagaiBiner Amazon Ion
atau format teks Amazon Ion. Berikut iniSerDecontoh properti menentukan format teks Amazon Ion.
'ion.encoding' = 'TEXT'
- ion.fail_on_overflow
-
Opsional
Default:
true
Nilai-nilai:
true
,false
Amazon Ion memungkinkan untuk jenis numerik besar sewenang-wenang sementara Hive tidak. Secara default,SerDegagal jika nilai Amazon Ion tidak sesuai dengan kolom Hive, tetapi Anda dapat menggunakan
fail_on_overflow
opsi konfigurasi untuk membiarkan nilai meluap bukannya gagal.Properti ini dapat diatur baik 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
danfail_on_overflow
, dibatasi oleh periode, seperti pada contoh berikut.'ion.
<column>
.fail_on_overflow' = 'false' - ion.path_extractor.case_sensitive
-
Opsional
Default:
false
Nilai-nilai:
true
,false
Menentukan apakah akan memperlakukan nama bidang Amazon Ion sebagai peka huruf besar. Kapan
false
, yangSerDemengabaikan kasus parsing nama bidang Amazon Ion.Sebagai contoh, misalkan Anda memiliki skema tabel Hive yang mendefinisikan bidang
alias
dalam huruf kecil dan dokumen Amazon Ion dengan keduanyaalias
bidang danALIAS
lapangan, seperti pada contoh berikut.-- Hive Table Schema alias: STRING -- Amazon Ion Document { 'ALIAS': 'value1'} { 'alias': 'value2'}
Contoh berikut menunjukkanSerDeproperti dan tabel diekstraksi yang dihasilkan ketika sensitivitas kasus diatur ke
false
:-- Serde properties 'ion.alias.path_extractor' = '(alias)' 'ion.path_extractor.case_sensitive' = 'false' --Extracted Table | alias | |----------| | "value1" | | "value2" |
Contoh berikut menunjukkanSerDeproperti dan tabel diekstraksi yang dihasilkan ketika sensitivitas kasus diatur ke
true
:-- Serde properties 'ion.alias.path_extractor' = '(alias)' 'ion.path_extractor.case_sensitive' = 'true' --Extracted Table | alias | |----------| | "value2" |
Dalam kasus kedua,
value1
untukALIAS
bidang diabaikan ketika sensitivitas kasus diatur ketrue
dan ekstraktor jalur ditentukan sebagaialias
. - ion.
<column>
.path_extractor -
Opsional
Bawaan: NA
Nilai: String dengan jalur pencarian
Menciptakan extractor jalan 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 jalur extractor berikut memetakan
example_ion_field
kepadaexample_hive_column
.'ion.example_hive_column.path_extractor' = '(example_ion_field)'
Untuk informasi selengkapnya tentang ekstraktor jalur dan jalur pencarian, lihatMenggunakan ekstraktor jalur.
- ion.timestamp.serialization_offset
-
Opsional
Default:
'Z'
Nilai-nilai:
OFFSET
, dimanaOFFSET
direpresentasikan sebagai
. Contoh nilai:<signal>
hh:mm01:00
,+01:00
,-09:30
,Z
(UTC, sama seperti 00:00)Tidak seperti Apache Hivecap waktu
, 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_null
-
Opsional
Default:
OMIT
Nilai-nilai:
OMIT
,UNTYPED
,TYPED
Ion AmazonSerDedapat dikonfigurasi untuk baik serialize atau menghilangkan kolom yang memiliki nilai null. Anda dapat memilih untuk menulis nulls diketik kuat (
TYPED
) atau nulls tidak diketik (UNTYPED
). Null yang diketik dengan kuat ditentukan berdasarkan pemetaan tipe Amazon Ion to Hive default.Contoh berikut menentukan nulls sangat diketik.
'ion.serialize_null'='TYPED'
- ion.ignore_cacat
-
Opsional
Default:
false
Nilai-nilai:
true
,false
Kapan
true
, mengabaikan entri cacat atau seluruh file jikaSerDetidak dapat membacanya. Untuk informasi lebih lanjut, lihatAbaikan cacatdalam dokumentasiGitHub. - ion.
<column>
.serialize_as -
Opsional
Default: Tipe default untuk kolom.
Nilai: String yang berisi tipe Amazon Ion
Menentukan tipe data Amazon Ion di mana nilai diserialkan. Karena jenis Amazon Ion dan Hive tidak selalu memiliki pemetaan langsung, beberapa jenis 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 Amazon IonJenis pemetaan
halaman padaGitHub. Secara default, kolom Hive biner diserialkan sebagai gumpalan Amazon Ion, tetapi mereka juga dapat diserialkan sebagaiAmazon Ion gumpalan
(karakter objek besar). Contoh berikut serializes kolom example_hive_binary_column
sebagai gumpalan.'ion.example_hive_binary_column.serialize_as' = 'clob'