Debezium est une plate-forme distribuée Open Source pour la capture des données modifiées (CDC). Le connecteur Debezium pour Spanner capture les modifications au niveau des lignes à partir des flux de modifications Spanner et les diffuse dans les sujets Apache Kafka.
Le connecteur Debezium fonctionne avec Spanner Omni de la même manière qu'avec Spanner. Ce document explique comment configurer le connecteur Debezium pour se connecter à Spanner Omni.
Les connexions Spanner Omni Debezium sont compatibles avec trois configurations de sécurité : texte brut, TLS et TLS mutuel (mTLS).
Avant de commencer
Pour utiliser le connecteur Debezium avec Spanner Omni, assurez-vous de remplir les conditions préalables suivantes :
- Téléchargez et installez le plug-in Debezium Connector for Spanner version 3.7.0 ou ultérieure dans votre répertoire de plug-ins Kafka Connect.
- Configurez Apache Kafka et Kafka Connect. Pour en savoir plus, consultez le guide d'installation de Debezium.
- Créez une base de données et un flux de modifications dans Spanner Omni. Pour en savoir plus, consultez Flux de modifications dans la documentation Spanner.
Configurer le connecteur Debezium
Pour connecter le connecteur Debezium à Spanner Omni, spécifiez les propriétés suivantes dans la configuration de votre connecteur Kafka Connect :
- Définissez
connector.classsurio.debezium.connector.spanner.SpannerConnector. - Définissez
spanner.typesurOMNI. Lorsque la valeur est définie surOMNI,gcp.spanner.project.idetgcp.spanner.instance.idsont automatiquement définis surdefaultet ne sont pas requis dans la configuration. gcp.spanner.host: point de terminaison Spanner Omni, par exemplehttp://localhost:15000pour le texte brut ouhttps://localhost:15000pour TLS et mTLS.gcp.spanner.database.id: ID de votre base de données Spanner Omni.gcp.spanner.change-stream.name: nom du flux de modifications à capturer.spanner.omni.use.plaintext: facultatif. Définissez ce paramètre surtruepour établir une connexion en texte brut.spanner.omni.client.cert.path: facultatif. Chemin d'accès au fichier de certificat client pour les connexions mTLS.spanner.omni.client.key.path: facultatif. Chemin d'accès au fichier de clé privée du client au format PKCS#8 pour les connexions mTLS.
Établir une connexion
Les exemples suivants montrent comment configurer le connecteur Debezium pour chaque configuration de sécurité compatible :
Texte brut
Pour établir une connexion en texte brut, définissez spanner.type sur OMNI, spécifiez le point de terminaison avec http:// et définissez spanner.omni.use.plaintext sur 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"
}
}
Remplacez les éléments suivants :
CONNECTOR_NAME: nom de votre instance de connecteur Debezium, par exemplespanner-omni-connector.ENDPOINT: point de terminaison de votre instance Spanner Omni, par exemplelocalhost:15000.DATABASE_ID: ID de votre base de données Spanner Omni, par exempletest-db.CHANGE_STREAM_NAME: nom du flux de modifications dans votre base de données, par exemplemy_change_stream.
TLS
Pour établir une connexion TLS, ajoutez le certificat CA Spanner Omni au truststore Java, comme décrit dans Configurer le truststore Java. Définissez spanner.type sur OMNI et spécifiez le point de terminaison à l'aide de 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"
}
}
Remplacez les éléments suivants :
CONNECTOR_NAME: nom de votre instance de connecteur Debezium, par exemplespanner-omni-connector.ENDPOINT: point de terminaison de votre instance Spanner Omni, par exemplelocalhost:15000.DATABASE_ID: ID de votre base de données Spanner Omni, par exempletest-db.CHANGE_STREAM_NAME: nom du flux de modifications dans votre base de données, par exemplemy_change_stream.
mTLS
Pour établir une connexion mTLS, ajoutez le certificat CA Spanner Omni au truststore Java, comme décrit dans Configurer le truststore Java. Définissez spanner.type sur OMNI, spécifiez le point de terminaison à l'aide de https://, puis spécifiez les chemins d'accès à votre certificat client et à votre clé privée client. La clé privée du client doit être au format PKCS#8 compatible avec Java, comme décrit dans les instructions mTLS du 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"
}
}
Remplacez les éléments suivants :
CONNECTOR_NAME: nom de votre instance de connecteur Debezium, par exemplespanner-omni-connector.ENDPOINT: point de terminaison de votre instance Spanner Omni, par exemplelocalhost:15000.DATABASE_ID: ID de votre base de données Spanner Omni, par exempletest-db.CHANGE_STREAM_NAME: nom du flux de modifications dans votre base de données, par exemplemy_change_stream.PATH_TO_CLIENT_CERT: chemin d'accès à votre fichier de certificat client.PATH_TO_CLIENT_KEY: chemin d'accès au fichier de clé privée du client au format PKCS#8.
Étapes suivantes
Établissez des connexions de flux de modifications à Kafka.
En savoir plus sur l'authentification et l'autorisation Spanner Omni