Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Apache HudiUpsert
mengacu pada kemampuan untuk menyisipkan catatan ke dalam set data yang ada jika mereka belum ada atau untuk memperbaruinya jika mereka sudah ada.
Hudi menangani peristiwa penyisipan dan pembaruan data tanpa membuat banyak file kecil yang dapat menyebabkan masalah performa untuk analisis. Apache Hudi secara otomatis melacak perubahan dan menggabungkan file sehingga ukurannya tetap optimal. Ini untuk menghindari kebutuhan untuk membangun solusi kustom yang memantau dan menulis ulang banyak file kecil ke dalam file besar yang lebih sedikit.
Set data Hudi cocok untuk kasus penggunaan berikut:
-
Mematuhi peraturan privasi seperti Peraturan Perlindungan Data Umum
(GDPR) dan California Consumer Privacy Act (CCPA) yang memberlakukan hak orang untuk menghapus informasi pribadi atau mengubah cara data mereka digunakan. -
Bekerja dengan data streaming dari sensor dan perangkat Internet untuk Segala (IoT) lainnya yang memerlukan penyisipan data dan pembaruan peristiwa tertentu.
-
Mengimplementasikan sistem change data capture (CDC)
.
Kumpulan data yang dikelola oleh Hudi disimpan di Amazon S3 menggunakan format penyimpanan terbuka. Saat ini, Athena dapat membaca set data Hudi yang dipadatkan tetapi tidak menulis data Hudi. Athena mendukung Hudi versi 0.14.0 dengan mesin Athena versi 3. Ini dapat berubah. Athena tidak dapat menjamin kompatibilitas baca dengan tabel yang dibuat dengan versi Hudi yang lebih baru. Untuk informasi tentang versi mesin Athena, lihat Versi mesin Athena. Untuk informasi selengkapnya tentang fitur dan pembuatan versi Hudi, lihat dokumentasi Hudi di situs web Apache
Sebuah set data Hudi dapat menjadi salah satu dari tipe berikut:
-
Copy on Write (CoW) – Data disimpan dalam format kolom (Parquet), dan setiap pembaruan membuat versi file baru selama penulisan.
-
Merge on Read (MoR) – Data disimpan menggunakan kombinasi kolom (Parquet) dan format berbasis baris (Avro). Pembaruan dicatat ke file
delta
berbasis baris dan dipadatkan sesuai kebutuhan untuk membuat file kolom versi baru.
Dengan set data CoW, setiap kali ada pembaruan ke catatan, file yang berisi catatan ditulis ulang dengan nilai yang diperbarui. Dengan set data MoR, setiap kali ada pembaruan, Hudi hanya menulis baris untuk catatan yang berubah. MoR lebih cocok untuk beban kerja tulis atau perubahan berat dengan lebih sedikit pembacaan. CoW lebih cocok untuk beban kerja pembacaan berat pada data yang jarang berubah.
Hudi menyediakan tiga tipe kueri untuk mengakses data:
-
Kueri snapshot — Kueri yang melihat snapshot terbaru dari tabel sebagai tindakan komit atau pemadatan yang diberikan. Untuk tabel MoR, kueri snapshot memapar status terbaru tabel dengan menggabungkan file dasar dan delta potongan file terbaru pada pada saat kueri.
-
Kueri tambahan — Kueri hanya melihat data baru yang ditulis ke tabel, karena komit/pemadatan yang diberikan. Ini secara efektif menyediakan pengaliran perubahan untuk mengaktifkan data pipeline tambahan.
-
Baca kueri yang dioptimalkan — Untuk tabel MoR, kueri melihat data terbaru yang dipadatkan. Untuk tabel CoW, kueri melihat data terbaru yang dikomit.
Tabel berikut menunjukkan kemungkinan tipe kueri Hudi untuk setiap tipe tabel.
Jenis tabel | Kemungkinan jenis kueri Hudi |
---|---|
Copy On Write | Snapshot, tambahan |
Merge On Read | snapshot, tambahan, dioptimalkan baca |
Saat ini, Athena mendukung kueri snapshot dan dioptimalkan baca, tetapi tidak kueri tambahan. Pada tabel MoR, semua data yang terpapar untuk mengkueri dioptimalkan baca dipadatkan. Ini memberikan performa yang baik tetapi tidak termasuk komit delta terbaru. Kueri snapshot berisi data terbaru tetapi dikenai beberapa overhead komputasi, yang membuat performa kueri ini tidak terlalu baik.
Untuk informasi selengkapnya tentang pengorbanan antara tipe tabel dan kueri, lihat Jenis Tabel & Kueri
Perubahan terminologi Hudi: Tampilan sekarang menjadi kueri
Mulai dari rilis Apache Hudi versi 0.5.1, apa yang sebelumnya disebut tampilan sekarang disebut kueri. Tabel berikut merangkum perubahan antara istilah lama dan baru.
Istilah lama | Istilah baru |
---|---|
CoW: tampilan dioptimalkan baca MoR: tampilan waktu nyata |
Kueri snapshot |
Tampilan tambahan | Kueri tambahan |
Tampilan dioptimalkan baca MoR | Kueri dioptimalkan baca |