Mengubah tabel memungkinkan Anda mengembangkan skema (seperti menambahkan kolom) dan memperbarui properti metadata tabel.
Modifikasi dikelola oleh katalog runtime Lakehouse dan dilakukan melalui
spesifikasi Iceberg REST Catalog API open source (POST /v1/{prefix}/namespaces/{namespace}/tables/{table}
untuk CommitTable/UpdateIcebergTable).
Sebelum memulai
Lihat ringkasan tabel untuk memahami berbagai jenis tabel dan implikasi penggunaannya.
-
Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.
-
Mengaktifkan BigLake API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengubah tabel, minta administrator untuk memberi Anda peran IAM berikut di project dan bucket penyimpanan Anda:
-
Mengubah tabel dalam mode penyediaan kredensial:
BigLake Editor (
roles/biglake.editor) - project -
Mengubah tabel dalam mode penyediaan non-kredensial:
- BigLake Editor (
roles/biglake.editor) - project - Storage Object User (
roles/storage.objectUser) - bucket Cloud Storage
- BigLake Editor (
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.
Mengubah tabel
Menambahkan kolom ke tabel:
Konsol
Di konsol Google Cloud , 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.
Klik Simpan.
Spark
spark.sql("ALTER TABLE TABLE_NAME ADD COLUMNS ( desc string);")
spark.sql("DESCRIBE NAMESPACE_NAME.TABLE_NAME").show()
Trino
ALTER TABLE TABLE_NAME ADD COLUMN desc varchar;
DESCRIBE SCHEMA_NAME.TABLE_NAME;
REST
Untuk melakukan perubahan pada tabel Iceberg menggunakan REST API, buat permintaan POST
ke endpoint UpdateIcebergTable (CommitTable):
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 update metadata yang akan diterapkan.
Ganti kode berikut:
PROJECT_ID: Google Cloud Project ID Anda.CATALOG_ID: ID katalog runtime Lakehouse Anda.NAMESPACE_NAME: nama namespace katalog Anda.TABLE_NAME: nama tabel Iceberg Anda.
Langkah berikutnya
- Pelajari cara menghapus tabel.