Menyalin snapshot tabel

Dokumen ini menjelaskan cara membuat salinan snapshot tabel menggunakan Konsol Google Cloud, pernyataan SQL CREATE SNAPSHOT TABLE, bq cp -s --no_clobber, atau jobs.insert API. Fitur ini ditujukan bagi pengguna yang sudah memahami snapshot tabel BigQuery.

Izin dan peran

Bagian ini menjelaskan izin Identity and Access Management (IAM) yang Anda perlukan untuk membuat salinan snapshot tabel, dan peran IAM yang telah ditetapkan sebelumnya yang memberikan izin tersebut.

Izin

Untuk menyalin snapshot tabel, Anda memerlukan izin berikut:

Izin Resource
Semua yang berikut ini:

bigquery.tables.get
bigquery.tables.getData
bigquery.tables.createSnapshot
Snapshot tabel yang ingin Anda salin.
bigquery.tables.create Set data yang berisi salinan snapshot tabel.

Peran

Peran BigQuery yang telah ditentukan dan memberikan izin yang diperlukan adalah sebagai berikut:

Role Resource
Apa pun dari yang berikut ini:

bigquery.dataViewer
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
Snapshot tabel yang ingin Anda salin.
Apa pun dari yang berikut ini:

bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
Set data yang berisi salinan snapshot tabel.

Batasan

Anda tidak dapat menyalin snapshot tabel pada snapshot tabel atau tabel yang sudah ada.

Untuk mengetahui informasi selengkapnya tentang batasan snapshot tabel, lihat batasan snapshot tabel.

Menyalin snapshot tabel

Proses pembuatan salinan snapshot tabel mirip dengan proses membuat snapshot tabel. Perbedaannya adalah Anda menentukan snapshot tabel yang ingin disalin sebagai tabel sumber.

Anda dapat membuat salinan snapshot tabel menggunakan salah satu opsi berikut:

Konsol

  1. Di Konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di panel Explorer, luaskan node project dan set data dari snapshot tabel yang ingin Anda lihat.

  3. Klik nama snapshot tabel

  4. Di panel snapshot yang muncul, klik Copy.

  5. Di panel Copy table yang muncul, masukkan informasi Project, Dataset, dan Table untuk salinan snapshot tabel tujuan.

  6. Klik Salin.

SQL

Gunakan pernyataan DDL CREATE SNAPSHOT TABLE:

  1. Di Konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    CREATE SNAPSHOT TABLE COPY_PROJECT_ID.COPY_DATASET_NAME.COPY_NAME
    CLONE SNAPSHOT_PROJECT_ID.SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME;
    

    Ganti kode berikut:

    • COPY_PROJECT_ID: project ID dari project tempat untuk membuat salinan snapshot.
    • COPY_DATASET_NAME: nama set data tempat untuk membuat salinan snapshot.
    • COPY_NAME: nama salinan snapshot yang Anda buat.
    • SNAPSHOT_PROJECT_ID: project ID untuk project yang berisi snapshot yang Anda salin.
    • SNAPSHOT_DATASET_NAME: nama set data yang berisi snapshot yang Anda salin.
    • SNAPSHOT_NAME: nama snapshot yang Anda salin.

  3. Klik Run.

Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.

bq

Masukkan perintah berikut di Cloud Shell:

Buka Cloud Shell

bq cp \
-s \
--no_clobber \
SNAPSHOT_PROJECT_ID:SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME \
COPY_PROJECT_ID:COPY_DATASET_NAME.COPY_NAME

Ganti kode berikut:

  • SNAPSHOT_PROJECT_ID: project ID untuk project yang berisi snapshot yang Anda salin.
  • SNAPSHOT_DATASET_NAME: nama set data yang berisi snapshot yang Anda salin.
  • SNAPSHOT_NAME: nama snapshot yang Anda salin.
  • COPY_PROJECT_ID: project ID dari project tempat untuk membuat salinan snapshot.
  • COPY_DATASET_NAME: nama set data tempat untuk membuat salinan snapshot.
  • COPY_NAME: nama salinan snapshot yang Anda buat.

Flag --no_clobber wajib diisi.

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": "COPY_PROJECT_ID",
        "datasetId": "COPY_DATASET_NAME",
        "tableId": "COPY_NAME"
      },
      "operationType": "SNAPSHOT",
      "writeDisposition": "WRITE_EMPTY"
    }
  }
}

Ganti kode berikut:

  • SNAPSHOT_PROJECT_ID: project ID untuk project yang berisi snapshot yang Anda salin.
  • SNAPSHOT_DATASET_NAME: nama set data yang berisi snapshot yang Anda salin.
  • SNAPSHOT_NAME: nama snapshot yang Anda salin.
  • COPY_PROJECT_ID: project ID dari project tempat untuk membuat salinan snapshot.
  • COPY_DATASET_NAMECOPY_DATASET_NAME: nama set data tempat untuk membuat salinan snapshot.
  • COPY_NAME: nama salinan snapshot yang Anda buat.

Langkah berikutnya