Mengubah tabel memungkinkan Anda mengembangkan skema (seperti menambahkan kolom) dan memperbarui properti metadata tabel.
Perubahan dikelola oleh katalog runtime Lakehouse.
Sebelum memulai
-
Pastikan penagihan diaktifkan untuk Google Cloud project Anda.
-
Aktifkan BigLake API.
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 mengubah tabel, minta administrator Anda untuk memberi Anda peran IAM berikut di project dan bucket penyimpanan Anda:
-
Ubah tabel dalam mode penjualan kredensial:
Editor BigLake (
roles/biglake.editor) - project -
Ubah tabel dalam mode non-penjualan kredensial:
- Editor BigLake (
roles/biglake.editor) - project - Pengguna Objek Penyimpanan (
roles/storage.objectUser) - bucket Cloud Storage
- Editor 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 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:
- Dari BigQuery: BigQuery DML dan pengelolaan tabel otomatis diaktifkan secara default.
- Dari mesin open source: Untuk ikut serta, Anda harus mengonfigurasi properti tabel secara eksplisit. Lihat Mengonfigurasi opsi tabel untuk mengetahui informasi selengkapnya.
Lihat Mengonfigurasi opsi tabel options untuk mengetahui petunjuk mendetail.
Mengubah tabel
Tambahkan kolom ke tabel:
Konsol
Di Google Cloud konsol, buka Lakehouse.
Pilih katalog yang ada atau buat katalog jika Anda belum memilikinya.
Di tabel Namespace details, pilih tabel dan luaskan opsi menu.
Klik Edit.
Perbarui nilai tabel dalam dialog. Di bagian Properties , Anda dapat menambahkan atau mengubah properti seperti
gcp.biglake.bigquery-dml.enableddangcp.biglake.table-management.enableduntuk mengaktifkan atau menonaktifkan BigQuery DML atau pengelolaan tabel otomatis.Misalnya, Anda dapat menetapkan nilai ini ke
trueuntuk mengaktifkan kemampuan ini. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi opsi tabel.Klik Save.
Spark
spark.sql("ALTER TABLE TABLE_NAME ADD COLUMNS ( desc string);")
spark.sql("DESCRIBE NAMESPACE_NAME.TABLE_NAME").show()
Untuk mengaktifkan interoperabilitas baca/tulis dan pengelolaan tabel, tetapkan properti menggunakan klausa SET TBLPROPERTIES:
SET TBLPROPERTIES (
'gcp.biglake.bigquery-dml.enabled' = true,
'gcp.biglake.table-management.enabled' = true
)
Trino
ALTER TABLE TABLE_NAME ADD COLUMN desc varchar;
DESCRIBE SCHEMA_NAME.TABLE_NAME;
Untuk mengaktifkan interoperabilitas baca/tulis dan pengelolaan tabel, Anda dapat mengonfigurasi properti tabel berikut:
'gcp.biglake.bigquery-dml.enabled' = true'gcp.biglake.table-management.enabled' = true
gcloud
Untuk memperbarui properti tabel menggunakan gcloud, jalankan perintah gcloud biglake iceberg tables update.
gcloud biglake iceberg tables update TABLE_NAME \ --project="PROJECT_ID" \ --catalog="CATALOG_ID" \ --namespace="NAMESPACE_NAME" \ --update-properties="KEY=VALUE,..."
Ganti kode berikut:
TABLE_NAME: nama tabel Iceberg Anda.PROJECT_ID: project ID Anda Google Cloud .CATALOG_ID: ID katalog Anda.NAMESPACE_NAME: nama namespace katalog Anda.KEY=VALUE,...: properti tabel yang akan ditambahkan atau diperbarui.
BigQuery
Untuk memperbarui properti tabel untuk tabel Apache Iceberg di katalog runtime Lakehouse dari BigQuery (seperti mengaktifkan BigQuery DML atau pengelolaan tabel otomatis), gunakan pernyataan ALTER TABLE GoogleSQL berikut:
ALTER TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME`
SET OPTIONS (`properties.gcp.biglake.table-management` = "enabled");
Untuk memperbarui skema dan menambahkan kolom di tabel Apache Iceberg di katalog runtime Lakehouse dari BigQuery, gunakan pernyataan ALTER TABLE GoogleSQL berikut:
ALTER TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME`
ADD COLUMN new_column STRING;
Ganti kode berikut:
PROJECT_ID: project ID Anda Google Cloud .CATALOG_ID: ID katalog runtime Lakehouse Anda.NAMESPACE: nama namespace Iceberg Anda.TABLE_NAME: nama tabel Iceberg Anda.
REST
Untuk melakukan perubahan pada tabel Iceberg menggunakan REST API, buat POST
permintaan ke UpdateIcebergTable (CommitTable) endpoint:
POST /iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/CATALOG_ID/namespaces/NAMESPACE_NAME/tables/TABLE_NAME
Isi permintaan harus berisi payload JSON CommitTableRequest Iceberg yang valid yang menentukan persyaratan dasar dan daftar pembaruan metadata yang akan diterapkan.
Ganti kode berikut:
PROJECT_ID: project ID Anda Google Cloud .CATALOG_ID: ID katalog Anda.NAMESPACE_NAME: nama namespace katalog Anda.TABLE_NAME: nama tabel Iceberg Anda.
Langkah berikutnya
- Pelajari cara menghapus tabel.