Einrichten von Openflow Connector for Snowflake to Kafka

Bemerkung

Der Konnektor unterliegt den Bedingungen für Konnektoren.

Unter diesem Thema werden die Schritte zur Einrichtung von Openflow Connector for Snowflake to Kafka beschrieben.

Voraussetzungen

  1. Stellen Sie sicher, dass Sie Allgemeine Informationen zu Openflow Connector for Snowflake to Kafka gelesen haben.

  2. Stellen Sie sicher, dass Sie Openflow einrichten – BYOC oder Openflow einrichten – Snowflake-Bereitstellung – Überblick zu Aufgaben haben.

  3. Erstellen Sie einen Snowflake-Stream, der nach den Änderungen abgefragt werden soll.

  4. Erstellen Sie ein Kafka-Thema, das CDC-Meldungen aus dem Snowflake-Stream empfangen wird.

Snowflake-Konto einrichten

Als Snowflake-Kontoadministrator führen Sie die folgenden Aufgaben aus:

  1. Erstellen Sie die Datenbank, die Quelltabelle und das Stream-Objekt, die der Konnektor zum Lesen von CDC-Ereignissen verwenden soll. Beispiel:

    create database stream_db;
    use database stream_db;
    create table stream_source (user_id varchar, data varchar);
    create stream stream_on_table on table stream_source;
    
    Copy
  2. Erstellen Sie eine neue Rolle oder verwenden Sie eine vorhandene Rolle, und gewähren Sie die SELECT-Berechtigung für den Stream und das Quellobjekt für den Stream. Der Konnektor benötigt außerdem die USAGE-Berechtigung für die Datenbank und das Schema, die den Stream und das Quellobjekt für den Stream enthalten. Beispiel:

    create role stream_reader;
    grant usage on database stream_db to role stream_reader;
    grant usage on schema stream_db.public to role stream_reader;
    grant select on stream_source to role stream_reader;
    grant select on stream_on_table to role stream_reader;
    
    Copy
  3. Erstellen Sie einen neuen Benutzer für den Snowflake-Dienst mit dem Typ SERVICE. Beispiel:

    create user stream_user type = service;
    
    Copy
  4. Weisen Sie dem Benutzer des Snowflake-Dienstes die Rolle zu, die Sie in den vorherigen Schritten erstellt haben. Beispiel:

    grant role stream_reader to user stream_user;
    
    Copy
  5. Konfigurieren Sie mit Schlüsselpaar-Authentifizierung für den Snowflake SERVICE-Benutzer aus Schritt 3.

  6. Snowflake empfiehlt diesen Schritt dringend. Konfigurieren Sie einen von Openflow unterstützten Geheimnismanager, z. B. AWS, Azure und Hashicorp, und speichern Sie die öffentlichen und privaten Schlüssel im Geheimnisspeicher. Beachten Sie jedoch, dass der in Schritt 4 erzeugte private Schlüssel direkt als Konfigurationsparameter für die Konfiguration des Konnektors verwendet werden kann. In diesem Fall wird der private Schlüssel in der Openflow-Laufzeitkonfiguration gespeichert.

    Bemerkung

    Wenn Sie aus irgendeinem Grund keinen Geheimnismanager verwenden möchten, sind Sie dafür verantwortlich, die für die Schlüsselpaar-Authentifizierung verwendeten öffentlichen und privaten Schlüsseldateien gemäß den Sicherheitsrichtlinien Ihrer Organisation zu schützen.

    1. Nachem der Geheimnismanager konfiguriert ist, legen Sie fest, wie Sie sich bei ihm authentifizieren möchten. Auf AWS wird empfohlen, die mit Openflow verknüpfte EC2-Instanzrolle zu verwenden, da auf diese Weise keine weiteren Geheimnisse gespeichert werden müssen.

    2. Konfigurieren Sie in Openflow über das Hamburger-Menü oben rechts einen Parameteranbieter, der mit diesem Secrets Manager verbunden ist. Navigieren Sie zu Controller Settings » Parameter Provider und rufen Sie dann Ihre Parameterwerte ab.

    3. Zu diesem Zeitpunkt können alle Anmeldeinformationen mit den zugehörigen Parameterpfaden referenziert werden, und es müssen keine sensiblen Werte innerhalb von Openflow aufbewahrt werden.

  7. Bestimmen Sie ein Warehouse, das der Konnektor verwenden soll. Ein Konnektor kann eine einzelne Tabelle in ein einzelnes Kafka-Thema replizieren. Für diese Art der Verarbeitung können Sie das kleinste Warehouse wählen.

Einrichten des Konnektors

Als Data Engineer führen Sie die folgenden Aufgaben aus, um einen Konnektor zu installieren und zu konfigurieren:

  1. Navigieren Sie zur Openflow-Übersichtsseite. Wählen Sie im Abschnitt Featured connectors die Option View more connectors aus.

  2. Suchen Sie auf der Seite „Openflow Connectors“ den Konnektor und wählen Sie ihn aus, je nachdem, mit welcher Art von Kafka-Broker-Instanz der Konnektor kommunizieren soll.

    • mTLS-Version: Wählen Sie diesen Konnektor, wenn Sie das SSL-Sicherheitsprotokoll (mutual TLS) verwenden, oder wenn Sie das SASL_SSL-Protokoll verwenden und eine Verbindung zu einem Broker herstellen, der selbstsignierte Zertifikate verwendet.

    • SASL-Version: Wählen Sie diesen Konnektor, wenn Sie ein anderes Sicherheitsprotokoll verwenden.

  3. Wählen Sie Add to runtime aus.

  4. Wählen Sie im Dialog Select runtime Ihre Laufzeit aus der Dropdown-Liste Available runtimes aus.

  5. Wählen Sie Add aus.

  6. Authentifizieren Sie sich bei der Bereitstellung mit den Anmeldedaten Ihres Snowflake-Kontos und wählen Sie Allow, wenn Sie dazu aufgefordert werden, damit die Laufzeitanwendung auf Ihr Snowflake-Konto zugreifen kann. Die Installation des Konnektors nimmt einige Minuten in Anspruch.

  7. Authentifizieren Sie sich bei der Laufzeit mit den Anmeldeinformationen Ihres Snowflake-Kontos.

    Das Openflow-Canvas wird mit der hinzugefügten Prozessgruppe des Konnektors angezeigt.

  8. Klicken Sie mit der rechten Maustaste auf die importierte Prozessgruppe und wählen Sie Parameters.

  9. Geben Sie die erforderlichen Parameterwerte ein, wie unter Ablaufparameter beschrieben.

Ablaufparameter

In diesem Abschnitt werden die Ablaufparameter beschrieben, die Sie anhand der folgenden Parameterkontexte konfigurieren können:

Quellsystemparameter für Kafka-Senke

Parameter

Beschreibung

Erforderlich

Snowflake Account Identifier

Bei Verwendung von:

  • Strategie für die Authentifizierung mit Sitzungstoken: Muss leer sein.

  • KEY_PAIR: Snowflake-Kontoname im Format [Organisationsname]-[Kontoname], wobei die Daten persistent gespeichert werden.

Ja

Snowflake Authentication Strategy

Bei Verwendung von:

  • Snowflake Openflow-Bereitstellung: Verwenden Sie SNOWFLAKE_SESSION_TOKEN. Dieses Token wird automatisch von Snowflake verwaltet.

  • BYOC: Verwenden Sie KEY_PAIR als Wert für die Authentifizierungsstrategie.

Ja

Source Database

Quelldatenbank. Diese Datenbank sollte das Snowflake Stream-Objekt enthalten, das verbraucht wird.

Ja

Snowflake Private Key Password

Bei Verwendung von:

  • Strategie für die Authentifizierung mit Sitzungstoken: Muss leer sein.

  • KEY_PAIR: Geben Sie das Kennwort an, das mit der privaten Snowflake-Schlüsseldatei verbunden ist.

Nein

Snowflake Role

Bei Verwendung von

  • Strategie für die Authentifizierung mit Sitzungstoken: Verwenden Sie Ihre Laufzeitrolle. Sie finden Ihre Laufzeitrolle in der Openflow-UI, indem Sie zu View Details für Ihre Laufzeitumgebung navigieren.

  • KEY_PAIR Authentifizierungsstrategie: Verwenden Sie eine gültige Rolle, die für Ihren Dienstbenutzer konfiguriert ist.

Ja

Snowflake-Benutzername

Bei Verwendung von:

  • Strategie für die Authentifizierung mit Sitzungstoken: Muss leer sein.

  • KEY_PAIR: Geben Sie den Benutzernamen an, der für die Verbindung mit der Snowflake-Instanz verwendet wird.

Ja

Snowflake Private Key

Lassen Sie dieses Feld leer, wenn Sie Sitzungstoken für Ihre Authentifizierungsstrategie verwenden. Bei Verwendung von KEY_PAIR geben Sie den RSA Private Key an, der für die Authentifizierung verwendet wird. Der RSA-Schlüssel muss entsprechend den PKCS8-Standards formatiert sein und Standard-PEM-Header und -Footer haben. Beachten Sie, dass entweder die private Snowflake-Schlüsseldatei oder der private Snowflake-Schlüssel definiert werden muss.

Ja

Snowflake Private Key File

Lassen Sie dieses Feld leer, wenn Sie Sitzungstoken für Ihre Authentifizierungsstrategie verwenden. Wenn Sie KEY_PAIR verwenden, laden Sie die Datei hoch, die den RSA Private Key für die Authentifizierung bei Snowflake enthält, formatiert nach PKCS8-Standards und mit Standard-PEM-Headern und -Footern. Die Header-Zeile beginnt mit -----BEGIN PRIVATE. Aktivieren Sie das Kontrollkästchen Reference asset, um die Private Key-Datei hochzuladen.

Nein

Quellschema

Das Quellschema. Dieses Schema sollte das Snowflake Stream-Objekt enthalten, das verwendet werden soll.

Ja

Snowflake Warehouse

Snowflake Warehouse zur Ausführung von Abfragen

Ja

Zielsystemparameter für Kafka-Senke

Parameter

Beschreibung

Erforderlich

Kafka Bootstrap Servers

Eine durch Kommas getrennte Liste von Kafka-Brokern, an die Daten gesendet werden sollen.

Ja

Kafka SASL Mechanism

SASL-Mechanismus, der für die Authentifizierung verwendet wird. Entspricht der Eigenschaft sasl.mechanism des Kafka-Clients. Mögliche Werte:

  • PLAIN

  • SCRAM-SHA-256

  • SCRAM-SHA-512

  • AWS_MSK_IAM

Ja

Kafka SASL Username

Der Benutzername für die Authentifizierung bei Kafka

Ja

Kafka SASL Password

Das Kennwort für die Authentifizierung bei Kafka

Ja

Kafka-Sicherheitsprotokoll

Sicherheitsprotokoll, das für die Kommunikation mit Brokern verwendet wird. Entspricht der Eigenschaft security.protocol des Kafka-Clients. Mögliche Werte:

  • PLAINTEXT

  • SASL_PLAINTEXT

  • SASL_SSL

  • SSL

Ja

Kafka Topic

Das Kafka-Thema, an das CDCs von Snowflake Stream gesendet werden

Ja

Kafka Message Key Field

Gibt den Namen der Datenbankspalte an, die als Schlüssel für die Kafka-Meldung verwendet werden soll. Wenn nicht angegeben, wird der Meldungsschlüssel nicht gesetzt. Falls angegeben, wird der Wert dieser Spalte als Meldungsschlüssel verwendet. Bei diesem Parameter wird die Groß-/Kleinschreibung beachtet.

Nein

Kafka Keystore Filename

Ein vollständiger Pfad zu einem Keystore, in dem ein Clientschlüssel und ein Zertifikat für die mTLS-Authentifizierungsmethode gespeichert sind. Erforderlich für die mTLS-Authentifizierung und wenn das Sicherheitsprotokoll SSL ist.

Nein

Kafka Keystore Type

Der Typ des Keystore. Erforderlich für die mTLS Authentifizierung. Mögliche Werte:

  • PKCS12

  • JKS

  • BCFKS

Nein

Kafka Keystore Password

Das Kennwort, das zur Sicherung der Keystore-Datei verwendet wird.

Nein

Kafka Key Password

Ein Kennwort für den im Keystore gespeicherten privaten Schlüssel. Erforderlich für die mTLS Authentifizierung.

Nein

Kafka Truststore Filename

Ein vollständiger Pfad zu einem Truststore, der Broker-Zertifikate speichert. Der Client verwendet das Zertifikat aus diesem Truststore, um die Identität des Brokers zu überprüfen.

Nein

Kafka Truststore Type

Der Typ der Truststore-Datei. Mögliche Werte:

  • PKCS12

  • JKS

  • BCFKS

Nein

Kafka Truststore Password

Ein Kennwort für die Truststore-Datei.

Nein

Aufnahmeparameter für Kafka-Senke

Parameter

Beschreibung

Erforderlich

Snowflake FQN Stream Name

Vollständig qualifizierter Snowflake Stream-Name.

Ja

Führen Sie den Ablauf aus

  1. Klicken Sie mit der rechten Maustaste auf die Ebene, und wählen Sie Enable all Controller Services.

  2. Klicken Sie mit der rechten Maustaste auf die importierte Prozessgruppe und wählen Sie Start. Der Konnektor startet die Datenaufnahme.