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 eingerichtet 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 einen mit diesem Geheimnismanager verknüpften Parameter Provider über das Hamburger-Menü oben rechts. Navigieren Sie zu Controller Settings » Parameter Provider, und rufen Sie 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

Snowflake-Kontoname im Format [organisation-name]-[account-name], in dem die Daten gespeichert werden sollen. Beispiel: example.snowflakecomputing.com

Ja

Snowflake Authentication Strategy

Strategie zur Authentifizierung bei Snowflake. Mögliche Werte:

  • SNOWFLAKE_SESSION_TOKEN: Wenn Sie den Konnektor auf SPCS ausführen

  • KEY_PAIR: Wenn Sie den Zugang mit einem privaten Schlüssel einrichten möchten

Ja

Source Database

Quellendatenbank. Die Datenbank sollte ein Snowflake-Stream-Objekt enthalten, das später verwendet wird.

Ja

Snowflake Private Key Password

Das Kennwort, das mit dem Snowflake Private Key verknüpft ist. Dies ist nicht erforderlich, wenn der verwendete private Schlüssel nicht mit einem Kennwort gesichert ist.

Nein

Snowflake Role

Snowflake-Rolle, die bei der Ausführung der Abfrage verwendet wird

Ja

Snowflake-Benutzername

Benutzername für die Verbindung mit der Snowflake-Instanz

Ja

Snowflake Warehouse

Snowflake Warehouse zur Ausführung von Abfragen

Ja

Snowflake Private Key

Der private RSA Schlüssel, der für die Authentifizierung verwendet wird. Der RSA-Schlüssel muss nach den PKCS8-Standards formatiert sein und den Standard-PEM-Header und -Footer enthalten. Beachten Sie, dass entweder Snowflake Private Key File oder Snowflake Private Key definiert sein muss.

Ja

Snowflake Private Key File

Die Datei, die den privaten RSA-Schlüssel enthält, der für die Authentifizierung bei Snowflake verwendet wird. Sie ist nach den PKCS8-Standards formatiert und hat die Standard-PEM-Header und -Footer. Die Header beginnt mit -----BEGIN PRIVATE. Aktivieren Sie das Kontrollkästchen Reference asset, um die private Schlüsseldatei hochzuladen.

Nein

Quellschema

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

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.