Template SourceDB ke Spanner adalah pipeline batch yang menyalin data dari ke dalam database Spanner yang sudah ada. Pipeline ini menggunakan JDBC untuk terhubung ke {i>database <i}relasional. Anda dapat menggunakan {i>template<i} ini untuk menyalin data dari {i>database<i} relasional apa pun dengan {i>driver<i} JDBC yang tersedia ke Spanner. Ini hanya mendukung kumpulan jenis terbatas dari MySQL
Untuk lapisan perlindungan tambahan, Anda juga dapat meneruskan kunci Cloud KMS bersama dengan Nama pengguna, sandi, dan parameter string koneksi berenkode base64 yang dienkripsi dengan dari Kunci Cloud KMS. Lihat Cloud KMS Enkripsi API untuk detail tambahan tentang mengenkripsi nama pengguna, sandi, dan parameter string koneksi.
Persyaratan pipeline
- Driver JDBC untuk database relasional harus tersedia.
- Tabel Spanner harus sudah ada sebelum eksekusi pipeline.
- Tabel Spanner harus memiliki skema yang kompatibel.
- Database relasional harus dapat diakses dari subnet tempat Dataflow dijalankan.
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 membuang catatan yang gagal/dilewati/difilter dalam migrasi. |
jdbcDriverJars |
Opsional: Daftar yang dipisahkan koma untuk file JAR driver. 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 . Default-nya 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 partisi langkah untuk klausa {i>WHERE<i} yang dihasilkan
yang digunakan untuk membagi kolom partisi secara merata. Jika nilai input kurang dari 1, angka akan ditetapkan ke 1.
Default-nya adalah: 0 . |
spannerHost |
Opsional: Endpoint Cloud Spanner yang akan dipanggil dalam template. Contoh:
https://batch-spanner.googleapis.com . Default-nya adalah: https://batch-spanner .googleapis.com. |
maxConnections |
Opsional: Mengonfigurasi kumpulan koneksi JDBC pada setiap pekerja dengan jumlah koneksi maksimum. Gunakan angka negatif untuk tidak
batas tersebut. Misalnya: -1 . Default-nya adalah: 0 . |
sessionFilePath |
Opsional: Jalur sesi di Cloud Storage yang berisi informasi pemetaan dari Fitur Migrasi Spanner. Default-nya adalah kosong. |
transformationJarPath |
Opsional: Lokasi jar kustom di Cloud Storage yang berisi logika transformasi kustom untuk memproses kumpulan data. Default-nya adalah kosong. |
transformationClassName |
Opsional: Nama class yang sepenuhnya memenuhi syarat yang memiliki logika transformasi kustom. Ini adalah kolom wajib dalam kasus TransformationJarPath ditentukan. Nilai defaultnya adalah kosong. |
transformationCustomParameters |
Opsional: String yang berisi parameter kustom yang akan diteruskan ke class transformasi kustom. Nilai defaultnya adalah kosong. |
disabledAlgorithms |
Opsional: Algoritma yang dipisahkan koma untuk dinonaktifkan. Jika nilai ini disetel ke tidak ada, tidak ada algoritma yang dinonaktifkan. Gunakan parameter ini dengan
hati-hati, karena algoritma yang dinonaktifkan secara {i>default<i}
mungkin memiliki kerentanan atau masalah kinerja. Contoh:
SSLv3, RC4 . |
extraFilesToStage |
Opsional: Jalur Cloud Storage yang dipisahkan koma atau rahasia Secret Manager untuk file yang akan ditahapkan di worker. File ini
disimpan di direktori /extra_files di setiap worker. Contoh:
gs://<BUCKET>/file.txt,projects/<PROJECT_ID>/secrets/<SECRET_ID>/versions/<VERSION_ID> . |
Menjalankan template
Konsol
- Buka halaman Create job from template Dataflow. Buka Buat tugas dari template
- Di kolom Job name, masukkan nama tugas yang unik.
- Opsional: Untuk Regional endpoint, pilih nilai dari menu drop-down. Default
region adalah
us-central1
.Untuk mengetahui daftar region tempat Anda dapat menjalankan tugas Dataflow, lihat Lokasi Dataflow.
- Dari menu drop-down Dataflow template, 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 pekerjaan unik pilihan AndaVERSION
: versi {i>template<i} yang ingin Anda gunakan.Anda dapat menggunakan nilai berikut:
latest
untuk menggunakan template versi terbaru, yang tersedia di Folder induk non-dated di bucket— gs://dataflow-templates-REGION_NAME/latest/- nama versi, seperti
2023-09-12-00_RC00
, untuk menggunakan versi tertentu dari , yang dapat ditemukan disarangkan di masing-masing folder induk bertanggal dalam bucket— gs://dataflow-templates-REGION_NAME/
REGION_NAME
: wilayah tempat Anda ingin men-deploy tugas Dataflow Anda—misalnya,us-central1
SOURCE_CONFIG_URL
: URL untuk terhubung ke host database sumber. Nilai ini dapat berupa salah satu dari 1. URL koneksi JDBC - yang harus berisi nama host, port, dan db sumber serta secara opsional dapat berisi properti seperti autoHubungkan, maxHubungkans, 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 POST HTTP. Untuk 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 project Google Cloud tempat Anda ingin menjalankan tugas DataflowJOB_NAME
: nama pekerjaan unik pilihan AndaVERSION
: versi {i>template<i} yang ingin Anda gunakan.Anda dapat menggunakan nilai berikut:
latest
untuk menggunakan template versi terbaru, yang tersedia di Folder induk non-dated di bucket— gs://dataflow-templates-REGION_NAME/latest/- nama versi, seperti
2023-09-12-00_RC00
, untuk menggunakan versi tertentu dari , yang dapat ditemukan disarangkan di masing-masing folder induk bertanggal dalam bucket— gs://dataflow-templates-REGION_NAME/
LOCATION
: wilayah tempat Anda ingin men-deploy tugas Dataflow Anda—misalnya,us-central1
SOURCE_CONFIG_URL
: URL untuk terhubung ke host database sumber. Nilai ini dapat berupa salah satu dari 1. URL koneksi JDBC - yang harus berisi nama host, port, dan db sumber serta secara opsional dapat berisi properti seperti autoHubungkan, maxHubungkans, 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