Mengelola tabel yang dikelompokkan
Dokumen ini menjelaskan cara mendapatkan informasi tentang dan mengontrol akses ke tabel berklaster di BigQuery.
Untuk informasi selengkapnya, lihat referensi berikut:
- Untuk mempelajari dukungan tabel yang dikelompokkan di BigQuery, lihat Pengantar tabel yang dikelompokkan.
- Untuk mempelajari cara membuat tabel yang dikelompokkan, lihat Membuat tabel yang dikelompokkan.
Sebelum memulai
Untuk mendapatkan informasi tentang tabel, Anda harus memiliki izin bigquery.tables.get
. Peran IAM bawaan berikut menyertakan izin bigquery.tables.get
:
roles/bigquery.metadataViewer
roles/bigquery.dataViewer
roles/bigquery.dataOwner
roles/bigquery.dataEditor
roles/bigquery.admin
Selain itu, jika pengguna memiliki izin bigquery.datasets.create
, saat pengguna tersebut membuat set data, ia diberi akses bigquery.dataOwner
.
Akses bigquery.dataOwner
memberi pengguna kemampuan untuk mendapatkan informasi tentang tabel dalam set data.
Untuk mengetahui informasi lebih lanjut tentang peran dan izin IAM di BigQuery, baca Peran dan izin bawaan.
Mengontrol akses ke tabel yang dikelompokkan
Untuk mengonfigurasi akses ke tabel dan tabel virtual, Anda dapat memberikan peran IAM ke entity di tingkat berikut, yang tercantum sesuai urutan rentang resource yang diizinkan (terbesar hingga terkecil):
- tingkat tinggi dalam hierarki resource seperti tingkat project, folder, atau organisasiGoogle Cloud
- tingkat set data
- tingkat tabel atau tabel virtual
Anda juga dapat membatasi akses data dalam tabel menggunakan metode berikut:
Akses dengan resource apa pun yang dilindungi oleh IAM bersifat tambahan. Misalnya, jika suatu entity tidak memiliki akses di tingkat tinggi seperti project, Anda dapat memberikan akses ke entity tersebut di tingkat set data, lalu entity akan memiliki akses ke tabel dan tabel virtual dalam set data. Demikian pula, jika entity tidak memiliki akses di tingkat tinggi atau tingkat set data, Anda dapat memberikan akses ke entity di tingkat tabel atau tabel virtual.
Memberikan peran IAM di tingkat yang lebih tinggi dalam hierarki resource Google Cloud, seperti tingkat project, folder, atau organisasi, akan memberi entity akses ke berbagai resource.Google CloudMisalnya, memberikan peran ke suatu entity di tingkat project akan memberikan izin entity yang berlaku untuk semua set data di seluruh project.
Memberikan peran di tingkat set data akan menentukan operasi yang diizinkan untuk dilakukan oleh entity di tabel dan tabel virtual di set data tertentu tersebut, meskipun entity tidak memiliki akses di tingkat yang lebih tinggi. Untuk informasi tentang cara mengonfigurasi kontrol akses tingkat set data, baca Mengontrol akses ke set data.
Memberikan peran di tingkat tabel atau tabel virtual akan menentukan operasi yang diizinkan untuk dilakukan oleh entity pada tabel dan tabel virtual tertentu, meskipun jika entity tersebut tidak memiliki akses di tingkat yang lebih tinggi. Untuk informasi tentang cara mengonfigurasi kontrol akses tingkat tabel, lihat Mengontrol akses ke tabel dan tabel virtual.
Anda juga dapat membuat peran khusus IAM. Jika Anda membuat peran khusus, izin yang diberikan bergantung pada operasi tertentu yang Anda inginkan untuk dapat dilakukan oleh entity.
Anda tidak dapat menetapkan izin "tolak" pada resource apa pun yang dilindungi oleh IAM.
Untuk informasi selengkapnya tentang peran dan izin, lihat Memahami peran dalam dokumentasi IAM serta Peran dan izin IAM BigQuery.
Mendapatkan informasi tentang tabel yang dikelompokkan
Pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka panel Resources.
Klik nama set data Anda untuk meluaskannya, lalu klik nama tabel yang ingin Anda lihat.
Klik Details.
Detail tabel ditampilkan, termasuk kolom pengelompokan.
SQL
Untuk tabel yang dikelompokkan, Anda dapat membuat kueri kolom CLUSTERING_ORDINAL_POSITION
di tabel virtual INFORMATION_SCHEMA.COLUMNS
untuk menemukan offset diindeks 1 pada kolom dalam pengelompokan kolom tabel:
Di Google Cloud konsol, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
CREATE TABLE mydataset.data (column1 INT64, column2 INT64) CLUSTER BY column1, column2; SELECT column_name, clustering_ordinal_position FROM mydataset.INFORMATION_SCHEMA.COLUMNS;
Klik
Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.
Posisi ordinal pengelompokan adalah 1 untuk column1
dan 2 untuk column2
.
Metadata tabel lainnya tersedia melalui tabel virtual TABLES
, TABLE_OPTIONS
, COLUMNS
, dan COLUMN_FIELD_PATH
di INFORMATION_SCHEMA
.
bq
Berikan perintah bq show
untuk menampilkan semua informasi tabel. Gunakan flag --schema
untuk hanya menampilkan informasi skema tabel. Flag --format
dapat digunakan untuk mengontrol output.
Jika Anda mendapatkan informasi tentang tabel dalam project selain project default Anda, tambahkan project ID ke set data dalam format berikut: project_id:dataset
.
bq show \ --schema \ --format=prettyjson \ PROJECT_ID:DATASET.TABLE
Ganti yang berikut ini:
PROJECT_ID
: project ID AndaDATASET
: nama set dataTABLE
: nama tabel
Contoh:
Masukkan perintah berikut untuk menampilkan semua informasi tentang myclusteredtable
di mydataset
. mydataset
di project default Anda.
bq show --format=prettyjson mydataset.myclusteredtable
Output akan terlihat seperti contoh:
{ "clustering": { "fields": [ "customer_id" ] }, ... }
API
Panggil metode bigquery.tables.get
dan berikan parameter yang relevan.
Mencantumkan tabel yang dikelompokkan dalam set data
Izin yang diperlukan untuk mencantumkan tabel yang dikelompokkan dan langkah-langkah untuk mencantumkannya sama seperti tabel standar. Untuk mengetahui informasi selengkapnya, lihat Mencantumkan tabel dalam set data.
Mengubah spesifikasi pengelompokan
Anda dapat mengubah atau menghapus spesifikasi pengelompokan tabel, atau mengubah kumpulan kolom yang dikelompokkan dalam tabel yang dikelompokkan. Metode memperbarui kumpulan kolom pengelompokan ini berguna untuk tabel yang menggunakan streaming insert berkelanjutan karena tabel tersebut tidak dapat ditukar dengan mudah dengan metode lain.
Ikuti langkah-langkah berikut untuk menerapkan spesifikasi pengelompokan baru ke tabel yang tidak berpartisi atau berpartisi.
Pada alat bq, perbarui spesifikasi pengelompokan tabel agar sesuai dengan pengelompokan baru:
bq update --clustering_fields=CLUSTER_COLUMN DATASET.ORIGINAL_TABLE
Ganti yang berikut ini:
CLUSTER_COLUMN
: kolom tempat Anda melakukan pengelompokan—misalnya,mycolumn
DATASET
: nama set data yang berisi tabel—misalnya,mydataset
ORIGINAL_TABLE
: nama tabel asli—misalnya,mytable
Anda juga dapat memanggil metode API
tables.update
atautables.patch
untuk mengubah spesifikasi pengelompokan.Untuk mengelompokkan semua baris sesuai dengan spesifikasi pengelompokan baru, jalankan pernyataan
UPDATE
berikut:UPDATE DATASET.ORIGINAL_TABLE SET CLUSTER_COLUMN=CLUSTER_COLUMN WHERE true
Langkah berikutnya
- Untuk mengetahui informasi tentang cara membuat kueri tabel yang dikelompokkan, lihat Membuat kueri tabel yang dikelompokkan.
- Untuk ringkasan dukungan tabel berpartisi di BigQuery, lihat Pengantar tabel berpartisi.
- Untuk mempelajari cara membuat tabel berpartisi, lihat Membuat tabel berpartisi.