Lakehouse untuk Apache Iceberg adalah platform data lakehouse terkelola di Google Cloud. Dalam platform ini, katalog runtime Lakehouse berfungsi sebagai layanan metastore serverless yang terkelola sepenuhnya. Layanan ini menyediakan satu sumber tepercaya untuk data lakehouse Anda, yang memungkinkan beberapa mesin—termasuk Apache Spark, Apache Flink, Apache Hive, dan BigQuery—berbagi tabel dan metadata tanpa menyalin file.
Untuk menghubungkan mesin kueri ke metastore, Anda mengonfigurasi klien menggunakan jenis katalog tertentu, seperti endpoint katalog REST Apache Iceberg. Endpoint ini mengelola metadata tabel dan menggunakan warehouse lokasi penyimpanan yang didukung oleh bucket Cloud Storage untuk menyimpan metadata dan file data yang mendasarinya. Untuk mengetahui informasi selengkapnya tentang cara memilih jenis katalog, lihat Jenis katalog dan konfigurasi endpoint.
Katalog runtime Lakehouse mendukung delegasi akses penyimpanan, yang juga dikenal sebagai penyediaan kredensial, yang meningkatkan keamanan dengan menghilangkan kebutuhan akan akses bucket Cloud Storage langsung. Layanan ini juga terintegrasi dengan Knowledge Catalog untuk tata kelola, silsilah, dan kualitas data yang terpadu. Saat tabel didaftarkan di katalog runtime Lakehouse, entri yang sesuai akan otomatis didaftarkan ke katalog metadata bisnis (Knowledge Catalog), sehingga memastikan penemuan dan tata kelola data yang konsisten tanpa memindahkan atau menyalin file.
Kemampuan utama
Sebagai komponen utama Lakehouse untuk Apache Iceberg, katalog runtime Lakehouse memberikan beberapa keuntungan untuk pengelolaan dan analisis data, termasuk arsitektur serverless, interoperabilitas mesin dengan API terbuka, pengalaman pengguna yang terpadu, serta analisis, streaming, dan AI berperforma tinggi saat Anda menggunakannya dengan BigQuery. Untuk mengetahui informasi selengkapnya tentang manfaat ini, lihat Apa yang dimaksud dengan Lakehouse?
Cara arsitektur Lakehouse terintegrasi dengan Google Cloud layanan
Untuk memahami cara Lakehouse mengelola data Anda, lihat cara arsitektur Lakehouse untuk Apache Iceberg terintegrasi dengan Google Cloud layanan. Apache Iceberg tidak menyimpan data dalam tabel monolitik. Sebagai gantinya, Apache Iceberg menggunakan arsitektur berlapis dari file metadata untuk mengatur file data ke dalam struktur tabel yang kohesif dengan dukungan transaksi ACID.
Diagram berikut mengilustrasikan cara mesin komputasi seperti Managed Service untuk Apache Spark menggunakan katalog runtime Lakehouse untuk mengelola metadata tabel guna membaca dan menulis file data Parquet yang mendasarinya langsung di Cloud Storage.
Saat Anda menggunakan Lakehouse untuk Apache Iceberg, arsitektur teknisnya terdiri dari tiga lapisan yang berbeda:
Lapisan katalog:
- Konsep inti Iceberg: Katalog menyimpan status tabel saat ini dengan mempertahankan pointer ke file metadata terbaru. Lapisan ini memfasilitasi kepatuhan ACID dan isolasi transaksi untuk memastikan bahwa penulisan serentak tidak saling mengganggu.
- Implementasi Lakehouse: Katalog runtime Lakehouse berfungsi sebagai layanan metastore regional tingkat atas. Dalam layanan ini, Anda membuat katalog individual untuk mengelola hierarki data. Mesin kueri klien terhubung ke katalog ini menggunakan jenis katalog endpoint tertentu, seperti endpoint katalog REST Apache Iceberg. Metastore mengelola commit transaksi, penyediaan kredensial untuk delegasi akses penyimpanan, dan pengelolaan pointer di seluruh katalog Anda.
Lapisan metadata:
- Konsep inti Iceberg: Lapisan ini melacak struktur tabel,
snapshot, dan lokasi file menggunakan hierarki tiga jenis file:
- File metadata: Menyimpan skema tabel, spesifikasi partisi, dan log pointer snapshot.
- Daftar manifes: Mewakili satu snapshot tabel dengan mengelompokkan kumpulan file manifes.
- File manifes: Melacak data di tingkat file individual, menyimpan jalur file, informasi partisi, dan statistik tingkat kolom, misalnya, jumlah baris dan nilai minimum serta maksimum, yang digunakan untuk pengoptimalan kueri dan pemangkasan partisi.
- Implementasi Lakehouse: Dalam penampung katalog,
Anda mengatur data ke dalam namespace logis (mirip dengan set data)
dan tabel. Untuk setiap tabel, katalog runtime Lakehouse membuat dan mengelola hierarki metadata Iceberg yang mendasarinya, dimulai dengan file
metadata.jsonroot yang mengarah ke daftar manifes dan file manifes. Katalog runtime Lakehouse mempertahankan file ini langsung di lokasi penyimpanan warehouse yang Anda tentukan.
- Konsep inti Iceberg: Lapisan ini melacak struktur tabel,
snapshot, dan lokasi file menggunakan hierarki tiga jenis file:
Lapisan data:
- Konsep inti Iceberg: Komponen ini adalah penyimpanan dasar tempat data mentah yang sebenarnya berada, biasanya dalam format file terbuka berbasis kolom atau baris yang dioptimalkan seperti Parquet, ORC, atau Avro.
- Implementasi Lakehouse: Saat Anda mengonfigurasi
bucket Cloud Storage (
gs://) sebagai lokasi penyimpanan warehouse, file data fisik yang direferensikan oleh tabel Anda akan disimpan dengan aman di dalam bucket Anda. Katalog runtime Lakehouse mengelola akses melalui delegasi akses penyimpanan (penyediaan kredensial), yang menyediakan token akses berdurasi singkat langsung ke mesin klien. Hal ini memungkinkan mesin membaca dan menulis file data dengan aman tanpa memerlukan izin IAM langsung yang luas pada bucket yang mendasarinya.
Kompatibilitas dan konfigurasi mesin kueri
Untuk menganalisis dan mengelola data di katalog runtime Lakehouse, Anda dapat menghubungkan berbagai mesin kueri open source dan perusahaan. Bergantung pada arsitektur dan persyaratan workload yang ada, Anda dapat memilih dari beberapa mesin yang didukung dan mengonfigurasi endpoint katalog yang sesuai.
Mesin yang didukung
Katalog runtime Lakehouse kompatibel dengan beberapa mesin kueri termasuk (tetapi tidak terbatas pada) Apache Spark, Apache Flink, Apache Hive, dan Trino. Tabel berikut menyediakan link ke dokumentasi untuk setiap mesin:
| Mesin | Dokumentasi |
|---|---|
| Apache Spark | Panduan memulai: Menggunakan Spark dan endpoint katalog REST Iceberg |
| Apache Hive | Menggunakan Spark dan katalog Hive |
| Apache Flink | Menggunakan Apache Flink |
| Trino | Menggunakan Trino |
Jenis katalog dan konfigurasi endpoint
Saat mengonfigurasi mesin klien untuk terhubung ke metastore katalog runtime Lakehouse, Anda memilih endpoint katalog tertentu, seperti endpoint katalog REST Apache Iceberg atau endpoint Apache Hive. Opsi terbaik bergantung pada kasus penggunaan Anda, seperti yang ditunjukkan dalam tabel berikut:
| Kasus penggunaan | Rekomendasi |
|---|---|
| Pengguna katalog runtime Lakehouse baru yang ingin mesin open source mereka mengakses data di Cloud Storage dan memerlukan interoperabilitas dengan mesin lain, termasuk BigQuery dan AlloyDB untuk PostgreSQL. | Gunakan endpoint katalog REST Apache Iceberg. |
| Pengguna yang menjalankan workload Apache Hive atau Spark yang bergantung pada antarmuka Hive Metastore dan menginginkan layanan metastore yang terkelola sepenuhnya. | Gunakan endpoint katalog Apache Hive. |
| Pengguna katalog runtime Lakehouse yang memiliki tabel saat ini yang dibuat dengan katalog Apache Iceberg kustom untuk endpoint BigQuery. | Terus gunakan katalog Apache Iceberg kustom untuk endpoint BigQuery, tetapi gunakan katalog REST Apache Iceberg untuk alur kerja baru. Tabel yang dibuat dengan katalog Apache Iceberg kustom untuk endpoint BigQuery terlihat dengan endpoint katalog REST Apache Iceberg melalui gabungan katalog BigQuery. |
Batasan katalog runtime Lakehouse
Batasan berikut berlaku untuk tabel di katalog runtime Lakehouse:
Pengelolaan tabel
- Hanya tabel Apache Iceberg V2 yang didukung; tabel Iceberg V1 tidak didukung. Jika memiliki tabel Iceberg V1 yang ada, Anda harus mengupgrade-nya ke
V2 (misalnya, dengan menjalankan
ALTER TABLE catalog.schema.table SET TBLPROPERTIES ('format-version'='2');atau menggunakan operasi mesin serupa) sebelum menggunakannya dengan katalog runtime Lakehouse. - Anda tidak dapat membuat atau mengubah tabel dengan endpoint katalog REST Apache Iceberg menggunakan pernyataan bahasa definisi data (DDL) atau bahasa pengolahan data (DML) BigQuery. Anda dapat mengubah tabel ini menggunakan BigQuery API (dengan alat command line bq atau library klien), tetapi melakukannya berisiko membuat perubahan yang tidak kompatibel dengan mesin eksternal.
- Tabel di katalog runtime Lakehouse tidak mendukung
operasi penggantian nama atau Pernyataan SQL Spark
ALTER TABLE ... RENAME TO. - Tabel di katalog runtime Lakehouse tidak mendukung pengelompokan.
- Tabel di katalog runtime Lakehouse tidak mendukung nama kolom yang fleksibel.
- Katalog runtime Lakehouse tidak mendukung tampilan Apache Iceberg.
Membuat kueri
- Performa kueri untuk tabel di katalog runtime Lakehouse dari mesin BigQuery mungkin lambat dibandingkan dengan membuat kueri data dalam tabel BigQuery standar. Secara umum, kecepatan kueri harus setara dengan membaca data dari Cloud Storage.
- Uji coba kueri BigQuery yang menggunakan tabel di katalog runtime Lakehouse mungkin melaporkan batas bawah 0 byte data, meskipun baris ditampilkan. Hasil ini terjadi karena jumlah data yang diproses dari tabel tidak dapat ditentukan hingga kueri lengkap dijalankan. Menjalankan kueri akan menimbulkan biaya untuk pemrosesan data ini.
- Anda tidak dapat mereferensikan tabel di katalog runtime Lakehouse dalam kueri tabel karakter pengganti.
API dan metadata
- Anda tidak dapat menggunakan
tabledata.listmetode untuk mengambil data dari tabel di katalog runtime Lakehouse. Sebagai gantinya, Anda dapat menyimpan hasil kueri ke tabel BigQuery, lalu menggunakan metodetabledata.listpada tabel tersebut. - Tampilan statistik penyimpanan tabel untuk tabel di katalog runtime Lakehouse tidak didukung.
Kuota dan batas
- Tabel di katalog runtime Lakehouse di BigQuery tunduk pada kuota dan batas yang sama seperti tabel standar.
Perbedaan dengan metastore BigLake (klasik)
Perbedaan inti antara katalog runtime Lakehouse dan metastore BigLake (klasik) mencakup hal berikut:
- Katalog runtime Lakehouse mendukung integrasi langsung dengan mesin open source seperti Spark, yang membantu mengurangi redundansi saat Anda menyimpan metadata dan menjalankan tugas. Tabel di katalog runtime Lakehouse dapat diakses langsung dari beberapa mesin open source dan BigQuery.
- Katalog runtime Lakehouse mendukung endpoint katalog REST Apache Iceberg, sedangkan metastore BigLake (klasik) tidak.
Langkah berikutnya
- Memahami endpoint katalog REST Apache Iceberg.