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
- Berikan peran Identity and Access Management (IAM) yang memberi pengguna izin yang diperlukan untuk melakukan setiap tugas dalam dokumen ini.
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:
-
Mengekspor data dari tabel BigQuery:
BigQuery Data Viewer (
roles/bigquery.dataViewer
) -
Menjalankan tugas ekspor:
BigQuery User (
roles/bigquery.user
) -
Menulis data ke tabel Spanner:
Pengguna Database Cloud Spanner (
roles/spanner.databaseUser
)
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 |
|
GoogleSQL |
|
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 AndaINSTANCE_ID
: nama instance database AndaDATABASE_ID
: nama database AndaTABLE_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.