Membuat tabel Apache Iceberg akan mendaftarkan metadata tabel dalam namespace di katalog runtime Lakehouse.
Jika Anda tidak menentukan lokasi penyimpanan eksplisit di tingkat namespace atau tabel selama pembuatan tabel, sistem akan otomatis membuat metadata tabel dan direktori data di lokasi default katalog (berasal dari bucket Cloud Storage dasar katalog) dengan menambahkan ID namespace dan tabel.
Selain integrasi mesin kueri, katalog runtime Lakehouse menerapkan spesifikasi Iceberg REST Catalog API open source (POST /v1/{prefix}/namespaces/{namespace}/tables), yang memungkinkan klien REST yang kompatibel membuat tabel secara langsung.
Sebelum memulai
Lihat ringkasan tabel untuk memahami berbagai jenis tabel dan implikasi penggunaannya.
-
Pastikan penagihan diaktifkan untuk Google Cloud project 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 membuat tabel, minta administrator untuk memberi Anda peran IAM berikut di project dan bucket penyimpanan:
-
Semua:
- Admin BigLake (
roles/biglake.admin) - project Anda - Admin Storage (
roles/storage.admin) - bucket Cloud Storage target
- Admin 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.
Membuat tabel
Buat tabel Iceberg.
Konsol
Di Google Cloud konsol, buka Lakehouse.
Pilih katalog yang ada atau buat katalog jika Anda belum memilikinya.
Di panel menu, klik +Create Table.
Untuk Table format, pilih Iceberg.
Untuk Table name, masukkan nama tabel yang unik.
Klik Create.
Tabel Anda akan muncul di halaman Namespace details.
Spark
spark.sql("CREATE TABLE NAMESPACE_NAME.TABLE_NAME (id int, data string) USING ICEBERG;")
spark.sql("DESCRIBE NAMESPACE_NAME.TABLE_NAME").show()
Ganti nilai berikut:
Trino
CREATE TABLE SCHEMA_NAME.TABLE_NAME (id int, data varchar);
DESCRIBE SCHEMA_NAME.TABLE_NAME;
Ganti nilai berikut:
SCHEMA_NAME: nama skema AndaTABLE_NAME: nama untuk tabel Anda
Jika menggunakan federasi katalog BigQuery dengan Trino, Anda tidak dapat menentukan lokasi untuk tabel. Lokasi default skema akan selalu digunakan.
REST
Untuk membuat tabel Iceberg menggunakan REST API, buat permintaan POST ke endpoint CreateIcebergTable:
POST /iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/CATALOG_ID/namespaces/NAMESPACE_NAME/tables
Isi permintaan harus berisi payload JSON CreateTableRequest Iceberg yang valid yang menentukan skema tabel, spesifikasi partisi, dan properti awal.
Ganti kode berikut:
PROJECT_ID: ID project Anda Google Cloud .CATALOG_ID: ID katalog runtime Lakehouse Anda.NAMESPACE_NAME: nama namespace katalog Anda.
Langkah berikutnya
- Pelajari cara mencantumkan tabel.
- Pelajari cara menyisipkan data ke dalam tabel.