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
-
Verifikasi bahwa 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 Admin Penggunaan Layanan (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 membuat kueri tabel, minta administrator untuk memberi Anda peran IAM berikut di project dan bucket penyimpanan Anda:
-
Membaca data tabel dalam mode penyediaan kredensial:
BigLake Viewer (
roles/biglake.viewer) - project -
Membaca data tabel dalam mode penyediaan non-kredensial:
- Pelihat BigLake (
roles/biglake.viewer) - project - Storage Object Viewer (
roles/storage.objectViewer) - bucket Cloud Storage
- Pelihat BigLake (
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 dalam 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 memilih ikut serta, 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 yang dikelola 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 membuat kueri 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. Project Google 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 membuat kueri 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.
Kueri menurut stempel waktu
Untuk membuat kueri 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';
Kueri menurut ID snapshot
Untuk membuat kueri data per ID snapshot tertentu:
Spark
SELECT * FROM NAMESPACE.TABLE_NAME VERSION AS OF 10963874102873;
Kueri menurut 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';
Mengkueri menurut 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.