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.classkeio.debezium.connector.spanner.SpannerConnector. - Tetapkan
spanner.typekeOMNI. Jika disetel keOMNI,gcp.spanner.project.iddangcp.spanner.instance.idakan otomatis disetel kedefaultdan tidak diperlukan dalam konfigurasi. gcp.spanner.host: Endpoint Spanner Omni, misalnya,http://localhost:15000untuk teks biasa atauhttps://localhost:15000untuk 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 ketrueuntuk 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
Membangun koneksi aliran perubahan ke Kafka.
Pelajari tentang autentikasi dan otorisasi Spanner Omni.