Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengkonversi format data masukan di Amazon Data Firehose
Amazon Data Firehose dapat mengonversi format data input Anda dari JSON Apache Parquet atau Apache ORC
Anda dapat mengonversi format data Anda bahkan jika Anda menggabungkan catatan Anda sebelum mengirimnya ke Amazon Data Firehose.
Amazon Data Firehose memerlukan tiga elemen berikut untuk mengonversi format data rekaman Anda:
Deserializer
Amazon Data Firehose memerlukan deserializer untuk membaca data input Anda. JSON Anda dapat memilih salah satu dari dua jenis deserializer berikut.
Saat menggabungkan beberapa JSON dokumen ke dalam catatan yang sama, pastikan masukan Anda masih disajikan dalam JSON format yang didukung. Array JSON dokumen bukanlah masukan yang valid.
Misalnya, ini adalah input yang benar: {"a":1}{"a":2}
Dan ini adalah input yang salah: [{"a":1}, {"a":2}]
Pilih OpenX JSON SerDe
-
yyyy-MM-dd'T'HH:mm:ss[.S]'Z', dengan fraksi dapat terdiri atas hingga 9 digit – Sebagai contoh,
2017-02-07T15:13:01.39256Z
. -
yyyy-[M]M-[d]d HH:mm:ss[.S], dengan fraksi dapat terdiri atas hingga 9 digit – Sebagai contoh,
2017-02-07 15:13:01.14
. -
Detik jangka waktu – Sebagai contoh,
1518033528
. -
Milidetik jangka waktu – Sebagai contoh,
1518033528123
. -
Detik jangka waktu titik mengambang – Sebagai contoh,
1518033528.123
.
OpenX JSON SerDe dapat mengonversi periode (.
) menjadi garis bawah (). _
Itu juga dapat mengonversi JSON kunci menjadi huruf kecil sebelum deserialisasinya. Untuk informasi selengkapnya tentang opsi yang tersedia dengan deserializer ini melalui Amazon Data Firehose, lihat O. penXJson SerDe
Jika Anda tidak yakin deserializer mana yang harus dipilih, gunakan OpenX JSON SerDe, kecuali jika Anda memiliki stempel waktu yang tidak didukungnya.
Jika Anda memiliki stempel waktu dalam format selain yang tercantum sebelumnya, gunakan ApacheDateTimeFormat
Joda-Time. Untuk informasi selengkapnya, lihat Kelas DateTimeFormat
Anda juga dapat menggunakan nilai khusus millis
untuk mengurai stempel waktu dalam milidetik jangka waktu. Jika Anda tidak menentukan format, Amazon Data Firehose menggunakan secara java.sql.Timestamp::valueOf
default.
The Hive JSON SerDe tidak mengizinkan yang berikut:
-
Periode (
.
) di nama kolom. -
Bidang yang jenisnya
uniontype
. -
Bidang yang memiliki tipe numerik dalam skema, tetapi itu adalah string dalam. JSON Misalnya, jika skema adalah (int), dan JSON is
{"a":"123"}
, Hive SerDe memberikan kesalahan.
The Hive SerDe tidak mengubah nested JSON menjadi string. Misalnya, jika Anda memiliki {"a":{"inner":1}}
, itu tidak memperlakukan {"inner":1}
sebagai string.
Skema
Amazon Data Firehose memerlukan skema untuk menentukan cara menafsirkan data tersebut. Gunakan AWS Glue untuk membuat skema di AWS Glue Data Catalog. Amazon Data Firehose kemudian mereferensikan skema tersebut dan menggunakannya untuk menafsirkan data input Anda. Anda dapat menggunakan skema yang sama untuk mengonfigurasi Amazon Data Firehose dan perangkat lunak analitik Anda. Untuk informasi selengkapnya, lihat Mengisi AWS Katalog Data Glue di AWS Glue Panduan Pengembang.
catatan
Skema yang dibuat di AWS Glue Katalog Data harus sesuai dengan struktur data input. Jika tidak, data yang dikonversi tidak akan berisi atribut yang tidak ditentukan dalam skema. Jika Anda menggunakan nestedJSON, gunakan STRUCT tipe dalam skema yang mencerminkan struktur data AndaJSON. Lihat contoh ini untuk cara menangani bersarang JSON dengan STRUCT tipe.
penting
Untuk tipe data yang tidak menentukan batas ukuran, ada batas praktis 32 MBs untuk semua data dalam satu baris.
Jika Anda menentukan panjang untuk CHAR
orVARCHAR
, Firehose memotong string pada panjang yang ditentukan saat membaca data input. Jika string data yang mendasarinya lebih panjang, itu tetap tidak berubah.
Serializer
Firehose memerlukan serializer untuk mengonversi data ke format penyimpanan kolom target (Parket atauORC) - Anda dapat memilih salah satu dari dua jenis serializer berikut.
Serializer yang Anda pilih tergantung pada kebutuhan bisnis Anda. Untuk mempelajari lebih lanjut tentang dua opsi serializer, lihat ORC SerDe