Einrichten von Openflow Connector for SQL Server

Unter diesem Thema wird beschrieben, wie Sie Openflow Connector for SQL Server einrichten.

Weitere Informationen zum inkrementellen Ladeprozess finden Sie unter Inkrementelle Replikation.

Voraussetzungen

Stellen Sie vor dem Einrichten des Konnektors sicher, dass Sie die folgenden Voraussetzungen erfüllt haben:

  1. Stellen Sie sicher, dass Sie Allgemeine Informationen zu Openflow Connector for SQL Server gelesen haben.

  2. Stellen Sie sicher, dass Sie Unterstützte SQL-Server-Versionen gelesen haben.

  3. Vergewissern Sie sich, dass Sie Ihre Laufzeitbereitstellung eingerichtet haben. Weitere Informationen dazu finden Sie unter folgenden Themen:

  4. Stellen Sie bei der Verwendung von Openflow - Snowflake Deployments sicher, dass Sie Konfigurieren der erforderlichen Domänen gelesen haben und Zugriff auf die erforderlichen Domänen für den SQL Server-Konnektor gewährt haben.

Ihre SQL Server-Instanz einrichten

Bevor Sie den Konnektor einrichten, führen Sie die folgenden Aufgaben in Ihrer SQL Server-Umgebung durch:

Bemerkung

Sie müssen diese Aufgaben als Datenbankadministrator ausführen.

  1. Aktivieren Sie die Änderungsverfolgung für die Datenbanken und Tabellen, für die Sie die Replikation planen, wie im folgenden Beispiel für SQL Server gezeigt:

    ALTER DATABASE <database>
      SET CHANGE_TRACKING = ON
      (CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON);
    
    ALTER TABLE <schema>.<table>
      ENABLE CHANGE_TRACKING;
    
    Copy

    Bemerkung

    Führen Sie diese Befehle für jede Datenbank und Tabelle aus, die Sie replizieren möchten.

    Der Konnektor setzt voraus, dass die Änderungsverfolgung für Datenbanken und Tabellen aktiviert ist, bevor die Replikation beginnt. Stellen Sie sicher, dass für jede Tabelle, die Sie replizieren möchten, die Änderungsverfolgung aktiviert ist. Sie können die Änderungsverfolgung auch für zusätzliche Tabellen aktivieren, während der Konnektor läuft.

  2. Eine Anmeldung für die SQL Server-Instanz erstellen:

    CREATE LOGIN <user_name> WITH PASSWORD = '<password>';
    
    Copy

    Diese Anmeldung wird verwendet, um Benutzer für die Datenbanken zu erstellen, die Sie replizieren möchten.

  3. Erstellen Sie einen Benutzer für jede Datenbank, die Sie replizieren, indem Sie den folgenden SQL Server-Befehl in jeder Datenbank ausführen:

    USE <source_database>;
    CREATE USER <user_name> FOR LOGIN <user_name>;
    
    Copy
  4. Gewähren Sie die SELECT- und VIEW CHANGE TRACKING-Berechtigungen für den Benutzer für jede Datenbank, die Sie replizieren:

    GRANT SELECT ON <database>.<schema>.<table> TO <user_name>;
    GRANT VIEW CHANGE TRACKING ON <database>.<schema>.<table> TO <user_name>;
    
    Copy

    Führen Sie diese Befehle in jeder Datenbank für jede Tabelle aus, die Sie replizieren möchten. Diese Berechtigungen müssen dem Benutzer jeder Datenbank erteilt werden, die Sie in einem vorherigen Schritt erstellt haben.

  5. (Optional) Erteilen Sie die VIEW DEFINITION-Berechtigung für die benutzerdefinierten Datentypen (UDDT).

    Wenn Ihre Tabellen Spalten enthalten, die benutzerdefinierte Datentypen (UDDT) verwenden, und der UDDT einem anderen Benutzenden als dem Konnektor-Benutzenden gehört, müssen Sie die VIEW DEFINITION-Berechtigung für den Konnektor-Benutzenden erteilen, wie im Folgenden SQL Server-Beispiel gezeigt:

    GRANT VIEW DEFINITION TO <user_name>;
    
    Copy

    Ohne diese Berechtigung werden Spalten, die UDDT verwenden, stillschweigend von der Replikation ausgeschlossen.

  6. (Optional) Konfigurieren Sie die SSL-Verbindung.

    Wenn Sie eine SSL-Verbindung zum Verbinden des SQL-Servers verwenden, erstellen Sie das Stammzertifikat für Ihren Datenbankserver. Dies ist erforderlich, wenn Sie den Konnektor konfigurieren.

Einrichten Ihrer Snowflake-Umgebung

Führen Sie als Snowflake-Administratoren die folgenden Aufgaben aus:

  1. Erstellen Sie in Snowflake eine Zieldatenbank zum Speichern der replizierten Daten:

    CREATE DATABASE <destination_database>;
    
    Copy
  2. Snowflake Servicebenutzer erstellen:

    CREATE USER <openflow_user>
      TYPE = SERVICE
      COMMENT='Service user for automated access of Openflow';
    
    Copy
  3. Erstellen Sie eine Snowflake-Rolle für den Konnektor, und erteilen Sie die erforderlichen Berechtigungen:

    CREATE ROLE <openflow_role>;
    GRANT ROLE <openflow_role> TO USER <openflow_user>;
    GRANT USAGE ON DATABASE <destination_database> TO ROLE <openflow_role>;
    GRANT CREATE SCHEMA ON DATABASE <destination_database> TO ROLE <openflow_role>;
    
    Copy

    Verwenden Sie diese Rolle, um den Zugriff des Konnektors auf die Snowflake-Datenbank zu verwalten.

    Um Objekte in der Zieldatenbank zu erstellen, müssen Sie die Berechtigungen USAGE und CREATE SCHEMA für die Datenbank der Rolle gewähren, die für die Zugriffsverwaltung verwendet wird.

  4. Erstellen Sie ein Snowflake-Warehouse für den Konnektor, und erteilen Sie die erforderlichen Berechtigungen:

    CREATE WAREHOUSE <openflow_warehouse> WITH
      WAREHOUSE_SIZE = 'XSMALL'
      AUTO_SUSPEND = 300
      AUTO_RESUME = TRUE;
    GRANT USAGE, OPERATE ON WAREHOUSE <openflow_warehouse> TO ROLE <openflow_role>;
    
    Copy

    Snowflake empfiehlt, mit der Warehouse-Größe XSMALL zu beginnen und dann abhängig von der Anzahl der zu replizierenden Tabellen und der übertragenen Datenmenge mit der Größe zu experimentieren. Eine große Anzahl von Tabellen skaliert normalerweise besser mit Multi-Cluster-Warehouses und nicht anhand der Warehouse-Größe. Weitere Informationen dazu finden Sie unter Multi-Cluster-Warehouses.

  5. Richten Sie den öffentlichen und privaten Schlüssel für die Schlüsselpaar-Authentifizierung ein:

    1. Erstellen Sie ein Paar sicherer Schlüssel (öffentlich und privat).

    2. Speichern Sie den privaten Schlüssel für den Benutzer in einer Datei, um sie für die Konfiguration des Konnektors bereitzustellen.

    3. Weisen Sie dem Snowflake Service-Benutzer den öffentlichen Schlüssel zu.

      ALTER USER <openflow_user> SET RSA_PUBLIC_KEY = 'thekey';
      
      Copy

      Weitere Informationen dazu finden Sie unter Schlüsselpaar-Authentifizierung und Schlüsselpaar-Rotation.

Konnektor installieren

Um den Konnektor zu installieren, gehen Sie als Data Engineer wie folgt vor:

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

  2. Suchen Sie auf der Seite Openflow-Konnektoren den Konnektor und wählen Sie Add to runtime.

  3. Wählen Sie im Dialogfeld Select runtime Ihre Laufzeitumgebung aus der Dropdown-Liste Available runtimes aus, und klicken Sie auf Add.

    Bemerkung

    Bevor Sie den Konnektor installieren, stellen Sie sicher, dass Sie in Snowflake eine Datenbank und ein Schema für den Konnektor erstellt haben, in dem die aufgenommenen Daten gespeichert werden.

  4. 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.

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

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

Konnektor konfigurieren

Um den Konnektor zu konfigurieren, gehen Sie als Data Engineer wie folgt vor:

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

  2. Füllen Sie die erforderlichen Parameterwerte, wie unter Ablaufparameter beschrieben.

Ablaufparameter

Beginnen Sie mit der Einstellung der Parameter des SQLServer-Quellparameterkontexts, und fahren Sie dann mit dem SQLServer-Zielparameterkontext fort. Nachdem Sie dies abgeschlossen haben, aktivieren Sie den Konnektor. Der Konnektor stellt die Verbindung zu SQLServer und Snowflake her und startet dann mit der Ausführung. Der Konnektor repliziert jedoch erst dann Daten, wenn die zu replizierenden Tabellen explizit zu seiner Konfiguration hinzugefügt wurden.

Um bestimmte Tabellen für die Replikation zu konfigurieren, bearbeiten Sie die Aufnahmeparameter für SQLServer. Nachdem Sie die Änderungen am Kontext der Aufnahmeparameter für SQLServer vorgenommen haben, wird die Konfiguration vom Konnektor übernommen und der Replikationslebenszyklus für jede Tabelle gestartet.

Quellsystemparameter für SQLServer

Parameter

Beschreibung

SQLServer Verbindungs-URL

Die vollständige JDBC URL zur Quelldatenbank.

Beispiel:

  • jdbc:sqlserver://example.com:1433;encrypt=false;

SQLServer-JDBC-Treiber

Aktivieren Sie das Reference asset-Kontrollkästchen, um den SQL Server JDBC-Treiber hochzuladen.

SQLServer Benutzername

Der Benutzername für den Konnektor.

SQLServer Kennwort

Das Kennwort für den Konnektor.

Zielsystemparameter für SQLServer

Parameter

Beschreibung

Erforderlich

Destination Database

Die Datenbank, in der Daten persistent gespeichert werden. Sie muss bereits in Snowflake vorhanden sein. Beim Namen wird zwischen Groß- und Kleinschreibung unterschieden. Bei Bezeichnern ohne Anführungszeichen geben Sie den Namen in Großbuchstaben an.

Ja

Snowflake Authentication Strategy

Bei Verwendung von:

  • Snowflake Openflow-Bereitstellung oder BYOC: Verwenden Sie SNOWFLAKE_MANAGED_TOKEN. Dieses Token wird automatisch von Snowflake verwaltet. Für BYOC-Bereitstellungen müssen zuvor Laufzeitrollen konfiguriert sein, um SNOWFLAKE_MANAGED_TOKEN zu verwenden.

  • BYOC: Alternativ kann BYOC KEY_PAIR als Wert für die Authentifizierungsstrategie verwenden.

Ja

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-Verbindungsstrategie

Bei Verwendung von KEY_PAIR geben Sie die Strategie für die Verbindung zu Snowflake an:

  • STANDARD (Standard): Verbindung zu Snowflake-Services über standardmäßiges öffentliches Routing.

  • PRIVATE_CONNECTIVITY: Stellen Sie eine Verbindung über private Adressen her, die mit der unterstützenden Cloudplattform verbunden sind, wie z. B. AWS PrivateLink.

Nur erforderlich für BYOC mit KEY_PAIR, andernfalls wird dies ignoriert.

Auflösung des Snowflake-Objektbezeichners

Gibt an, wie Quellobjektbezeichner wie Schemas, Tabellen und Spaltennamen in Snowflake gespeichert und abgefragt werden. Diese Einstellung bestimmt, ob Sie in SQL-Abfragen doppelte Anführungszeichen verwenden müssen.

Option 1: Standard ist die Beachtung der Groß- und Kleinschreibung (empfohlen).

  • Transformation: Alle Bezeichner werden in Großbuchstaben umgewandelt. Beispiel: My_Table wird zu MY_TABLE.

  • Abfragen: SQL-Abfragen unterscheiden nicht zwischen Groß- und Kleinschreibung und benötigen keine doppelten SQL-Anführungszeichen.

    Beispiel: SELECT * FROM my_table; gibt die gleichen Ergebnisse zurück wie SELECT * FROM MY_TABLE;.

Bemerkung

Snowflake empfiehlt die Verwendung dieser Option, wenn Datenbankobjekte keine Namen mit gemischter Groß-/Kleinschreibung haben.

Wichtig

Ändern Sie diese Einstellung nicht, nachdem die Datenaufnahme des Konnektors begonnen hat. Das Ändern dieser Einstellung nach Beginn der Datenaufnahme führt zum Abbruch der bestehenden Datenaufnahme. Wenn Sie diese Einstellung ändern müssen, erstellen Sie eine neue Konnektorinstanz.

Option 2: Groß-/Kleinschreibung wird berücksichtigt.

  • Transformation: Die Groß-/Kleinschreibung bleibt erhalten. Beispiel: My_Table bleibt My_Table.

  • Abfragen: SQL-Abfragen müssen doppelte Anführungszeichen verwenden, um der genauen Schreibweise von Datenbankobjekten zu entsprechen. Beispiel: SELECT * FROM "My_Table";.

Bemerkung

Snowflake empfiehlt die Verwendung dieser Option, wenn Sie die Groß-/Kleinschreibung der Quelle aus Gründen der Kompatibilität beibehalten müssen. Wenn beispielsweise die Quelldatenbank Tabellennamen enthält, die sich nur in der Groß-/Kleinschreibung unterscheiden, wie z. B. MY_TABLE und my_table, würde dies bei Vergleichen ohne Berücksichtigung der Groß-/Kleinschreibung zu Namenskonflikten führen.

Ja

Snowflake Private Key

Bei Verwendung von:

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

  • KEY_PAIR: Muss der RSA private Schlüssel sein, der für die Authentifizierung verwendet wird.

    Der RSA-Schlüssel muss entsprechend den PKCS8-Standards formatiert sein und standardmäßige PEM-Header und Footer haben. Beachten Sie, dass entweder eine private Snowflake-Schlüsseldatei oder ein privater Snowflake-Schlüssel definiert werden muss.

Nein

Snowflake Private Key File

Bei Verwendung von:

  • Authentifizierungsstrategie für Sitzungstoken: Die Datei des privaten Schlüssels muss leer sein.

  • KEY_PAIR: 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-Header und -Footer. Die Header-Zeile beginnt mit -----BEGIN PRIVATE. Aktivieren Sie das Kontrollkästchen Reference asset, um die Private Key-Datei hochzuladen.

Nein

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 die Snowflake-Rolle, die der Laufzeitrolle oder der untergeordneten Rolle zugewiesen ist, die dieser Snowflake-Rolle zugewiesen wurde. Sie finden Ihre Snowflake-Laufzeitrolle in der Openflow-UI, indem Sie die Schaltfläche More Options [⋮] für Ihre Laufzeitumgebung erweitern und Set Snowflake role auswählen.

  • 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 Warehouse

Snowflake Warehouse, das für die Ausführung von Abfragen verwendet wird.

Ja

Aufnahmeparameter für SQLServer

Parameter

Beschreibung

Included Table Names

Eine durch Kommas getrennte Liste der Quelltabellenpfade, einschließlich ihrer Datenbanken und Schemas, zum Beispiel:

database_1.public.table_1, database_2.schema_2.table_2

Included Table Regex

Ein regulärer Ausdruck zum Abgleich mit Tabellenpfaden, einschließlich Datenbank- und Schemanamen. Jeder Pfad, der mit dem Ausdruck übereinstimmt, wird repliziert, und neue Tabellen, die dem Muster entsprechen und später erstellt werden, werden ebenfalls automatisch aufgenommen. Beispiel:

database_name\.public\.auto_.*

Filter JSON

Eine JSON-Datei mit einer Liste vollqualifizierter Tabellennamen und einem Regex-Muster für Spaltennamen, die in die Replikation einbezogen werden sollen.

Das folgende Beispiel enthält alle Spalten, die mit name in table1 enden, aus dem öffentlichen Schema in der my_db-Datenbank:

[ {"database":"my_db", "schema":"public", "table":"table1", "includedPattern":".*name"} ]

Merge Task Schedule CRON

CRON-Ausdruck, der Zeiträume definiert, in denen Zusammenführungsoperationen vom Journal zur Zieltabelle ausgelöst werden. Setzen Sie ihn auf * * * * * ?, wenn Sie eine kontinuierliche Zusammenführung oder keinen Zeitplan zur Begrenzung der Warehouse-Laufzeit wünschen.

Beispiel:

  • Die Zeichenfolge * 0 * * * ? gibt an, dass Sie Zusammenführungen zu jeder vollen Stunde für eine Minute planen möchten.

  • Die Zeichenfolge * 20 14 ? * MON-FRI gibt an, dass Sie Zusammenführungen um 2:20 PM jeden Montag bis Freitag planen möchten.

Weitere Informationen und Beispiele finden Sie in der Anleitung zu Cron-Triggern in der Quartz-Dokumentation

Replizieren von Tabellen von einem Replikatserver von SQL Server

Der Konnektor kann Daten von einem Primärserver, von einem Abonnentenserver mithilfe der transaktionalen Replikation oder von einem sekundären Replikat in einer Always On-Verfügbarkeitsgruppe einlesen. Bevor Sie den Konnektor für die Verbindung mit einem SQL Server-Replikat konfigurieren, stellen Sie sicher, dass die Replikation zwischen Primär- und Replikatknoten korrekt funktioniert. Wenn Sie Probleme mit fehlenden Daten im Konnektor untersuchen, stellen Sie zunächst sicher, dass auf dem vom Konnektor verwendeten Replikatserver fehlende Zeilen und Ereignisse der Änderungsverfolgung vorhanden sind.

Um die Kontinuität zu gewährleisten, stellen Sie sicher, dass derselbe Verbindungsbenutzer sowohl auf dem primären Server als auch auf dem Replikatserver verfügbar ist und Zugriff auf die Daten und die Änderungsverfolgungstabellen hat.

Transaktionsreplikation

Die Transaktionsreplikation ist ein Datenverteilungsmechanismus, der Datenänderungen von einem Herausgeber zu Abonnenten kopiert. Um den Konnektor so zu konfigurieren, dass er von einem Abonnentenserver anstelle des Herausgebers liest, geben Sie die Abonnentenserver-URL im Parameter SQLServer Connection URL an.

Warnung

Ändern Sie den Datenbankserver nicht, nachdem die Replikation gestartet wurde. Jede Datenbank behält ihren eigenen Änderungsverfolgungsstatus unabhängig bei, sodass der Wechsel zu einem anderen Server dazu führen würde, dass der Konnektor den Überblick darüber verliert, welche Änderungen bereits verarbeitet wurden, und dies zu Datenverlusten führen kann.

Always On-Verfügbarkeitsgruppen

Always On-Verfügbarkeitsgruppen sind eine hochverfügbare Lösung für die Notfallwiederherstellung, die synchronisierte Kopien von Datenbanken für Failover-Zwecke verwaltet. Der Konnektor kann aus einem sekundären Replikat in der Verfügbarkeitsgruppe lesen. Konfigurieren Sie für optimale Ergebnisse eine Überwachung für die Verfügbarkeitsgruppe, und verwenden Sie den DNS-Namen für die Überwachung im Parameter SQLServer Connection URL.

Replikation der Tabellen neu starten

Eine Tabelle in FAILED-Status – z. B. aufgrund eines fehlenden Primärschlüssels oder einer nicht unterstützten Schemaänderung – wird nicht automatisch neu gestartet. Wenn eine Tabelle in einen FAILED-Status übergeht oder Sie die Replikation von Grund auf neu starten müssen, gehen Sie wie folgt vor, um die Tabelle zu entfernen und zur Replikation erneut hinzuzufügen.

Bemerkung

Wenn der Fehler durch ein Problem in der Quelltabelle verursacht wurde, z. B. durch einen fehlenden Primärschlüssel, beheben Sie dieses Problem in der Quelldatenbank, bevor Sie fortfahren.

  1. Die Tabelle aus den Ablaufparametern entfernen: Entfernen Sie im Kontext der Datenaufnahmeparameter entweder die Tabelle aus Included Table Names, oder ändern Sie Included Table Regex so, dass die Tabelle nicht mehr übereinstimmt.

  2. Überprüfen, ob die Tabelle entfernt wurde:

    1. Klicken Sie in der Openflow-Laufzeitoberfläche mit der rechten Maustaste auf eine Prozessorgruppe, und wählen Sie Controller Services.

    2. Suchen Sie in der Tabelle mit den Controllerdiensten die Zeile Table State Store, klicken Sie auf die drei vertikalen Punkte rechts von der Zeile, und wählen Sie dann View State aus.

    Wichtig

    Sie müssen warten, bis der Status der Tabelle vollständig aus dieser Liste entfernt wurde, bevor Sie fortfahren können. Fahren Sie nicht fort, bis diese Konfigurationsänderung abgeschlossen ist.

  3. Ziel bereinigen: Sobald der Status der Tabelle als „vollständig entfernt“ angezeigt wird, DROP Sie die Zieltabelle manuell in Snowflake. Beachten Sie, dass der Konnektor während der Snapshot-Phase keine vorhandene Zieltabelle überschreibt. Wenn die Tabelle noch existiert, schlägt die Replikation erneut fehl. Optional können die Journaltabelle und der Stream auch entfernt werden, wenn sie nicht mehr benötigt werden.

  4. Fügen Sie die Tabelle erneut hinzu: Aktualisieren Sie den Parameter Included Table Names oder Included Table Regex so, dass die Tabelle wieder eingeschlossen wird.

  5. Neustart überprüfen: Überprüfen Sie den Table State Store unter Verwendung der zuvor angegebenen Anweisungen. Der Status der Tabelle sollte mit dem Status NEW angezeigt werden, dann in SNAPSHOT_REPLICATION übergehen und schließlich in INCREMENTAL_REPLICATION.

Replizieren einer Teilmenge von Spalten in einer Tabelle

Der Konnektor filtert die pro Tabelle replizierten Daten in einer Teilmenge der konfigurierten Spalten.

Um Filter auf Spalten anzuwenden, ändern Sie die Eigenschaft „Column Filter“ im Replikationsparameterkontext und fügen Sie ein Array mit Konfigurationen hinzu, wobei Sie für jede Tabelle, auf die Sie einen Filter anwenden möchten, einen Eintrag hinzufügen.

Schließen Sie Spalten nach Name oder Muster ein- und aus. Sie können eine Bedingung pro Tabelle anwenden oder mehrere Bedingungen kombinieren, wobei Ausschlüsse immer Vorrang vor Einschlüssen haben.

Das folgende Beispiel zeigt die Felder, die verfügbar sind. Die Felder schema und table sind Pflichtfelder. Eine oder mehrere der Optionen included, excluded, includedPattern, excludedPattern sind erforderlich.

[
    {
        "schema": "<source table schema>",
        "table" : "<source table name>",
        "included": ["<column name>", "<column name>"],
        "excluded": ["<column name>", "<column name>"],
        "includedPattern": "<regular expression>",
        "excludedPattern": "<regular expression>",
    }
]
Copy

Verfolgen von Datenänderungen in Tabellen

Der Konnektor repliziert den aktuellen Status der Daten aus den Quelltabellen sowie jeden Status jeder Zeile aus jedem Änderungssatz. Diese Daten werden in Journaltabellen gespeichert, die im gleichen Schema wie die Zieltabelle erstellt wurden.

Die Namen der Journaltabellen haben folgendes Format:<source_table_name>_JOURNAL_<timestamp>_<schema_generation>, wobei <timestamp> der Wert der Epochensekunden ist und angibt, wann die Quelltabelle zur Replikation hinzugefügt wurde, und <schema_generation> eine ganze Zahl ist, die mit jeder Schemaänderung in der Quelltabelle erhöht wird. Infolgedessen haben Quelltabellen, die Schemaänderungen unterliegen, mehrere Journaltabellen.

Wenn Sie eine Tabelle aus der Replikation entfernen und anschließend wieder hinzufügen, dann ändert sich der <timestamp>-Wert und``<schema_generation>`` beginnt wieder mit 1.

Wichtig

Snowflake empfiehlt, die Struktur von Journaltabellen in keiner Weise zu verändern. Sie werden vom Konnektor verwendet, um die Zieltabelle im Rahmen der Replikation zu aktualisieren.

Der Konnektor löscht Journaltabellen nie, sondern verwendet das neueste Journal für jede replizierte Quelltabelle und liest dabei nur Nur-Anfügen-Streams über Journale. Um den Speicher wieder freizugeben, können Sie Folgendes tun:

  • Sie können alle Journaltabellen jederzeit kürzen.

  • Löschen Sie die Journaltabellen, die sich auf Quelltabellen beziehen, die aus der Replikation entfernt wurden.

  • Löschen Sie alle Journaltabellen bis auf die neueste Generation aktiv replizierter Tabellen.

Wenn Ihr Konnektor beispielsweise so eingestellt ist, dass er die Quelltabelle orders aktiv repliziert, und Sie zuvor die Tabelle customers aus der Replikation entfernt haben, haben Sie möglicherweise die folgenden Journaltabellen. In diesem Fall können Sie alle außer orders_5678_2 löschen.

customers_1234_1
customers_1234_2
orders_5678_1
orders_5678_2

Planung von Zusammenführungsaufgaben konfigurieren

Der Konnektor verwendet ein Warehouse, um Daten aus der Änderungsdatenerfassung (CDC) in Zieltabellen zusammenzuführen. Diese Operation wird durch den Prozessor MergeSnowflakeJournalTable ausgelöst. Wenn es keine neuen Änderungen gibt oder wenn keine neuen FlowFiles in der MergeSnowflakeJournalTable-Warteschlange warten, wird keine Zusammenführung ausgelöst und das Warehouse wird automatisch ausgesetzt.

Verwenden Sie den CRON-Ausdruck im CRON-Parameter „Merge task Schedule“, um die Warehouse-Kosten zu begrenzen und die Zusammenführungen auf die geplanten Zeiten zu beschränken. Er drosselt die Flow-Dateien, die beim MergeSnowflakeJournalTable-Prozessor eingehen, und Zusammenführungen werden nur in einem bestimmten Zeitraum ausgelöst. Weitere Informationen zur Zeitplanung finden Sie unter Zeitplanungsstrategie.

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.