Debezium ist eine verteilte Open-Source-Plattform für Change Data Capture (CDC). Der Debezium-Connector für Spanner erfasst Änderungen auf Zeilenebene aus Spanner-Änderungsstreams und streamt sie in Apache Kafka-Themen.
Der Debezium-Connector funktioniert mit Spanner Omni genauso wie mit Spanner. In diesem Dokument wird beschrieben, wie Sie den Debezium-Connector für die Verbindung zu Spanner Omni konfigurieren.
Spanner Omni Debezium-Verbindungen unterstützen drei Sicherheitskonfigurationen: Nur-Text, TLS und gegenseitiges TLS (mTLS).
Hinweis
Wenn Sie den Debezium-Connector mit Spanner Omni verwenden möchten, müssen die folgenden Voraussetzungen erfüllt sein:
- Laden Sie das Debezium-Connector für Spanner-Plug-in in Version 3.7.0 oder höher herunter und installieren Sie es in Ihrem Kafka Connect-Plug-in-Verzeichnis.
- Richten Sie Apache Kafka und Kafka Connect ein. Weitere Informationen finden Sie im Debezium-Installationsleitfaden.
- Erstellen Sie eine Datenbank und einen Änderungsstream in Spanner Omni. Weitere Informationen finden Sie in der Spanner-Dokumentation unter Änderungsstreams.
Debezium-Connector konfigurieren
Wenn Sie den Debezium-Connector mit Spanner Omni verbinden möchten, geben Sie die folgenden Attribute in der Kafka Connect-Connector-Konfiguration an:
connector.class: Legen Sieio.debezium.connector.spanner.SpannerConnectorfest.spanner.type: Legen SieOMNIfest. Wenn diese Option aufOMNIfestgelegt ist, werdengcp.spanner.project.idundgcp.spanner.instance.idautomatisch aufdefaultfestgelegt und sind in der Konfiguration nicht erforderlich.gcp.spanner.host: Der Spanner Omni-Endpunkt, z. B.http://localhost:15000für Nur-Text oderhttps://localhost:15000für TLS und mTLS.gcp.spanner.database.id: Die ID Ihrer Spanner Omni-Datenbank.gcp.spanner.change-stream.name: Der Name des zu erfassenden Änderungsstreams.spanner.omni.use.plaintext: Optional. Legen Sietruefest, um eine Nur-Text-Verbindung herzustellen.spanner.omni.client.cert.path: Optional. Der Pfad zur Clientzertifikatsdatei für mTLS-Verbindungen.spanner.omni.client.key.path: Optional. Der Pfad zur Datei mit dem privaten Clientschlüssel im PKCS#8-Format für mTLS-Verbindungen.
Verbindung herstellen
Die folgenden Beispiele zeigen, wie Sie den Debezium-Connector für jede unterstützte Sicherheitskonfiguration konfigurieren:
Nur-Text
Wenn Sie eine Nur-Text-Verbindung herstellen möchten, setzen Sie spanner.type auf OMNI, geben Sie den Endpunkt mit http:// an und setzen Sie spanner.omni.use.plaintext auf 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"
}
}
Ersetzen Sie Folgendes:
CONNECTOR_NAME: Der Name für Ihre Debezium-Connector-Instanz, z. B.spanner-omni-connector.ENDPOINT: der Endpunkt Ihrer Spanner Omni-Instanz, z. B.localhost:15000.DATABASE_ID: die ID Ihrer Spanner Omni-Datenbank, z. B.test-db.CHANGE_STREAM_NAME: Der Name des Änderungsstreams in Ihrer Datenbank, z. B.my_change_stream.
TLS
Um eine TLS-Verbindung herzustellen, fügen Sie das Spanner Omni-CA-Zertifikat dem Java-Truststore hinzu, wie unter Java-Truststore konfigurieren beschrieben. Legen Sie spanner.type auf OMNI fest und geben Sie den Endpunkt mit https:// an:
{
"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"
}
}
Ersetzen Sie Folgendes:
CONNECTOR_NAME: Der Name für Ihre Debezium-Connector-Instanz, z. B.spanner-omni-connector.ENDPOINT: der Endpunkt Ihrer Spanner Omni-Instanz, z. B.localhost:15000.DATABASE_ID: die ID Ihrer Spanner Omni-Datenbank, z. B.test-db.CHANGE_STREAM_NAME: Der Name des Änderungsstreams in Ihrer Datenbank, z. B.my_change_stream.
mTLS
Um eine mTLS-Verbindung herzustellen, fügen Sie das Spanner Omni-CA-Zertifikat dem Java-Truststore hinzu, wie unter Java-Truststore konfigurieren beschrieben. Setzen Sie spanner.type auf OMNI, geben Sie den Endpunkt mit https:// an und geben Sie die Pfade zu Ihrem Clientzertifikat und privaten Clientschlüssel an. Der private Clientschlüssel muss im Java-kompatiblen PKCS#8-Format vorliegen, wie in der Anleitung für mTLS im Java SDK beschrieben:
{
"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"
}
}
Ersetzen Sie Folgendes:
CONNECTOR_NAME: Der Name für Ihre Debezium-Connector-Instanz, z. B.spanner-omni-connector.ENDPOINT: der Endpunkt Ihrer Spanner Omni-Instanz, z. B.localhost:15000.DATABASE_ID: die ID Ihrer Spanner Omni-Datenbank, z. B.test-db.CHANGE_STREAM_NAME: Der Name des Änderungsstreams in Ihrer Datenbank, z. B.my_change_stream.PATH_TO_CLIENT_CERT: Pfad zu Ihrer Clientzertifikatsdatei.PATH_TO_CLIENT_KEY: der Pfad zu Ihrer privaten Clientschlüsseldatei im PKCS#8-Format.