Memulihkan snapshot tabel
Dokumen ini menjelaskan cara membuat tabel yang dapat ditulisi dari snapshot tabel menggunakan Konsol Google Cloud, kueri CREATE TABLE CLONE
, perintah bq cp
, atau jobs.insert
API.
Fitur ini ditujukan bagi pengguna yang sudah memahami snapshot tabel.
Izin dan peran
Bagian ini menjelaskan Izin Identity and Access Management (IAM) bahwa Anda perlu membuat tabel yang dapat ditulisi dari snapshot tabel, danperan IAM yang telah ditetapkan yang memberikan izin akses tersebut.
Izin
Untuk membuat tabel yang dapat ditulisi dari snapshot tabel, Anda memerlukan izin berikut:
Izin | Resource |
---|---|
Semua dari berikut ini:bigquery.tables.get bigquery.tables.getData bigquery.tables.restoreSnapshot |
Snapshot tabel yang ingin Anda salin ke tabel yang dapat ditulisi. |
bigquery.tables.create
|
Set data yang berisi tabel tujuan. |
Peran
Peran BigQuery yang telah ditetapkan dan menyediakan izin yang diperlukan adalah sebagai berikut:
Role | Resource |
---|---|
Apa pun dari yang berikut ini:bigquery.dataEditor bigquery.dataOwner bigquery.admin
|
Snapshot tabel yang ingin Anda salin ke tabel yang dapat ditulisi. |
Apa pun dari yang berikut ini:bigquery.dataEditor bigquery.dataOwner bigquery.admin
|
Set data yang berisi tabel tujuan. |
Memulihkan snapshot tabel
Untuk membuat tabel yang dapat ditulisi dari snapshot, tentukan snapshot tabel yang ingin disalin dan tabel tujuan. Tabel tujuan dapat berupa tabel baru atau Anda dapat menimpa tabel yang ada dengan snapshot tabel.
Memulihkan ke tabel baru
Anda dapat memulihkan snapshot tabel menjadi tabel baru menggunakan salah satu opsi berikut:
Konsol
Di konsol Google Cloud, buka halaman BigQuery.
Di panel Explorer, luaskan node project dan set data dari snapshot tabel yang ingin Anda pulihkan.
Klik nama snapshot tabel
Di panel snapshot tabel yang muncul, klik Pulihkan.
Di panel Pulihkan snapshot yang muncul, masukkan informasi Project, Set Data, dan Table untuk tabel baru.
Klik Simpan.
SQL
Gunakan
pernyataan DDL CREATE TABLE CLONE
:
Di konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
CREATE TABLE TABLE_PROJECT_ID.TABLE_DATASET_NAME.NEW_TABLE_NAME CLONE SNAPSHOT_PROJECT_ID.SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME;
Ganti kode berikut:
TABLE_PROJECT_ID
: project ID dari project sebagai tempat membuat tabel baru.TABLE_DATASET_NAME
: nama set data sebagai tempat membuat tabel baru.NEW_TABLE_NAME
: nama tabel baru.SNAPSHOT_PROJECT_ID
: project ID untuk project yang berisi snapshot yang Anda pulihkan.SNAPSHOT_DATASET_NAME
: nama set data yang berisi snapshot yang Anda pulihkan.SNAPSHOT_NAME
: nama snapshot tempat Anda memulihkan data.
Klik
Run.
Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
bq
Masukkan perintah berikut di Cloud Shell:
bq cp \ --restore \ --no_clobber \ SNAPSHOT_PROJECT_ID:SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME \ TABLE_PROJECT_ID:TABLE_DATASET_NAME.NEW_TABLE_NAME
Ganti kode berikut:
SNAPSHOT_PROJECT_ID
: project ID untuk project yang berisi snapshot yang Anda pulihkan.SNAPSHOT_DATASET_NAME
: nama set data yang berisi snapshot yang Anda pulihkan.SNAPSHOT_NAME
: nama snapshot tempat Anda memulihkan data.TABLE_PROJECT_ID
: project ID dari project sebagai tempat membuat tabel baru.TABLE_DATASET_NAME
: nama set data sebagai tempat membuat tabel baru.NEW_TABLE_NAME
: nama tabel baru.
Flag --no_clobber
menginstruksikan perintah untuk gagal jika tabel tujuan sebelumnya sudah ada.
API
Panggil
metode jobs.insert
dengan parameter berikut:
Parameter | Nilai |
---|---|
projectId |
ID project dari project yang akan ditagih untuk operasi ini. |
Isi permintaan | { "configuration": { "copy": { "sourceTables": [ { "projectId": "SNAPSHOT_PROJECT_ID", "datasetId": "SNAPSHOT_DATASET_NAME", "tableId": "SNAPSHOT_NAME" } ], "destinationTable": { "projectId": "TABLE_PROJECT_ID", "datasetId": "TABLE_DATASET_NAME", "tableId": "NEW_TABLE_NAME" }, "operationType": "RESTORE", "writeDisposition": "WRITE_EMPTY" } } } |
Ganti kode berikut:
SNAPSHOT_PROJECT_ID
: project ID untuk project yang berisi snapshot yang Anda pulihkan.SNAPSHOT_DATASET_NAME
: nama set data yang berisi snapshot yang Anda pulihkan.SNAPSHOT_NAME
: nama snapshot tempat Anda memulihkan data.TABLE_PROJECT_ID
: project ID dari project sebagai tempat membuat tabel baru.TABLE_DATASET_NAME
: nama set data sebagai tempat membuat tabel baru.NEW_TABLE_NAME
: nama tabel baru.
Jika masa berlaku tidak ditentukan, tabel tujuan akan berakhir setelah waktu habis masa berlaku tabel default untuk set data yang berisi tabel tujuan.
Menimpa tabel yang ada sebelumnya
Anda dapat menimpa tabel yang ada dengan snapshot tabel menggunakan salah satu opsi berikut:
Konsol
Di konsol Google Cloud, buka halaman BigQuery.
Di panel Explorer, luaskan node project dan set data dari snapshot tabel yang ingin Anda pulihkan.
Klik nama snapshot tabel
Di panel snapshot tabel yang muncul, klik Pulihkan.
Di panel Restore snapshot yang muncul, masukkan informasi Project, Dataset, dan Table untuk tabel yang sudah ada.
Pilih Timpa tabel jika ada.
Klik Simpan.
SQL
Gunakan
pernyataan DDL CREATE TABLE CLONE
:
Di konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
CREATE OR REPLACE TABLE TABLE_PROJECT_ID.TABLE_DATASET_NAME.TABLE_NAME CLONE SNAPSHOT_PROJECT_ID.SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME;
Ganti kode berikut:
TABLE_PROJECT_ID
: project ID dari project sebagai tempat membuat tabel baru.TABLE_DATASET_NAME
: nama set data yang berisi tabel yang Anda tulis ulang.TABLE_NAME
: nama tabel yang Anda timpa.SNAPSHOT_PROJECT_ID
: project ID untuk project yang berisi snapshot yang Anda pulihkan.SNAPSHOT_DATASET_NAME
: nama set data yang berisi snapshot yang Anda pulihkan.SNAPSHOT_NAME
: nama snapshot tempat Anda memulihkan data.
Klik
Run.
Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
bq
Masukkan perintah berikut di Cloud Shell:
bq cp \ --restore \ --force \ SNAPSHOT_PROJECT_ID:SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME \ TABLE_PROJECT_ID:TABLE_DATASET_NAME.TABLE_NAME
Ganti kode berikut:
SNAPSHOT_PROJECT_ID
: project ID untuk project yang berisi snapshot yang Anda pulihkan.SNAPSHOT_DATASET_NAME
: nama set data yang berisi snapshot yang Anda pulihkan.SNAPSHOT_NAME
: nama snapshot tempat Anda memulihkan data.TABLE_PROJECT_ID
: project ID dari project sebagai tempat membuat tabel baru.TABLE_DATASET_NAME
: nama set data yang berisi tabel yang Anda tulis ulang.TABLE_NAME
: nama tabel yang Anda timpa.
API
Panggil
metode jobs.insert
dengan parameter berikut:
Parameter | Nilai |
---|---|
projectId |
ID project dari project yang akan ditagih untuk operasi ini. |
Isi permintaan | { "configuration": { "copy": { "sourceTables": [ { "projectId": "SNAPSHOT_PROJECT_ID", "datasetId": "SNAPSHOT_DATASET_NAME", "tableId": "SNAPSHOT_NAME" } ], "destinationTable": { "projectId": "TABLE_PROJECT_ID", "datasetId": "TABLE_DATASET_NAME", "tableId": "TABLE_NAME" }, "operationType": "RESTORE", "writeDisposition": "WRITE_TRUNCATE" } } } |
Ganti kode berikut:
SNAPSHOT_PROJECT_ID
: project ID untuk project yang berisi snapshot yang Anda pulihkan.SNAPSHOT_DATASET_NAME
: nama set data yang berisi snapshot yang Anda pulihkan.SNAPSHOT_NAME
: nama snapshot tempat Anda memulihkan data.TABLE_PROJECT_ID
: project ID dari project sebagai tempat membuat tabel baru.TABLE_DATASET_NAME
: nama set data yang berisi tabel yang Anda tulis ulang.TABLE_NAME
: nama tabel yang Anda timpa.
Jika masa berlaku tidak ditentukan, tabel tujuan akan berakhir setelah waktu habis masa berlaku tabel default untuk set data yang berisi tabel tujuan.