Template SourceDB ke Spanner adalah pipeline batch yang menyalin data dari database relasional ke dalam database Spanner yang ada. Pipeline ini menggunakan JDBC untuk terhubung ke database relasional. Anda dapat menggunakan template ini untuk menyalin data dari database relasional mana pun dengan driver JDBC yang tersedia ke Spanner. Fitur ini hanya mendukung serangkaian jenis MySQL yang terbatas
Untuk lapisan perlindungan tambahan, Anda juga dapat meneruskan kunci Cloud KMS bersama dengan parameter string koneksi, sandi, dan nama pengguna yang dienkripsi dengan Base64 yang dienkripsi dengan kunci Cloud KMS. Lihat endpoint enkripsi API Cloud KMS untuk mengetahui detail tambahan tentang mengenkripsi parameter nama pengguna, sandi, dan string koneksi Anda.
Persyaratan pipeline
- Driver JDBC untuk database relasional harus tersedia.
- Tabel Spanner harus ada sebelum eksekusi pipeline.
- Tabel Spanner harus memiliki skema yang kompatibel.
- Database relasional harus dapat diakses dari subnet tempat Dataflow berjalan.
Parameter template
Parameter | Deskripsi |
---|---|
sourceConfigURL |
String URL koneksi JDBC. Misalnya,
jdbc:mysql://127.4.5.30:3306/my-db?autoReconnect=true&maxReconnects=10&unicode=true&characterEncoding=UTF-8
atau konfigurasi shard. |
instanceId |
Instance Cloud Spanner tujuan. |
databaseId |
Database Cloud Spanner tujuan. |
projectId |
Ini adalah nama project Cloud Spanner. |
outputDirectory |
Direktori ini digunakan untuk mengekspor kumpulan data yang gagal/dilewati/difilter dalam migrasi. |
jdbcDriverJars |
Opsional: Daftar file JAR driver yang dipisahkan koma. Contoh:
gs://your-bucket/driver_jar1.jar,gs://your-bucket/driver_jar2.jar . Nilai defaultnya adalah kosong. |
jdbcDriverClassName |
Opsional: Nama class driver JDBC. Misalnya: com.mysql.jdbc.Driver . Nilai defaultnya adalah:
com .mysql.jdbc.Driver. |
username |
Opsional: Nama pengguna yang akan digunakan untuk koneksi JDBC. Nilai defaultnya adalah kosong. |
password |
Opsional: Sandi yang akan digunakan untuk koneksi JDBC. Nilai defaultnya adalah kosong. |
tables |
Opsional: Tabel yang akan dimigrasikan dari sumber. Nilai defaultnya adalah kosong. |
numPartitions |
Opsional: Jumlah partisi. Ini, bersama dengan batas bawah dan atas, membentuk langkah partisi untuk ekspresi
klausa WHERE yang dihasilkan yang digunakan untuk membagi kolom partisi secara merata. Jika input kurang dari 1, angka akan ditetapkan ke 1.
Default: 0 . |
spannerHost |
Opsional: Endpoint Cloud Spanner yang akan dipanggil dalam template. Contoh:
https://batch-spanner.googleapis.com . Default ke: https://batch-spanner .googleapis.com. |
maxConnections |
Opsional: Mengonfigurasi kumpulan koneksi JDBC di setiap pekerja dengan jumlah koneksi maksimum. Gunakan angka negatif untuk tidak ada
batas. Misalnya: -1 . Default: 0 . |
sessionFilePath |
Opsional: Jalur sesi di Cloud Storage yang berisi informasi pemetaan dari Spanner Migration Tool. Nilai defaultnya adalah kosong. |
transformationJarPath |
Opsional: Lokasi jar kustom di Cloud Storage yang berisi logika transformasi kustom untuk memproses rekaman. Nilai defaultnya adalah kosong. |
transformationClassName |
Opsional: Nama class yang sepenuhnya memenuhi syarat yang memiliki logika transformasi kustom. Kolom ini wajib diisi jika transformationJarPath ditentukan. Nilai defaultnya adalah kosong. |
transformationCustomParameters |
Opsional: String yang berisi parameter kustom apa pun yang akan diteruskan ke class transformasi kustom. Nilai defaultnya adalah kosong. |
disabledAlgorithms |
Opsional: Algoritma yang dipisahkan koma untuk dinonaktifkan. Jika nilai ini disetel ke none, tidak ada algoritma yang dinonaktifkan. Gunakan parameter ini dengan
hati-hati, karena algoritma yang dinonaktifkan secara default mungkin memiliki kerentanan atau masalah performa. Contoh:
SSLv3, RC4 . |
extraFilesToStage |
Opsional: Jalur Cloud Storage atau secret Secret Manager yang dipisahkan koma untuk file yang akan di-stage di pekerja. File ini
disimpan di direktori /extra_files di setiap pekerja. Contoh:
gs://<BUCKET>/file.txt,projects/<PROJECT_ID>/secrets/<SECRET_ID>/versions/<VERSION_ID> . |
Menjalankan template
Konsol
- Buka halaman Dataflow Create job from template. Buka Membuat tugas dari template
- Di kolom Nama tugas, masukkan nama tugas yang unik.
- Opsional: Untuk Endpoint regional, pilih nilai dari menu drop-down. Region
default-nya adalah
us-central1
.Untuk mengetahui daftar region tempat Anda dapat menjalankan tugas Dataflow, lihat Lokasi Dataflow.
- Dari menu drop-down Template Dataflow, pilih the Sourcedb to Spanner template.
- Di kolom parameter yang disediakan, masukkan nilai parameter Anda.
- Klik Run job.
gcloud CLI
Di shell atau terminal Anda, jalankan template:
gcloud dataflow flex-template run JOB_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/Sourcedb_to_Spanner_Flex \ --project=PROJECT_ID \ --region=REGION_NAME \ --parameters \ sourceConfigURL=SOURCE_CONFIG_URL,\ instanceId=INSTANCE_ID,\ databaseId=DATABASE_ID,\ projectId=PROJECT_ID,\ outputDirectory=OUTPUT_DIRECTORY,\
Ganti kode berikut:
JOB_NAME
: nama tugas unik pilihan AndaVERSION
: versi template yang ingin Anda gunakanAnda dapat menggunakan nilai berikut:
latest
untuk menggunakan versi template terbaru, yang tersedia di folder induk tanpa tanggal di bucket— gs://dataflow-templates-REGION_NAME/latest/- nama versi, seperti
2023-09-12-00_RC00
, untuk menggunakan versi template tertentu, yang dapat ditemukan bertingkat di folder induk yang diberi tanggal di bucket— gs://dataflow-templates-REGION_NAME/
REGION_NAME
: region tempat Anda ingin men-deploy tugas Dataflow—misalnya,us-central1
SOURCE_CONFIG_URL
: URL untuk terhubung ke host database sumber. Nilainya bisa 1. URL koneksi JDBC - yang harus berisi nama host, port, dan database sumber serta dapat secara opsional berisi properti seperti autoReconnect, maxReconnects, dll. Format: `jdbc:mysql://{host}:{port}/{dbName}?{parameters}`2. Jalur konfigurasi shardINSTANCE_ID
: ID Instance Cloud Spanner.DATABASE_ID
: ID Database Cloud Spanner.PROJECT_ID
: Project ID Cloud Spanner.OUTPUT_DIRECTORY
: Direktori Output untuk peristiwa yang gagal/dilewati/difilter
API
Untuk menjalankan template menggunakan REST API, kirim permintaan HTTP POST. Untuk mengetahui informasi selengkapnya tentang
API dan cakupan otorisasinya, lihat
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launchParameter": { "jobName": "JOB_NAME", "parameters": { "sourceConfigURL": "SOURCE_CONFIG_URL", "instanceId": "INSTANCE_ID", "databaseId": "DATABASE_ID", "projectId": "PROJECT_ID", "outputDirectory": "OUTPUT_DIRECTORY", }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/Sourcedb_to_Spanner_Flex", "environment": { "maxWorkers": "10" } } }
Ganti kode berikut:
PROJECT_ID
: ID Google Cloud project tempat Anda ingin menjalankan tugas DataflowJOB_NAME
: nama tugas unik pilihan AndaVERSION
: versi template yang ingin Anda gunakanAnda dapat menggunakan nilai berikut:
latest
untuk menggunakan versi template terbaru, yang tersedia di folder induk tanpa tanggal di bucket— gs://dataflow-templates-REGION_NAME/latest/- nama versi, seperti
2023-09-12-00_RC00
, untuk menggunakan versi template tertentu, yang dapat ditemukan bertingkat di folder induk yang diberi tanggal di bucket— gs://dataflow-templates-REGION_NAME/
LOCATION
: region tempat Anda ingin men-deploy tugas Dataflow—misalnya,us-central1
SOURCE_CONFIG_URL
: URL untuk terhubung ke host database sumber. Nilainya bisa 1. URL koneksi JDBC - yang harus berisi nama host, port, dan database sumber serta dapat secara opsional berisi properti seperti autoReconnect, maxReconnects, dll. Format: `jdbc:mysql://{host}:{port}/{dbName}?{parameters}`2. Jalur konfigurasi shardINSTANCE_ID
: ID Instance Cloud Spanner.DATABASE_ID
: ID Database Cloud Spanner.PROJECT_ID
: Project ID Cloud Spanner.OUTPUT_DIRECTORY
: Direktori Output untuk peristiwa yang gagal/dilewati/difilter