Mengekspor data ke Spanner (kembali ETL)

Untuk memberikan masukan atau meminta dukungan terkait fitur ini, kirim email ke bq-cloud-spanner-federation-preview@google.com.

Dokumen ini menjelaskan cara menyiapkan ekstrak, transformasi, dan pemuatan balik (membalikkan ETL) dari BigQuery ke Spanner. Anda dapat melakukannya dengan menggunakan Pernyataan EXPORT DATA untuk mengekspor data dari tabel BigQuery ke Tabel Spanner.

Alur kerja ETL terbalik ini menggabungkan kemampuan analisis di BigQuery dengan latensi rendah dan throughput tinggi di Spanner. Alur kerja ini memungkinkan Anda menayangkan data kepada pengguna aplikasi tanpa menghabiskan kuota dan batas di BigQuery.

Sebelum memulai

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mengekspor data BigQuery ke Spanner, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Batasan

Jenis data BigQuery berikut tidak memiliki padanan di Spanner dan tidak didukung:

Dialek database Spanner Jenis BigQuery yang tidak didukung
Semua dialek
  • STRUCT
  • GEOGRAPHY
  • DATETIME
  • RANGE
  • TIME
GoogleSQL
  • BIGNUMERIC: Jenis NUMERIC yang didukung tidak cukup luas. Pertimbangkan untuk menambahkan transmisi eksplisit ke Ketik NUMERIC dalam kueri.

Ukuran maksimum baris yang diekspor tidak boleh melebihi 1 MiB.

Konfigurasi ekspor dengan opsi spanner_options

Anda dapat menggunakan opsi spanner_options untuk menentukan Spanner tujuan {i>database<i} dan tabel. Konfigurasi dinyatakan dalam bentuk string JSON, seperti yang ditunjukkan pada contoh berikut:

EXPORT DATA OPTIONS(
   uri="https://spanner.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID",
  format='CLOUD_SPANNER',
   spanner_options = """{
      "table": "TABLE_NAME",
      "priority": "PRIORITY",
      "tag": "TAG",
   }"""
)

Ganti kode berikut:

  • PROJECT_ID: nama project Google Cloud Anda.
  • INSTANCE_ID: nama instance database Anda.
  • DATABASE_ID: nama database Anda.
  • TABLE_NAME: nama tabel tujuan yang ada.
  • PRIORITY (opsional): prioritas permintaan tulis. Nilai yang diizinkan: LOW, MEDIUM, HIGH. Default nilai: MEDIUM.
  • TAG (opsional): tag permintaan untuk membantu mengidentifikasi traffic eksportir dalam pemantauan Spanner. Nilai default: bq_export.

Persyaratan kueri ekspor

Untuk mengekspor hasil kueri ke Spanner, hasilnya harus memenuhi persyaratan berikut:

  • Semua kolom dalam kumpulan hasil harus ada di tabel tujuan, dan jenis harus cocok.
  • Kumpulan hasil harus berisi semua kolom NOT NULL untuk tabel tujuan.
  • Nilai kolom tidak boleh melebihi Spanner batas ukuran data dalam tabel.
  • Semua jenis kolom yang tidak didukung harus dikonversi ke salah satu jenis yang didukung sebelum diekspor ke Spanner.

Mengekspor data

Anda dapat menggunakan pernyataan EXPORT DATA untuk mengekspor data dari tabel BigQuery ke tabel Spanner.

Contoh berikut mengekspor kolom yang dipilih dari tabel yang bernama mydataset.table1:

EXPORT DATA OPTIONS (
  uri="https://spanner.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID",
  format='CLOUD_SPANNER',
  spanner_options="""{ "table": "TABLE_NAME" }"""
)
AS SELECT * FROM mydataset.table1;

Ganti kode berikut:

  • PROJECT_ID: nama project Google Cloud Anda
  • INSTANCE_ID: nama instance database Anda
  • DATABASE_ID: nama database Anda
  • TABLE_NAME: nama tabel tujuan yang ada

Pengoptimalan ekspor

Untuk mengoptimalkan ekspor kumpulan data dari BigQuery ke Spanner, Anda dapat mencoba hal berikut:

  • Meningkatkan jumlah node di instance tujuan Spanner. Ekspor secara otomatis menskalakan jumlah slot ekspor BigQuery sebanding dengan jumlah node Spanner dan unit pemrosesan. Untuk mengetahui detail tambahan tentang cara memaksimalkan throughput operasi tulis, lihat Ringkasan performa.

  • Hindari mengurutkan hasil kueri. Jika kumpulan hasil berisi semua kunci utama kolom, pengekspor secara otomatis mengurutkan kunci utama tabel tujuan untuk merampingkan penulisan dan meminimalkan pertentangan.

    Jika kunci utama tabel tujuan menyertakan kolom yang dihasilkan, maka Anda harus menambahkan kolom yang dibuat' ke kueri untuk memastikan bahwa data yang diekspor diurutkan dengan benar.

Harga

Untuk mengetahui informasi tentang harga ekspor data, lihat Harga BigQuery.

Setelah data diekspor, Anda dikenakan biaya atas penyimpanan data di Spanner. Untuk informasi selengkapnya, lihat Harga Spanner.