Membuat kueri tabel

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

  1. Pastikan penagihan diaktifkan untuk Google Cloud project Anda.

  2. Aktifkan BigLake API.

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

    Mengaktifkan API

  3. Siapkan katalog runtime Lakehouse katalog dengan endpoint katalog REST Apache Iceberg.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk membuat kueri tabel, minta administrator Anda untuk memberi Anda peran IAM berikut di project dan bucket penyimpanan Anda:

  • Membaca data tabel dalam mode penjualan kredensial: BigLake Viewer (roles/biglake.viewer) - project
  • Membaca data tabel dalam mode non-penjualan kredensial:
    • BigLake Viewer (roles/biglake.viewer) - project
    • Storage Object Viewer (roles/storage.objectViewer) - bucket Cloud Storage

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 tables.

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 BigQuery Data Manipulation Language (DML) dan pengelolaan tabel otomatis, dengan mengonfigurasi properti tabel tertentu. Fitur ini diaktifkan dengan cara yang berbeda, bergantung pada tempat tabel dibuat:

Saat membuat kueri tabel dari BigQuery, Anda dapat mengakses tabel Iceberg standar serta tabel yang diaktifkan untuk kemampuan terkelola BigQuery. Lihat Mengonfigurasi opsi tabel options 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: project yang memiliki katalog di katalog runtime Lakehouse.Google Cloud Project yang dipilih di konsol akan ditagih untuk kueri tersebut. Google Cloud Google Cloud

  • 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 memberinya nama iceberg-bucket, nama katalog dan nama bucket Anda adalah iceberg-bucket. ID ini akan digunakan nanti saat Anda membuat kueri katalog di BigQuery, menggunakan sintaksis P.C.N.T. Misalnya, 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 Lakehouse Iceberg 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 membuat kueri data berdasarkan 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 berdasarkan ID snapshot

Untuk membuat kueri data berdasarkan ID snapshot tertentu:

Spark

SELECT * FROM NAMESPACE.TABLE_NAME VERSION AS OF 10963874102873;

Membuat kueri berdasarkan tag

Untuk membuat tag dan membuat kueri data berdasarkan 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 membuat kueri data berdasarkan 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