Membuat kueri tabel akan membaca data dari file Cloud Storage yang mendasarinya menggunakan metadata yang dikelola oleh katalog runtime Lakehouse.
Anda dapat menjalankan kueri dari mesin open source seperti Spark dan Trino, atau langsung dari BigQuery menggunakan sintaksis nama tabel empat bagian (sintaksis P.C.N.T).
Sebelum memulai
-
Pastikan penagihan diaktifkan untuk project Google Cloud Anda.
-
Aktifkan BigLake API, jika belum diaktifkan.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran. - Siapkan katalog runtime Lakehouse dengan endpoint katalog REST Apache Iceberg.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengkueri tabel, minta administrator untuk memberi Anda peran IAM berikut pada project dan bucket penyimpanan Anda:
-
Membaca data tabel dalam mode penjualan kredensial: BigLake Viewer (
roles/biglake.viewer) - project -
Membaca data tabel dalam mode non-credential vending:
- BigLake Viewer (
roles/biglake.viewer) - project - Storage Object Viewer (
roles/storage.objectViewer) - bucket Cloud Storage
- BigLake Viewer (
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Kemampuan dan dukungan tabel
Saat menggunakan tabel di katalog runtime Lakehouse, sebaiknya pahami berbagai jenis tabel dan kemampuan keikutsertaannya. Untuk mempelajari lebih lanjut cara menggunakan tabel Apache Iceberg secara khusus, lihat Ringkasan tabel Apache Iceberg.
Tabel Iceberg yang didukung
Hanya tabel Apache Iceberg V2 (GA) dan V3 (Pratinjau) yang didukung. Tabel Iceberg V1 tidak didukung. Untuk mengupgrade tabel V1 yang ada, lihat Mengupgrade tabel Iceberg V1 ke V2.
Menggunakan opsi tabel (Pratinjau)
Anda dapat memilih untuk menggunakan kemampuan terkelola BigQuery, seperti Bahasa Pengolahan Data (DML) BigQuery dan pengelolaan tabel otomatis, dengan mengonfigurasi properti tabel tertentu. Fitur ini diaktifkan dengan cara yang berbeda, bergantung pada tempat tabel dibuat:
- Dari BigQuery: DML BigQuery dan pengelolaan tabel otomatis diaktifkan secara default.
- Dari mesin open source: Untuk mengaktifkan, Anda harus mengonfigurasi properti tabel secara eksplisit. Lihat Mengonfigurasi opsi tabel untuk mengetahui informasi selengkapnya.
Saat membuat kueri tabel dari BigQuery, Anda dapat mengakses tabel Iceberg standar serta tabel yang diaktifkan untuk kemampuan terkelola BigQuery. Lihat Mengonfigurasi opsi tabel untuk mengetahui petunjuk mendetail.
Membuat kueri tabel
Pilih semua data dari tabel:
Spark
spark.sql("SELECT * FROM TABLE_NAME;").show()
Trino
SELECT * FROM TABLE_NAME;
BigQuery
Untuk mengkueri tabel Apache Iceberg di katalog runtime Lakehouse dari BigQuery, gunakan nama tabel empat bagian dalam kueri Anda dengan format berikut: PROJECT_NAME.CATALOG_ID.NAMESPACE_OR_SCHEMA_NAME.TABLE_NAME.
SELECT * FROM `PROJECT_NAME.CATALOG_ID.NAMESPACE_OR_SCHEMA_NAME.TABLE_NAME`;
Ganti nilai berikut:
PROJECT_NAME:Google Cloud project yang memiliki katalog di katalog runtime Lakehouse. ProjectGoogle Cloud yang dipilih di konsol Google Cloud akan ditagih untuk kueri.CATALOG_ID: ID katalog runtime Lakehouse yang ditentukan saat katalog dibuat. ID ini digunakan sebagai nama katalog dalam kueri BigQuery.ID ini juga merupakan nama bucket Cloud Storage Anda.
Misalnya, jika Anda membuat bucket untuk menyimpan katalog dan menamainya
iceberg-bucket, nama katalog dan nama bucket Anda adalahiceberg-bucket. Ini akan digunakan nanti saat Anda mengkueri katalog di BigQuery, menggunakan sintaksis P.C.N.T. Contohnya,my-project.catalog_id.quickstart_namespace.quickstart_table.NAMESPACE_OR_SCHEMA_NAME: namespace tabel jika menggunakan Spark atau nama skema tabel jika menggunakan Trino.TABLE_NAME: nama tabel Anda.
Membuat kueri menggunakan perjalanan waktu
Anda dapat membuat kueri data historis dari tabel Apache Iceberg terkelola menggunakan perjalanan waktu. Anda dapat melakukan perjalanan waktu dari BigQuery menggunakan klausa FOR
SYSTEM_TIME AS OF, atau dari mesin open source seperti Spark menggunakan ID snapshot, stempel waktu, tag, atau cabang.
Membuat kueri berdasarkan stempel waktu
Untuk mengkueri data pada stempel waktu tertentu:
Spark
SELECT * FROM NAMESPACE.TABLE_NAME TIMESTAMP AS OF '2026-02-26 01:21:00';
BigQuery
SELECT * FROM `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME` FOR SYSTEM_TIME AS OF '2026-02-26 01:21:00';
Membuat kueri menurut ID snapshot
Untuk membuat kueri data pada ID snapshot tertentu:
Spark
SELECT * FROM NAMESPACE.TABLE_NAME VERSION AS OF 10963874102873;
Membuat kueri berdasarkan tag
Untuk membuat tag dan mengkueri data pada tag tersebut:
Spark
-- Create tag 'historical-snapshot'
ALTER TABLE NAMESPACE.TABLE_NAME CREATE TAG 'historical-snapshot' AS OF VERSION 123456789012345;
-- Query by tag
SELECT * FROM NAMESPACE.TABLE_NAME VERSION AS OF 'historical-snapshot';
Membuat kueri berdasarkan cabang
Untuk membuat cabang dan mengkueri data pada cabang tersebut:
Spark
-- Create branch 'audit-branch'
ALTER TABLE NAMESPACE.TABLE_NAME CREATE BRANCH 'audit-branch' AS OF VERSION 123456789012345;
-- Query by branch
SELECT * FROM NAMESPACE.TABLE_NAME VERSION AS OF 'audit-branch';
Langkah berikutnya
- Pelajari cara mengubah tabel.