Template Sourcedb ke Spanner

Template SourceDB ke Spanner adalah pipeline batch yang menyalin data dari database relasional ke 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. Template ini hanya mendukung jenis MySQL yang terbatas

Untuk lapisan perlindungan tambahan, Anda juga dapat meneruskan kunci Cloud KMS bersama dengan a parameter nama pengguna, sandi, dan string koneksi yang dienkode Base64 dan dienkripsi dengan kunci Cloud KMS. Lihat endpoint enkripsi Cloud KMS API untuk mengetahui detail tambahan tentang cara mengenkripsi parameter nama pengguna, sandi, dan string koneksi.

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 membuang data yang gagal/dilewati/difilter dalam migrasi.
jdbcDriverJars Opsional: Daftar file JAR driver yang dipisahkan koma. Misalnya: 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. Jumlah ini, bersama dengan batas bawah dan atas, membentuk langkah partisi untuk ekspresi klausa WHERE yang dihasilkan dan digunakan untuk membagi kolom partisi secara merata. Jika input kurang dari 1, jumlahnya akan ditetapkan ke 1. Nilai defaultnya adalah: 0.
spannerHost Opsional: Endpoint Cloud Spanner yang akan dipanggil dalam template. Misalnya: https://batch-spanner.googleapis.com. Nilai defaultnya adalah: https://batch-spanner.googleapis.com.
maxConnections Opsional: Mengonfigurasi pool koneksi JDBC di setiap worker dengan jumlah koneksi maksimum. Gunakan angka negatif jika tidak ada batasan. Misalnya: -1. Nilai defaultnya adalah: 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 data. Nilai defaultnya adalah kosong.
transformationClassName Opsional: Nama class yang sepenuhnya memenuhi syarat dan memiliki logika transformasi kustom. Kolom ini wajib diisi jika 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 ditetapkan 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. Misalnya: SSLv3, RC4.
extraFilesToStage Opsional: Jalur Cloud Storage atau secret Secret Manager yang dipisahkan koma untuk file yang akan di-stage di worker. File ini disimpan di direktori /extra_files di setiap worker. Misalnya: gs://<BUCKET>/file.txt,projects/<PROJECT_ID>/secrets/<SECRET_ID>/versions/<VERSION_ID>.

Menjalankan template

Konsol

  1. Buka halaman Dataflow Membuat tugas dari template.
  2. Buka Membuat tugas dari template
  3. Di kolom Nama tugas, masukkan nama tugas yang unik.
  4. 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.

  5. Dari menu drop-down Template Dataflow, pilih template Sourcedb to Spanner.
  6. Di kolom parameter yang disediakan, masukkan nilai parameter Anda.
  7. Klik Jalankan tugas.

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/ \
    --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 Anda
  • VERSION: versi template yang ingin Anda gunakan

    Anda dapat menggunakan nilai berikut:

  • REGION_NAME: region tempat Anda ingin men-deploy tugas Dataflow—misalnya, us-central1
  • SOURCE_CONFIG_URL: URL untuk terhubung ke host database sumber. URL ini dapat berupa salah satu dari 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 shard
  • INSTANCE_ID: Cloud Spanner Instance Id.
  • DATABASE_ID: Cloud Spanner Database Id.
  • PROJECT_ID: Cloud Spanner Project Id.
  • OUTPUT_DIRECTORY: Direktori Output untuk peristiwa yang gagal/dilewati/difilter

API

Untuk menjalankan template menggunakan REST API, kirim permintaan POST HTTP. 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/",
     "environment": { "maxWorkers": "10" }
  }
}

Ganti kode berikut:

  • PROJECT_ID: Google Cloud Project ID tempat Anda ingin menjalankan tugas Dataflow
  • JOB_NAME: nama tugas unik pilihan Anda
  • VERSION: versi template yang ingin Anda gunakan

    Anda dapat menggunakan nilai berikut:

  • LOCATION: region tempat Anda ingin men-deploy tugas Dataflow—misalnya, us-central1
  • SOURCE_CONFIG_URL: URL untuk terhubung ke host database sumber. URL ini dapat berupa salah satu dari 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 shard
  • INSTANCE_ID: Cloud Spanner Instance Id.
  • DATABASE_ID: Cloud Spanner Database Id.
  • PROJECT_ID: Cloud Spanner Project Id.
  • OUTPUT_DIRECTORY: Direktori Output untuk peristiwa yang gagal/dilewati/difilter