Membuat clone tabel
Dokumen ini menjelaskan cara menyalin tabel ke clone tabel menggunakan pernyataan SQL CREATE TABLE CLONE
, perintah bq cp
, atau panggilan API jobs.insert
. Dokumen ini ditujukan bagi pengguna yang sudah memahami clone tabel.
Izin dan peran
Bagian ini menjelaskan izin Identity and Access Management (IAM) bahwa Anda perlu membuat clone tabel, danperan IAM yang telah ditetapkan yang memberikan izin akses tersebut.
Izin
Untuk membuat clone tabel, Anda memerlukan izin berikut:
Izin | Resource |
---|---|
Semua yang berikut ini:bigquery.tables.get bigquery.tables.getData |
Tabel yang ingin Anda buat clone-nya. |
bigquery.tables.create bigquery.tables.updateData
|
Set data yang berisi clone tabel. |
Peran
Peran BigQuery yang telah ditetapkan dan menyediakan izin yang diperlukan adalah sebagai berikut:
Role | Resource |
---|---|
Salah satu dari yang berikut ini:bigquery.dataViewer bigquery.dataEditor bigquery.dataOwner bigquery.admin
|
Tabel yang ingin Anda buat clone-nya. |
Salah satu dari yang berikut ini:bigquery.dataEditor bigquery.dataOwner bigquery.admin
|
Set data yang berisi clone tabel baru. |
Membuat clone tabel
Gunakan GoogleSQL, alat command line bq, atau BigQuery API untuk membuat clone tabel.
SQL
Untuk meng-clone tabel, gunakan pernyataan CREATE TABLE CLONE.
Di konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
CREATE TABLE myproject.myDataset_backup.myTableClone CLONE myproject.myDataset.myTable;
Klik
Run.
Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
Ganti kode berikut:
PROJECT
adalah project ID dari project target. Project ini harus berada dalam organisasi yang sama dengan project yang berisi tabel yang Anda clone.DATASET
adalah nama set data target. Set data ini harus berada di region yang sama dengan set data yang berisi tabel yang Anda clone.CLONE_NAME
adalah nama clone tabel yang Anda buat.
bq
Gunakan perintah bq cp
dengan flag --clone
:
bq cp --clone -n project1:myDataset.myTable PROJECT:DATASET.CLONE_NAME
Ganti kode berikut:
PROJECT
adalah project ID dari project target. Project ini harus berada di organisasi yang sama dengan project yang berisi tabel yang Anda clone.DATASET
adalah nama set data target. Set data ini harus berada di region yang sama dengan set data yang berisi tabel yang Anda clone. Jika {i>dataset<i} tidak berada di region yang sama dengan {i>dataset<i} yang berisi tabel yang Anda clone maka tabel lengkap akan disalin.CLONE_NAME
adalah nama clone tabel yang Anda buat.
Jika membuat clone dalam project yang sama dengan tabel dasar, Anda dapat melewati langkah menentukan project, seperti ditunjukkan berikut ini:
bq cp --clone -n myDataset.myTable DATASET.CLONE_NAME
API
Panggil metode jobs.insert
dengan kolom operationType
yang ditetapkan ke CLONE
:
Parameter | Nilai |
---|---|
projectId |
Project ID dari project yang menjalankan tugas. |
Isi permintaan | { "configuration": { "copy": { "sourceTables": [ { "projectId": "myProject", "datasetId": "myDataset", "tableId": "myTable" } ], "destinationTable": { "projectId": "PROJECT", "datasetId": "DATASET", "tableId": "CLONE_NAME" }, "operationType": "CLONE", "writeDisposition": "WRITE_EMPTY", } } } |
Ganti kode berikut:
PROJECT
adalah project ID dari project target. Project ini harus berada dalam organisasi yang sama dengan project yang berisi tabel yang Anda clone.DATASET
adalah nama set data target. Set data ini harus berada di region yang sama dengan set data yang berisi tabel yang Anda clone. Jika {i>dataset<i} tidak berada di region yang sama dengan {i>dataset<i} yang berisi tabel yang Anda kloning, tabel lengkap akan disalin.CLONE_NAME
adalah nama clone tabel yang Anda buat.
Kontrol akses
Saat Anda membuat clone tabel, akses ke clone tabel ditetapkan sebagai berikut:
- Kebijakan akses tingkat baris disalin dari tabel dasar ke clone tabel.
- Kebijakan akses tingkat kolom disalin dari tabel dasar ke clone tabel.
Akses tingkat tabel ditentukan sebagai berikut:
- Jika clone tabel menimpa tabel yang ada, akses tingkat tabel untuk tabel yang ada akan dipertahankan. Tag tidak disalin dari tabel dasar.
- Jika clone tabel adalah resource baru, akses tingkat tabel untuk clone tabel tersebut ditentukan oleh kebijakan akses dari set data tempat clone tabel dibuat. Selain itu, tag akan disalin dari tabel dasar ke clone tabel.
Langkah selanjutnya
- Setelah membuat clone tabel, Anda dapat menggunakannya seperti menggunakan tabel standar. Untuk informasi lebih lanjut, lihat Mengelola tabel.