Tentang katalog runtime Lakehouse

Lakehouse untuk Apache Iceberg adalah platform data lakehouse terkelola di Google Cloud. Intinya adalah katalog runtime Lakehouse, layanan metastore serverless yang terkelola sepenuhnya yang berfungsi sebagai satu sumber tepercaya untuk data Anda. Dengan memusatkan metadata ini, beberapa mesin pemrosesan—termasuk Apache Spark, Apache Flink, Apache Hive, dan BigQuery—dapat berbagi tabel dengan lancar tanpa menduplikasi file.

Untuk menghubungkan mesin kueri ke metastore, Anda mengonfigurasi klien menggunakan endpoint seperti katalog REST Apache Iceberg. Tindakan ini berfungsi sebagai antarmuka pengelolaan dalam katalog runtime Lakehouse untuk menangani metadata tabel, sekaligus mengandalkan Cloud Storage untuk menyimpan metadata dan file data yang mendasarinya.

Kemampuan utama

Sebagai komponen utama Lakehouse, katalog runtime Lakehouse memberikan beberapa keuntungan untuk pengelolaan data dan analisis, 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 Lakehouse berintegrasi dengan Google Cloud

Untuk memahami cara Lakehouse mengelola data Anda, lihat cara arsitektur Lakehouse untuk Apache Iceberg berintegrasi 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 teknisnya 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, penjualan 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 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.json root yang mengarah ke daftar manifes dan file manifes. Katalog runtime Lakehouse mempertahankan file ini langsung di lokasi penyimpanan data 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 lokasi data warehouse Cloud Storage (bl:// atau gs://), file data fisik yang direferensikan oleh tabel Anda akan disimpan dengan aman dalam bucket Anda. Katalog runtime Lakehouse mengelola akses melalui delegasi akses penyimpanan (penjualan kredensial), menjual 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.

Cara Lakehouse mengimplementasikan Apache Iceberg REST Catalog API

Katalog runtime Lakehouse mengimplementasikan Apache Iceberg REST Catalog API open source untuk mengelola namespace dan tabel. Katalog ini juga menyediakan API ekstensi khusus untuk pengelolaan katalog.

Mesin kueri klien berinteraksi dengan metastore menggunakan REST catalog API standar ini. Untuk mengetahui detail tentang resource dan endpoint Google Cloud, lihat referensi Lakehouse REST API.

Anda dapat membuat, mengonfigurasi, dan mengelola resource ini menggunakan Google Cloud konsol, gcloud CLI, REST API, atau Terraform. Untuk mengetahui informasi selengkapnya, lihat halaman berikut:

Kompatibilitas dan konfigurasi mesin kueri

Untuk menganalisis dan mengelola data dalam 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 Penggunaan dengan Apache Spark
Apache Hive Penggunaan dengan Spark dan katalog Hive
Apache Flink Penggunaan dengan Apache Flink
Trino Penggunaan dengan 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 sudah ada dan 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 umum berikut berlaku untuk tabel dalam katalog runtime Lakehouse saat membuat kueri melalui BigQuery. Endpoint katalog individual (seperti Apache Iceberg REST atau Apache Hive) mungkin memiliki batasan tambahan khusus endpoint.

Pengelolaan tabel

  • Tabel Apache Iceberg V2 (GA) dan tabel V3 (Pratinjau) didukung. Tabel Iceberg V1 tidak didukung. Sebelum menggunakan tabel V1 yang ada dengan katalog runtime Lakehouse, Anda harus mengupgradenya ke versi yang didukung. Untuk mengetahui informasi selengkapnya, lihat Mengupgrade tabel Iceberg V1 ke V2.
  • 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 dalam katalog runtime Lakehouse tidak mendukung operasi penggantian nama atau pernyataan Spark SQL ALTER TABLE ... RENAME TO.
  • Tabel dalam katalog runtime Lakehouse tidak mendukung pengelompokan.
  • Tabel dalam katalog runtime Lakehouse tidak mendukung nama kolom yang fleksibel.
  • Katalog runtime Lakehouse tidak mendukung tampilan database atau metastore.

    nama kolom yang fleksibel.

  • Katalog runtime Lakehouse tidak mendukung tampilan Apache Iceberg.

Membuat kueri

  • Performa kueri untuk tabel dalam 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 BigQuery dari kueri yang menggunakan tabel dalam 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 dalam katalog runtime Lakehouse dalam kueri tabel karakter pengganti.

API dan metadata

  • Anda tidak dapat menggunakan tabledata.list metode untuk mengambil data dari tabel dalam 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 dalam katalog runtime Lakehouse tidak didukung.

Kuota dan batas

  • Tabel dalam katalog runtime Lakehouse di BigQuery tunduk pada kuota dan batas yang sama seperti tabel standar.

Perbedaan dengan metastore BigLake (klasik)

Perbedaan utama 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 dalam 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