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.
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?
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 baru katalog runtime Lakehouse 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 sudah ada dan memiliki tabel saat ini yang dibuat dengan the 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 federasi katalog BigQuery. |
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 secara langsung di Cloud Storage.
Saat Anda menggunakan Lakehouse untuk Apache Iceberg, arsitektur teknis 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 operasi tulis 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 manifest: Mewakili satu snapshot tabel dengan mengelompokkan kumpulan file manifest.
- File manifest: 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 manifest dan file manifest. 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 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.
Batasan katalog runtime Lakehouse
Batasan berikut berlaku untuk tabel di katalog runtime Lakehouse:
Pengelolaan tabel
- 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 mengkueri 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 dikenai biaya untuk memproses 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.