Menggunakan Debezium untuk terhubung ke Spanner Omni

Debezium adalah platform terdistribusi open source untuk pengambilan data perubahan (CDC). Konektor Debezium untuk Spanner mencatat perubahan tingkat baris dari aliran perubahan Spanner dan melakukan streaming ke topik Apache Kafka.

Konektor Debezium berfungsi dengan Spanner Omni dengan cara yang sama seperti cara kerjanya dengan Spanner. Dokumen ini menunjukkan cara mengonfigurasi konektor Debezium untuk terhubung ke Spanner Omni.

Koneksi Spanner Omni Debezium mendukung tiga konfigurasi keamanan: teks biasa, TLS, dan TLS mutual (mTLS).

Sebelum memulai

Untuk menggunakan konektor Debezium dengan Spanner Omni, pastikan Anda memenuhi prasyarat berikut:

  • Download dan instal plugin Debezium Connector for Spanner versi 3.7.0 atau yang lebih baru di direktori plugin Kafka Connect Anda.
  • Siapkan Apache Kafka dan Kafka Connect. Untuk mengetahui informasi selengkapnya, lihat Panduan penginstalan Debezium.
  • Buat database dan aliran perubahan di Spanner Omni. Untuk mengetahui informasi selengkapnya, lihat Aliran perubahan dalam dokumentasi Spanner.

Mengonfigurasi konektor Debezium

Untuk menghubungkan konektor Debezium ke Spanner Omni, tentukan properti berikut dalam konfigurasi konektor Kafka Connect Anda:

  • Tetapkan connector.class ke io.debezium.connector.spanner.SpannerConnector.
  • Tetapkan spanner.type ke OMNI. Jika disetel ke OMNI, gcp.spanner.project.id dan gcp.spanner.instance.id akan otomatis disetel ke default dan tidak diperlukan dalam konfigurasi.
  • gcp.spanner.host: Endpoint Spanner Omni, misalnya, http://localhost:15000 untuk teks biasa atau https://localhost:15000 untuk TLS dan mTLS.
  • gcp.spanner.database.id: ID database Spanner Omni Anda.
  • gcp.spanner.change-stream.name: Nama aliran perubahan yang akan diambil.
  • spanner.omni.use.plaintext: Opsional. Setel ke true untuk membuat koneksi teks biasa.
  • spanner.omni.client.cert.path: Opsional. Jalur ke file sertifikat klien untuk koneksi mTLS.
  • spanner.omni.client.key.path: Opsional. Jalur ke file kunci pribadi klien dalam format PKCS#8 untuk koneksi mTLS.

Membuat koneksi

Contoh berikut menunjukkan cara mengonfigurasi konektor Debezium untuk setiap konfigurasi keamanan yang didukung:

Teks biasa

Untuk membuat koneksi teks biasa, tetapkan spanner.type ke OMNI, tentukan endpoint dengan http://, dan tetapkan spanner.omni.use.plaintext ke true:

{
  "name": "CONNECTOR_NAME",
  "config": {
    "connector.class": "io.debezium.connector.spanner.SpannerConnector",
    "tasks.max": "1",
    "spanner.type": "OMNI",
    "gcp.spanner.host": "http://ENDPOINT",
    "gcp.spanner.database.id": "DATABASE_ID",
    "gcp.spanner.change-stream.name": "CHANGE_STREAM_NAME",
    "spanner.omni.use.plaintext": "true"
  }
}

Ganti kode berikut:

  • CONNECTOR_NAME: nama untuk instance konektor Debezium Anda, misalnya, spanner-omni-connector.

  • ENDPOINT: endpoint instance Spanner Omni Anda, misalnya, localhost:15000.

  • DATABASE_ID: ID database Spanner Omni Anda, misalnya, test-db.

  • CHANGE_STREAM_NAME: nama aliran perubahan di database Anda, misalnya, my_change_stream.

TLS

Untuk membuat koneksi TLS, tambahkan sertifikat CA Spanner Omni ke truststore Java seperti yang dijelaskan dalam Mengonfigurasi truststore Java. Tetapkan spanner.type ke OMNI dan tentukan endpoint menggunakan https://:

{
  "name": "CONNECTOR_NAME",
  "config": {
    "connector.class": "io.debezium.connector.spanner.SpannerConnector",
    "tasks.max": "1",
    "spanner.type": "OMNI",
    "gcp.spanner.host": "https://ENDPOINT",
    "gcp.spanner.database.id": "DATABASE_ID",
    "gcp.spanner.change-stream.name": "CHANGE_STREAM_NAME"
  }
}

Ganti kode berikut:

  • CONNECTOR_NAME: nama untuk instance konektor Debezium Anda, misalnya, spanner-omni-connector.

  • ENDPOINT: endpoint instance Spanner Omni Anda, misalnya, localhost:15000.

  • DATABASE_ID: ID database Spanner Omni Anda, misalnya, test-db.

  • CHANGE_STREAM_NAME: nama aliran perubahan di database Anda, misalnya, my_change_stream.

mTLS

Untuk membuat koneksi mTLS, tambahkan sertifikat CA Spanner Omni ke truststore Java seperti yang dijelaskan dalam Mengonfigurasi truststore Java. Tetapkan spanner.type ke OMNI, tentukan endpoint menggunakan https://, dan tentukan jalur ke sertifikat klien dan kunci pribadi klien Anda. Kunci pribadi klien harus dalam format PKCS#8 yang kompatibel dengan Java, seperti yang dijelaskan dalam petunjuk mTLS Java SDK:

{
  "name": "CONNECTOR_NAME",
  "config": {
    "connector.class": "io.debezium.connector.spanner.SpannerConnector",
    "tasks.max": "1",
    "spanner.type": "OMNI",
    "gcp.spanner.host": "https://ENDPOINT",
    "gcp.spanner.database.id": "DATABASE_ID",
    "gcp.spanner.change-stream.name": "CHANGE_STREAM_NAME",
    "spanner.omni.client.cert.path": "PATH_TO_CLIENT_CERT",
    "spanner.omni.client.key.path": "PATH_TO_CLIENT_KEY"
  }
}

Ganti kode berikut:

  • CONNECTOR_NAME: nama untuk instance konektor Debezium Anda, misalnya, spanner-omni-connector.

  • ENDPOINT: endpoint instance Spanner Omni Anda, misalnya, localhost:15000.

  • DATABASE_ID: ID database Spanner Omni Anda, misalnya, test-db.

  • CHANGE_STREAM_NAME: nama aliran perubahan di database Anda, misalnya, my_change_stream.

  • PATH_TO_CLIENT_CERT: jalur ke file sertifikat klien Anda.

  • PATH_TO_CLIENT_KEY: jalur ke file kunci pribadi klien Anda dalam format PKCS#8.

Langkah berikutnya