Sourcedb ke template Spanner

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

  1. Buka halaman Create job from template Dataflow.
  2. Buka Buat tugas dari template
  3. Di kolom Job name, masukkan nama tugas yang unik.
  4. 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.

  5. Dari menu drop-down Dataflow template, pilih the Sourcedb to Spanner template.
  6. Di kolom parameter yang disediakan, masukkan nilai parameter Anda.
  7. 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 Anda
  • VERSION: versi {i>template<i} yang ingin Anda gunakan.

    Anda dapat menggunakan nilai berikut:

  • 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 shard
  • INSTANCE_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 Dataflow
  • JOB_NAME: nama pekerjaan unik pilihan Anda
  • VERSION: versi {i>template<i} yang ingin Anda gunakan.

    Anda dapat menggunakan nilai berikut:

  • 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 shard
  • INSTANCE_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