Cara kerja Lakehouse

Arsitektur teknis Lakehouse untuk Apache Iceberg mendukung interoperabilitas antar-mesin dengan memusatkan pengelolaan metadata dan menangani kueri melalui jalur tertentu.

Arsitektur

Membangun Lakehouse Google Cloud terdiri dari komponen teknis berikut:

  • Penyimpanan: Penyimpanan Cloud Storage dan BigQuery berfungsi sebagai lapisan penyimpanan, dengan Apache Iceberg sebagai format tabel terbuka yang direkomendasikan untuk penyimpanan berperforma tinggi dan dapat dioperasikan di Cloud Storage.

  • Katalog: Katalog runtime Lakehouse menyediakan satu sumber kebenaran untuk mengelola metadata. Layanan ini memusatkan penemuan metadata di beberapa mesin menggunakan berbagai opsi kompatibilitas, seperti endpoint katalog REST Apache Iceberg. Pendaftaran tabel ke dalam katalog secara otomatis mendaftarkan entri ke dalam katalog pengetahuan metadata bisnis.

  • Mesin kueri: BigQuery dan mesin open source—termasuk Apache Spark, Apache Flink, dan Trino—beroperasi secara lancar dengan terhubung ke katalog runtime Lakehouse. Mesin komputasi seperti Managed Service untuk Apache Spark menggunakan Apache Spark open source dengan pengoptimalan eksekusi untuk membantu memastikan portabilitas beban kerja dan menghindari keterikatan vendor.

  • Tata kelola: Knowledge Catalog menyediakan kebijakan keamanan, silsilah, dan tata kelola terpusat di seluruh lakehouse Anda.

  • Alat penulisan dan analisis data: Mesin dan alat terintegrasi menyediakan beberapa jalur untuk penyerapan dan analisis data, sehingga membantu memastikan akses data yang konsisten bagi data scientist dan analis.

Hierarki resource

Lakehouse Google Cloud mengatur data menggunakan hierarki yang sesuai dengan standar Apache Iceberg dan konsep database standar. Struktur ini memungkinkan katalog runtime Lakehouse memetakan identitas logis ke jalur penyimpanan fisik. Untuk berinteraksi dengan hierarki resource ini dan menghubungkan mesin kueri Anda ke katalog, Anda menggunakan endpoint tertentu, seperti yang dijelaskan dalam daftar berikut.

  1. Katalog runtime lakehouse: Resource layanan regional tingkat atas di Google Cloud yang menghosting metadata Anda. Untuk menghubungkan mesin kueri ke layanan ini dan mengelola katalog yang mendasarinya, Anda mengonfigurasi aplikasi klien menggunakan endpoint katalog tertentu, seperti endpoint katalog REST Apache Iceberg.
  2. Katalog: Penampung logis dalam layanan katalog runtime. Dalam struktur penamaan Project/Catalog/Namespace/Table (P.C.N.T), ini mewakili instance katalog tertentu yang Anda kueri.
  3. Namespace: Pengelompokan logis tabel dalam katalog. Untuk pengguna yang sudah memahami BigQuery, namespace secara fungsional mirip dengan set data.
  4. Tabel: Entitas spesifik yang mengarah ke data di Cloud Storage. Metadata tabel berisi skema, informasi partisi, dan pointer ke status tabel saat ini melalui file metadata.json Apache Iceberg.

Endpoint yang didukung

Katalog runtime Lakehouse menyediakan beberapa endpoint untuk menghubungkan data Anda di Cloud Storage dan BigQuery.

  • Endpoint katalog REST Apache Iceberg: Menyediakan antarmuka REST standar untuk kompatibilitas yang luas dengan mesin open source seperti Apache Spark, Apache Flink, dan Trino. Ini adalah antarmuka yang direkomendasikan untuk workload baru dan menawarkan interoperabilitas baca dan tulis penuh.

  • Endpoint katalog Apache Iceberg kustom untuk BigQuery: Memungkinkan mesin beroperasi langsung dengan katalog BigQuery. Antarmuka ini digunakan terutama untuk tabel Apache Iceberg yang dikelola oleh BigQuery dan workload yang ada yang bertransisi ke arsitektur Lakehouse.

  • Endpoint katalog Apache Hive (Pratinjau): Menyediakan kompatibilitas untuk workload open source yang bergantung pada antarmuka metastore Apache Hive (HMS). Dengan begitu, Anda dapat menjalankan workload Apache Hive atau Spark terhadap layanan metastore yang terkelola sepenuhnya di Google Cloud.

Katalog runtime Lakehouse

Dalam hierarki resource, katalog runtime Lakehouse berfungsi sebagai layanan metadata regional tingkat teratas di Google Cloud. Container ini berfungsi sebagai container root yang menghosting setiap instance katalog Anda, memusatkan penemuan metadata di seluruh mesin kueri yang berbeda-beda.

Layanan ini menerapkan API Katalog REST Apache Iceberg open source untuk mengelola namespace dan tabel, serta menyediakan ekstensi khusus untuk pengelolaan katalog.

Untuk mempelajari layanan metastore lebih dalam, termasuk kemampuan utama, mesin yang didukung, konfigurasi endpoint, dan batasan, lihat Tentang katalog runtime Lakehouse.

Katalog

Katalog adalah penampung metastore logis yang didukung oleh lokasi gudang Cloud Storage. Dalam struktur penamaan Project.Catalog.Namespace.Table (P.C.N.T), katalog mewakili instance metastore unik yang menghubungkan metadata tabel terbuka Anda dengan mesin kueri.

Karakteristik utama katalog meliputi:

  • Asosiasi penyimpanan: Hubungan antara katalog dan penyimpanan dasarnya bergantung pada jenis katalog yang Anda konfigurasi.
  • Replikasi regional: Region katalog otomatis cocok dengan region bucket yang mendasarinya.
  • Delegasi akses: Administrator dapat mengaktifkan penyediaan kredensial di katalog untuk mendelegasikan akses, sehingga kredensial berumur pendek dengan cakupan yang lebih kecil dapat dibuat secara otomatis, bukan memberikan izin bucket langsung kepada pengguna.

Namespace

Namespace adalah pengelompokan logis tabel dalam katalog, yang berfungsi mirip dengan database, skema, atau set data BigQuery. Kebijakan ini menyediakan struktur untuk mengatur dan mengelola kontrol akses untuk tabel.

Karakteristik utama namespace meliputi hal-hal berikut:

  • Regionalitas: Saat Anda membuat namespace, namespace tersebut akan otomatis menggunakan region yang sama dengan katalog induknya.
  • Fleksibilitas lokasi: Opsi untuk menentukan lokasi namespace kustom ditentukan oleh jenis gudang katalog.
  • Batasan bertingkat: Namespace bertingkat (sub-namespace) tidak didukung.
  • Batas keamanan: Anda dapat memberikan peran IAM di tingkat namespace untuk mengelola akses ke semua tabel yang ada di dalamnya.

Tabel

Saat membangun dengan Lakehouse Google Cloud, Anda dapat memilih dari jenis tabel berikut:

Didukung oleh katalog runtime Lakehouse

Direkomendasikan

  • Tabel Apache Iceberg: Tabel Apache Iceberg yang dibuat dari mesin open source dan disimpan di Cloud Storage. Penawaran ini menawarkan kompatibilitas dan pengelolaan terbuka melalui endpoint REST katalog runtime Lakehouse. Untuk memastikan tidak ada dua tabel yang menempati lokasi yang sama, jalur tabel kustom harus bertingkat di bawah jalur namespace induk, dan lokasi tabel yang dihasilkan secara otomatis menerima sufiks string acak untuk mencegah konflik.

    Format tabel yang didukung

    Tabel Apache Iceberg V2 (GA) dan tabel V3 (Pratinjau) didukung. Tabel Iceberg V1 tidak didukung. Sebelum menggunakan tabel V1 yang ada dengan Lakehouse untuk Apache Iceberg, Anda harus mengupgradenya ke versi yang didukung. Untuk mengetahui informasi selengkapnya, lihat Mengupgrade tabel Iceberg V1 ke V2.

Didukung oleh BigQuery

  • Tabel Apache Iceberg: Tabel Apache Iceberg yang dibuat dan dikelola oleh BigQuery. Metadata untuk tabel ini disimpan di katalog BigQuery, dan data tabel serta metadata fisik disimpan di Cloud Storage.
  • Tabel native: Tabel yang dikelola sepenuhnya oleh BigQuery yang dapat dihubungkan ke katalog runtime Lakehouse untuk memungkinkan Anda beroperasi dengan mesin open source.
  • Tabel eksternal: Tabel di luar katalog runtime Lakehouse tempat data dan metadata dikelola sendiri. Koneksi ini mendukung akses yang didelegasikan melalui koneksi untuk data yang disimpan di Cloud Storage, Amazon S3, atau Azure Blob Storage.

Untuk perbandingan mendetail dari opsi ini, lihat Memahami jenis dan kemampuan tabel.

Urutan pemrosesan kueri

Saat Anda mengirimkan kueri ke tabel Lakehouse Google Cloud, permintaan akan mengikuti jalur tertentu untuk menerapkan kebijakan dan mengambil metadata sebelum data diproses.

  1. Pengiriman: Anda mengirimkan kueri SQL ke mesin yang kompatibel seperti Apache Spark, Trino, atau BigQuery.
  2. Permintaan metadata: Mesin meminta metadata tabel dari katalog runtime Lakehouse untuk mengidentifikasi tabel dan lokasi metadatanya.
  3. Otorisasi: Jika didukung oleh endpoint yang Anda gunakan, katalog akan memvalidasi permintaan terhadap Identity and Access Management (IAM) dan kebijakan keamanan terperinci.
  4. Respons metadata: Katalog menampilkan metadata. Jika penyediaan kredensial diaktifkan, kredensial juga menyediakan token berjangka pendek untuk membantu akses penyimpanan yang aman.
  5. Pengambilan data: Mesin menggunakan metadata dan token opsional untuk membaca file data langsung dari Cloud Storage.
  6. Eksekusi: Mesin memproses data dan menampilkan hasilnya.

Praktik terbaik

Saat merancang dan mengoperasikan data lakehouse di Google Cloud, pertimbangkan praktik terbaik berikut:

  • Terapkan arsitektur medalion: Susun data warehouse Anda ke dalam lapisan logis progresif (bronze untuk penyerapan data mentah, silver untuk data yang telah dibersihkan dan disesuaikan, serta gold untuk agregasi tingkat bisnis yang telah dikurasi). Gunakan BigQuery untuk lapisan penggunaan emas guna memaksimalkan performa dan konkurensi kueri.
  • Gunakan template sesi untuk workload interaktif: Untuk analisis eksploratif dan penulisan notebook, gunakan template sesi untuk menstandardisasi konfigurasi lingkungan di seluruh tim pengembangan dan mengurangi penyiapan berulang.
  • Tetapkan ID batch kustom: Saat mengirimkan workload batch Apache Spark serverless non-interaktif, tetapkan nama batch dan tugas kustom. Hal ini meningkatkan kemampuan observasi, yang membantu Anda memfilter dan melacak eksekusi tugas dalam Cloud Logging dan konsol Google Cloud .
  • Aktifkan logging diagnostik: Untuk pipeline rekayasa data yang kompleks, aktifkan paket diagnostik dan pastikan log driver dan eksekutor dipertahankan untuk membantu pemecahan masalah dan dukungan.

Langkah berikutnya