Untuk menjalankan kueri real-time data analisis bersama data operasional tanpa membuat pipeline yang kompleks, Anda dapat menggunakan federasi lakehouse di AlloyDB untuk PostgreSQL. Didukung oleh ekstensi bigquery_fdw, AlloyDB merutekan kueri Anda ke BigQuery untuk mengakses data live dan format terbuka seperti Apache Iceberg melalui tabel eksternal BigLake, sehingga tidak perlu migrasi ETL (ekstrak, transformasi, muat) yang kompleks.
Manfaat federasi lakehouse
Pendekatan federasi lakehouse menawarkan manfaat berikut:
- Zero ETL: kueri data analisis secara langsung tanpa membuat atau memelihara pipeline yang kompleks.
- Sintaksis yang familiar: gunakan sintaksis PostgreSQL standar untuk mengkueri data BigQuery.
- Insight real-time: akses data baru bersama tabel operasional Anda.
- Offload komputasi: gunakan mesin terdistribusi BigQuery untuk tugas berat melalui pengoptimalan pushdown.
- Akses yang diotorisasi: untuk memastikan hanya akun layanan yang diotorisasi yang dapat mengkueri data eksternal, gunakan Identity and Access Management (IAM) untuk kontrol akses terpusat.
Kasus penggunaan
Federasi lakehouse mendukung kasus penggunaan bisnis dan teknis berikut:
- Beban kerja pemrosesan transaksional dan analitis hibrida (HTAP): Anda dapat mengkueri data operasional real-time di AlloyDB dan data historis atau analitis di BigQuery atau Cloud Storage secara bersamaan tanpa memengaruhi performa transaksional.
- Insight real-time tanpa pipeline yang rapuh: Anda dapat menghindari latensi dan mode kegagalan proses ETL tradisional. Akses data analitis baru secara instan untuk membuat keputusan bisnis berdasarkan informasi terbaru.
- Materialisasi data untuk alur kerja agen: Anda dapat mematerialisasi data analitis eksternal ke AlloyDB untuk menggunakan columnar engine AlloyDB dan kapabilitas AI AlloyDB. Hal ini memungkinkan penelusuran vektor berperforma tinggi, embedding machine learning, dan alur kerja agen berbasis AI canggih pada data gabungan Anda.
Arsitektur dan alur data
Diagram berikut menunjukkan alur data dan interaksi komponen saat Anda menggunakan federasi lakehouse:
Berikut ini menjelaskan proses alur data untuk federasi lakehouse di AlloyDB:
- Pengiriman kueri: Anda mengirimkan kueri PostgreSQL standar ke instance AlloyDB.
- Perencanaan dan pengoptimalan kueri: perencana kueri AlloyDB mengidentifikasi tabel yang dipetakan ke set data BigQuery eksternal menggunakan wrapper data asing (FDW) BigQuery.
- Pengoptimalan pushdown: AlloyDB mengoptimalkan kueri dengan mendorong filter dan agregasi tertentu langsung ke BigQuery. Hal ini memastikan bahwa jaringan hanya mentransfer baris yang relevan dan difilter atau ringkasan yang telah diagregasi.
- Eksekusi dan pengambilan: BigQuery menjalankan bagian kuerinya—langsung memindai penyimpanan bawaan BigQuery atau membaca tabel Apache Iceberg yang disimpan di Cloud Storage—dan men-streaming set data yang dihasilkan kembali ke AlloyDB.
- Pemrosesan dan respons akhir: AlloyDB menggabungkan data eksternal dengan tabel operasional lokal, menyelesaikan pemrosesan kueri yang tersisa, dan menampilkan hasil akhir ke aplikasi Anda.
Pertimbangan jenis data untuk kueri gabungan
Saat Anda mengkueri tabel BigQuery eksternal dari AlloyDB menggunakan federasi lakehouse, perencana kueri AlloyDB menafsirkan jenis data BigQuery sebagai jenis data PostgreSQL yang sesuai. Memahami pemetaan ini sangat penting untuk menulis kueri yang benar dan untuk definisi tabel asing yang digunakan oleh ekstensi bigquery_fdw.
Jika jenis data BigQuery tidak memiliki pemetaan langsung atau memerlukan penanganan khusus, Anda mungkin perlu menggunakan fungsi CAST eksplisit dalam kueri atau membuat tampilan di BigQuery yang menyajikan data dengan jenis yang kompatibel.
Untuk mengetahui daftar jenis data yang didukung dan jenis PostgreSQL yang sesuai, lihat Pemetaan jenis data.
Kontrol keamanan dan akses
Akses ke data BigQuery dari AlloyDB dikelola melalui IAM. Anda harus memberikan peran IAM tertentu ke akun layanan cluster AlloyDB untuk menentukan set data dan tabel mana yang dapat dikueri. Hal ini membantu memastikan bahwa kueri gabungan mematuhi kebijakan tata kelola data terpusat organisasi Anda tanpa mengorbankan keamanan. Untuk mengetahui informasi selengkapnya, lihat Peran yang diperlukan.
Dorong ke bawah
Anda dapat menggunakan teknik pushdown filter dan agregat, yang mempercepat kueri dan mengurangi biaya dengan memfilter atau meringkas data di BigQuery sebelum dipindahkan atau diproses oleh AlloyDB. Pendekatan ini meminimalkan traffic jaringan dan penggunaan memori, sehingga Anda dapat menganalisis set data besar dengan cepat dan efisien tanpa melebihi batas resource.
Dorong ke bawah filter
Dorong ke bawah filter, juga dikenal sebagai pushdown predikat, adalah teknik pengoptimalan
yang memindahkan pemfilteran data sedekat mungkin dengan lapisan penyimpanan dengan
memindahkan filter kueri (menggunakan klausa WHERE) dari
AlloyDB ke BigQuery.
Dengan pushdown filter, Anda dapat menggunakan kueri SQL dengan klausa WHERE untuk mengakses subset data dari tabel jarak jauh. Data ini juga dapat diwujudkan pada tabel lokal atau dilampirkan sebagai partisi lokal ke tabel PostgreSQL.
Operasi yang didukung untuk pushdown filter mencakup hal berikut:
- Operator perbandingan standar:
=,<,>,<=,>=,<> - Operator logika:
AND,OR, danNOT - Pencocokan pola:
LIKEdanNOT LIKE - Pemeriksaan null:
IS NULLdanIS NOT NULL - Evaluasi dalam daftar:
INdanNOT IN
Dorong ke bawah agregat
Dorong ke bawah agregat adalah pengoptimalan database lanjutan yang melakukan perhitungan—misalnya, SUM, COUNT, AVG, atau GROUP BY—sedekat mungkin dengan lapisan penyimpanan. Pushdown ini mengevaluasi fungsi ringkasan langsung di BigQuery, yang dapat mengurangi jumlah baris yang ditampilkan ke AlloyDB secara signifikan.
Operasi yang didukung untuk pushdown agregat mencakup hal berikut:
SUMCOUNTAVGMINMAX
Batas bentang bawah
Dorong ke bawah batas (yang mencakup pushdown OFFSET) adalah teknik pengoptimalan yang memindahkan klausa LIMIT dan OFFSET kueri Anda dari AlloyDB ke BigQuery.
Hal ini memungkinkan BigQuery hanya menampilkan subset baris tertentu yang diminta, yang secara signifikan mengurangi traffic jaringan dan latensi kueri.
Dorong ke bawah batas akan otomatis diterapkan jika memungkinkan. Pastikan kondisi berikut terpenuhi:
- Kueri tidak menggunakan opsi
WITH TIESdalam klausaFETCH FIRST. - Ekspresi
LIMITdanOFFSETadalah konstanta atau ekspresi dasar yang dapat dievaluasi dari jarak jauh.
Biaya dan penagihan BigQuery
Wrapper data asing BigQuery bergantung pada hal berikut:
- Harga komputasi BigQuery
- Harga BigQuery Storage API
Untuk mengetahui informasi selengkapnya, lihat Harga BigQuery.
Project runtime
Di BigQuery, Anda dapat menyimpan data dalam satu project dan menjalankan kueri di project lain. Project yang menjalankan kueri dan mengakru biaya komputasi dikenal sebagai project runtime (atau project penagihan).
Dengan memisahkan project runtime dari project penyimpanan data, Anda dapat mengisolasi biaya komputasi ke pusat biaya tertentu, mengelola kuota secara independen, dan mengontrol pengeluaran di berbagai beban kerja tanpa memindahkan data yang mendasarinya.
Saat mengonfigurasi AlloyDB untuk mengakses data BigQuery, Anda dapat menentukan project runtime di tingkat server (berlaku untuk semua tabel asing terkait) atau di tingkat tabel individual. Jika Anda tidak menentukan project runtime, AlloyDB akan menggunakan project yang memiliki data secara default.
Batasan
AlloyDB dan BigQuery mungkin menggunakan kolasi default yang berbeda, yang dapat menghasilkan pengurutan data atau hasil perbandingan string yang berbeda antara kedua sistem. Misalnya, kolasi PostgreSQL default dalam versi 15, 16, dan 17 mungkin menangani kepekaan huruf besar/kecil secara berbeda selama pengurutan dibandingkan dengan kolasi default BigQuery, yang mengevaluasi string secara ketat berdasarkan titik kode Unicode-nya.
Untuk bagian kueri yang dijalankan dari jarak jauh di BigQuery, kolasi akan mengikuti setelan BigQuery. Untuk mengurangi konflik kolasi, pertimbangkan untuk menggunakan kolasi
C.UTF-8tanpa ICU di AlloyDB dan kolasi default (kosong) di BigQuery.Kueri yang menampilkan data dalam jumlah besar dari BigQuery, setelah pushdown, tidak dioptimalkan.
Saat Anda membuat tabel asing, AlloyDB tidak secara aktif memvalidasi keberadaan atau skema tabel BigQuery jarak jauh.
Jika kueri gabungan memerlukan pembacaan data dalam jumlah besar—misalnya, jika pushdown filter tidak dapat diterapkan—kueri mungkin gagal karena batas ukuran respons BigQuery API. Batas ukuran respons maksimum BigQuery masih berlaku. Untuk mengetahui informasi selengkapnya tentang batas ini, lihat Kuota dan batas.
PostgreSQL mendukung presisi yang lebih besar untuk komputasi perantara, sedangkan BigQuery mengontrol presisi desimal secara ketat. Perbedaan ini dapat menyebabkan kehilangan presisi atau error overflow selama perhitungan yang kompleks. Untuk mengetahui informasi selengkapnya, lihat Jenis desimal.
Database Migration Service tidak mendukung migrasi tabel asing yang dibuat menggunakan ekstensi
bigquery_fdw. Sebagai solusinya, Anda dapat mengecualikan tabel asing dari tugas migrasi atau menghapusnya sebelum memulai migrasi, lalu membuatnya kembali di cluster AlloyDB tujuan setelah migrasi selesai.Saat Anda mengkueri tabel asing menggunakan ekstensi
bigquery_fdw, BigQuery akan mengevaluasi izin akses data berdasarkan akun layanan cluster AlloyDB. Meskipun pengguna database login menggunakan autentikasi database IAM, izin pengguna IAM individual mereka tidak diperiksa terhadap tabel BigQuery jarak jauh. Untuk mengetahui informasi selengkapnya, lihat Memberikan akses AlloyDB ke set data BigQuery.