Arsitektur teknis Lakehouse tanpa batas 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 interoperabel berperforma tinggi di Cloud Storage.
Katalog: Katalog runtime Lakehouse menyediakan satu sumber tepercaya untuk mengelola metadata. Katalog 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 dengan 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 workload dan menghindari keterikatan pada 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 untuk data scientist dan analis.
Hierarki resource
Lakehouse Google Cloud mengatur data menggunakan hierarki yang selaras 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 ke katalog, Anda menggunakan endpoint tertentu, seperti yang dijelaskan dalam daftar berikut.
- 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.
- Katalog: Penampung logis dalam layanan katalog runtime service. Dalam struktur penamaan Project/Catalog/Namespace/Table (P.C.N.T), ini mewakili instance katalog tertentu yang Anda kueri.
- Namespace: Pengelompokan logis tabel dalam katalog. Untuk pengguna yang sudah familiar dengan BigQuery, namespace secara fungsional mirip dengan set data.
- Tabel: Entitas tertentu yang mengarah ke data di
Cloud Storage. Metadata tabel berisi skema, informasi partisi, dan pointer ke status tabel saat ini melalui file
metadata.jsonApache 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 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 secara langsung dengan katalog BigQuery. Antarmuka ini terutama digunakan 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). Hal ini memungkinkan Anda 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 atas di Google Cloud. Katalog ini bertindak sebagai penampung root yang menghosting instance katalog individual Anda, sehingga memusatkan penemuan metadata di seluruh mesin kueri yang berbeda.
Katalog ini mengimplementasikan Apache Iceberg REST Catalog API open source untuk mengelola namespace dan tabel, serta menyediakan ekstensi khusus untuk pengelolaan katalog.
Untuk mengetahui informasi lebih mendalam tentang layanan metastore, 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 warehouse 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 mencakup hal berikut:
- Asosiasi penyimpanan: Hubungan antara katalog dan penyimpanan yang mendasarinya bergantung pada jenis katalog yang Anda konfigurasi.
- Replikasi regional: Region katalog otomatis cocok dengan region bucket yang mendasarinya.
- Delegasi akses: Administrator dapat mengaktifkan penjualan kredensial di katalog untuk mendelegasikan akses, sehingga kredensial yang berlaku singkat dengan cakupan yang dikurangi 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. Namespace menyediakan struktur untuk mengatur dan mengelola kontrol akses untuk tabel.
Karakteristik utama namespace mencakup 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 warehouse 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. Tabel 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 berada di bawah jalur namespace induk, dan lokasi tabel yang dihasilkan akan otomatis menerima akhiran 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, Anda harus mengupgrade-nya 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 terhubung 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. Tabel ini mendukung akses yang didelegasikan melalui koneksi untuk data yang disimpan di Cloud Storage, Amazon S3, atau Azure Blob Storage.
Untuk perbandingan mendetail tentang opsi ini, lihat Memahami jenis dan kemampuan tabel.
Urutan pemrosesan kueri
Saat Anda mengirimkan kueri ke tabel Apache Iceberg yang dikelola oleh Lakehouse, permintaan akan mengikuti jalur tertentu untuk menerapkan kebijakan dan mengambil metadata sebelum data diproses.
- Pengiriman: Anda mengirimkan kueri SQL ke mesin yang kompatibel seperti Apache Spark, Trino, atau BigQuery.
- Permintaan metadata: Mesin meminta metadata tabel dari katalog runtime Lakehouse untuk mengidentifikasi tabel dan lokasi metadatanya.
- Otorisasi: Jika didukung oleh endpoint yang Anda gunakan, katalog akan memvalidasi permintaan terhadap Identity and Access Management (IAM) dan kebijakan keamanan terperinci.
- Respons metadata: Katalog menampilkan metadata. Jika penjualan kredensial diaktifkan, katalog juga akan memberikan token yang berlaku singkat untuk membantu akses penyimpanan yang aman.
- Pengambilan data: Mesin menggunakan metadata dan token opsional untuk membaca file data langsung dari Cloud Storage.
- Eksekusi: Mesin memproses data dan menampilkan hasilnya.
Praktik terbaik
Saat membuat arsitektur dan mengoperasikan data lakehouse di Google Cloud, pertimbangkan praktik terbaik berikut:
- Adopsi arsitektur medali: Strukturkan data warehouse Anda ke dalam lapisan logis progresif (bronze untuk penyerapan mentah, silver untuk data yang dibersihkan dan disesuaikan, serta gold untuk agregasi tingkat bisnis yang dikurasi). Gunakan BigQuery untuk lapisan konsumsi gold guna memaksimalkan performa dan konkurensi kueri.
- Gunakan template sesi untuk workload interaktif: Untuk analisis eksplorasi dan penulisan notebook, gunakan template sesi untuk menstandarkan 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 observabilitas, yang membantu Anda memfilter dan melacak eksekusi tugas dalam Cloud Logging dan Google Cloud konsol.
- Aktifkan logging diagnostik: Untuk pipeline rekayasa data yang kompleks, aktifkan paket diagnostik dan bantu memastikan log driver dan eksekutor dipertahankan untuk membantu pemecahan masalah dan dukungan.
Langkah berikutnya
- Untuk mengetahui informasi lebih mendalam tentang layanan metastore, lihat About the Lakehouse runtime catalog.
- Gunakan katalog runtime Lakehouse dengan Apache Spark, BigQuery, dan endpoint katalog REST Apache Iceberg.