Debezium è una piattaforma distribuita open source per Change Data Capture (CDC). Il connettore Debezium per Spanner acquisce le modifiche a livello di riga dagli stream di modifiche in tempo reale di Spanner e le trasmette agli argomenti Apache Kafka.
Il connettore Debezium funziona con Spanner Omni nello stesso modo in cui funziona con Spanner. Questo documento mostra come configurare il connettore Debezium per connettersi a Spanner Omni.
Le connessioni Spanner Omni Debezium supportano tre configurazioni di sicurezza: testo non crittografato, TLS e mutual TLS (mTLS).
Prima di iniziare
Per utilizzare il connettore Debezium con Spanner Omni, assicurati di soddisfare i seguenti prerequisiti:
- Scarica e installa il plug-in Debezium connector for Spanner versione 3.7.0 o successive nella directory dei plug-in di Kafka Connect.
- Configura Apache Kafka e Kafka Connect. Per saperne di più, consulta la Guida all'installazione di Debezium.
- Crea un database e un flusso di modifiche in Spanner Omni. Per maggiori informazioni, consulta Flussi di modifiche nella documentazione di Spanner.
Configura il connettore Debezium
Per connettere il connettore Debezium a Spanner Omni, specifica le seguenti proprietà nella configurazione del connettore Kafka Connect:
connector.class: impostato suio.debezium.connector.spanner.SpannerConnector.spanner.type: impostato suOMNI. Se impostato suOMNI,gcp.spanner.project.idegcp.spanner.instance.idvengono impostati automaticamente sudefaulte non sono richiesti nella configurazione.gcp.spanner.host: l'endpoint Spanner Omni, ad esempio,http://localhost:15000per testo normale ohttps://localhost:15000per TLS e mTLS.gcp.spanner.database.id: l'ID del database Spanner Omni.gcp.spanner.change-stream.name: il nome dello stream di modifiche da acquisire.spanner.omni.use.plaintext: (Facoltativo) Imposta sutrueper stabilire una connessione in testo normale.spanner.omni.client.cert.path: (Facoltativo) Il percorso del file del certificato client per le connessioni mTLS.spanner.omni.client.key.path: (Facoltativo) Il percorso del file della chiave privata del client in formato PKCS#8 per le connessioni mTLS.
Stabilire una connessione
Gli esempi seguenti mostrano come configurare il connettore Debezium per ogni configurazione di sicurezza supportata:
Testo normale
Per stabilire una connessione di testo normale, imposta spanner.type su OMNI, specifica
l'endpoint con http:// e imposta spanner.omni.use.plaintext su 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"
}
}
Sostituisci quanto segue:
CONNECTOR_NAME: il nome dell'istanza del connettore Debezium, ad esempiospanner-omni-connector.ENDPOINT: l'endpoint dell'istanza Spanner Omni, ad esempiolocalhost:15000.DATABASE_ID: l'ID del tuo database Spanner Omni, ad esempiotest-db.CHANGE_STREAM_NAME: il nome dello stream di modifiche nel tuo database, ad esempiomy_change_stream.
TLS
Per stabilire una connessione TLS, aggiungi il certificato CA Spanner Omni
al truststore Java come descritto in
Configurare il truststore Java. Imposta
spanner.type su OMNI e specifica l'endpoint utilizzando 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"
}
}
Sostituisci quanto segue:
CONNECTOR_NAME: il nome dell'istanza del connettore Debezium, ad esempiospanner-omni-connector.ENDPOINT: l'endpoint dell'istanza Spanner Omni, ad esempiolocalhost:15000.DATABASE_ID: l'ID del tuo database Spanner Omni, ad esempiotest-db.CHANGE_STREAM_NAME: il nome dello stream di modifiche nel tuo database, ad esempiomy_change_stream.
mTLS
Per stabilire una connessione mTLS, aggiungi il certificato CA Spanner Omni
all'archivio attendibilità Java come descritto in
Configurare l'archivio attendibilità Java. Imposta
spanner.type su OMNI, specifica l'endpoint utilizzando https:// e specifica i
percorsi del certificato client e della chiave privata del client. La chiave privata del client
deve essere in un formato PKCS#8 compatibile con Java, come descritto nelle
istruzioni mTLS dell'SDK Java:
{
"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"
}
}
Sostituisci quanto segue:
CONNECTOR_NAME: il nome dell'istanza del connettore Debezium, ad esempiospanner-omni-connector.ENDPOINT: l'endpoint dell'istanza Spanner Omni, ad esempiolocalhost:15000.DATABASE_ID: l'ID del tuo database Spanner Omni, ad esempiotest-db.CHANGE_STREAM_NAME: il nome dello stream di modifiche nel tuo database, ad esempiomy_change_stream.PATH_TO_CLIENT_CERT: il percorso del file del certificato client.PATH_TO_CLIENT_KEY: il percorso del file della chiave privata del client in formato PKCS#8.
Passaggi successivi
Scopri di più sull'autenticazione e autorizzazione Omni di Spanner.