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: Cloud Storage dan penyimpanan 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. Katalog ini memusatkan penemuan metadata di beberapa mesin menggunakan berbagai opsi kompatibilitas, seperti endpoint katalog REST Apache Iceberg. Pendaftaran tabel ke katalog secara otomatis mendaftarkan entri ke 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 memanfaatkan Apache Spark open source dengan pengoptimalan eksekusi untuk memastikan portabilitas workload 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 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 di bawah.

  1. Katalog runtime lakehouse: Resource layanan regional tingkat teratas di Google Cloud yang menghosting metadata Anda. Untuk menghubungkan mesin kueri ke layanan ini dan mengelola katalog pokok, 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 merepresentasikan instance katalog spesifik yang Anda kueri.
  3. Namespace: Pengelompokan tabel secara logis dalam katalog. Untuk pengguna yang sudah terbiasa dengan 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. Antarmuka ini direkomendasikan untuk workload baru dan menawarkan interoperabilitas baca dan tulis penuh.

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

  • Endpoint katalog Apache Hive: Menyediakan kompatibilitas untuk workload open source yang bergantung pada antarmuka metastore Apache Hive (HMS). Dengan demikian, 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. Folder ini berfungsi sebagai container root yang menghosting setiap instance katalog Anda, memusatkan penemuan metadata di berbagai mesin kueri yang berbeda.

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 satu bucket warehouse Cloud Storage. Dalam struktur penamaan Project.Catalog.Namespace.Table (P.C.N.T), katalog merepresentasikan instance metastore unik yang menghubungkan metadata tabel terbuka Anda dengan mesin kueri.

Karakteristik utama katalog meliputi:

  • Pengaitan penyimpanan: Anda hanya dapat mengaitkan satu katalog dengan satu bucket Cloud Storage.
  • Replikasi regional: Region katalog otomatis cocok dengan region bucket Cloud Storage yang mendasarinya.
  • Delegasi akses: Administrator dapat mengaktifkan penyediaan kredensial di katalog untuk mendelegasikan akses, sehingga kredensial yang memiliki cakupan lebih sempit dan masa berlaku singkat dapat dibuat secara otomatis, bukan memberikan izin bucket langsung kepada pengguna.

Namespace

Namespace adalah pengelompokan logis tabel dalam katalog, yang berfungsi serupa dengan database, skema, atau set data BigQuery. Namespace 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.
  • 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. Fitur ini menawarkan kompatibilitas dan pengelolaan terbuka melalui endpoint REST katalog runtime Lakehouse.

Didukung oleh BigQuery

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

Untuk perbandingan mendetail tentang opsi ini, lihat Ringkasan tabel.

Format tabel yang didukung

Hanya tabel Apache Iceberg V2 yang didukung; tabel Iceberg V1 tidak didukung. Jika memiliki tabel Iceberg V1 yang sudah ada, Anda harus mengupgradenya ke V2 (misalnya, dengan menjalankan ALTER TABLE catalog.schema.table SET TBLPROPERTIES ('format-version'='2'); atau menggunakan operasi mesin yang serupa) sebelum menggunakannya dengan Lakehouse untuk Apache Iceberg.

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, layanan ini 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 beban kerja 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, sehingga memudahkan pemfilteran dan pelacakan 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 menyederhanakan pemecahan masalah dan dukungan.

Langkah berikutnya