Tentang katalog runtime Lakehouse

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.

Komponen arsitektur lakehouse, termasuk Managed Service untuk Apache Spark, Cloud Storage, dan Lakehouse REST Catalog.
Diagram arsitektur Lakehouse.

Saat Anda menggunakan Lakehouse untuk Apache Iceberg, arsitektur teknis terdiri dari tiga lapisan yang berbeda:

  1. 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.
  2. 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.json root yang mengarah ke daftar manifest dan file manifest. Katalog runtime Lakehouse mempertahankan file ini langsung di lokasi penyimpanan warehouse yang Anda tentukan.
  3. 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.list metode untuk mengambil data dari tabel di katalog runtime Lakehouse. Sebagai gantinya, Anda dapat menyimpan hasil kueri ke tabel BigQuery, lalu menggunakan metode tabledata.list pada 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