Debezium zum Herstellen einer Verbindung zu Spanner Omni verwenden

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 Sie io.debezium.connector.spanner.SpannerConnector fest.
  • spanner.type: Legen Sie OMNI fest. Wenn diese Option auf OMNI festgelegt ist, werden gcp.spanner.project.id und gcp.spanner.instance.id automatisch auf default festgelegt und sind in der Konfiguration nicht erforderlich.
  • gcp.spanner.host: Der Spanner Omni-Endpunkt, z. B. http://localhost:15000 für Nur-Text oder https://localhost:15000 fü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 Sie true fest, 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.

Nächste Schritte