Veraltet – Snowflake Connector 1.x für Informatica Cloud

Unter diesem Thema finden Sie Informationen zum Einrichten und Verwenden der Version 1.x von Snowflake Connector. Es wird erläutert, wie Administratoren und Geschäftsanwender von Informatica Cloud-Organisationen Snowflake Connector verwenden können, um Daten in Snowflake zu veröffentlichen.

Der Konnektor implementiert das SDK von Informatica Cloud Connector. Er kann sowohl in Informatica Cloud als auch in Informatica PowerCenter 9.6.1 bereitgestellt werden. Um Unterstützung bei der Bereitstellung des Konnektors in PowerCenter zu erhalten, wenden Sie sich an den Snowflake-Support.

Bemerkung

Snowflake bietet auch eine ODBC-Bibliothek, die für die Datenintegration mit Informatica-Produkten verwendet werden kann. Derzeit unterstützt diese Bibliothek nur Lesefunktionen.

Unter diesem Thema:

Einführung in Snowflake Connector

Übersicht über Snowflake Connector

Snowflake bietet programmgesteuerte APIs zum Abfragen und Ändern von Daten in Form von ODBC- und JDBC-Bibliotheken nach Branchenstandard. Die ODBC-Bibliothek kann mit Informatica-Produkten unter Verwendung von standardmäßigen ODBC-Konnektoren verwendet werden. Weitere Informationen zur Konfiguration des ODBC-Konnektors finden Sie in der Informatica-Dokumentation. Die ODBC-Bibliothek kann von Ihrem Snowflake-Konto heruntergeladen werden. Das Schreiben oder Aktualisieren großer Datenmengen in Snowflake mit ODBC ist oft jedoch nicht die effizienteste oder effektivste Methode, diese Operationen durchzuführen.

Snowflake Connector ist darauf ausgelegt, den Durchsatz bei Massenvorgängen zum Einfügen, Ändern und Löschen einer großen Anzahl von Zeilen in Snowflake zu verbessern. Dabei werden die über Informatica empfangenen Daten zeilenweise zwischengespeichert, in Form von komprimierten, zeichengetrennten Dateien asynchron in den Cloudspeicher hochgeladen und die Daten aus den Dateien mithilfe des Snowflake-Befehls COPY importiert.

Implementierung von Snowflake Connector

Daten, die zur Verarbeitung übermittelt werden, werden innerhalb des internen Stagingbereichs für den konfigurierten Verbindungsbenutzer bereitgestellt (identifiziert durch das Zeichen ~).

Für jeden Job werden im Stagingbereich Unterverzeichnisse erstellt. Es können mehrere Batches verarbeitet werden, wobei für jeden Batch ein entsprechendes Unterverzeichnis innerhalb des Benutzer-Stagingbereichs vorhanden ist. Jedes Unterverzeichnis enthält die folgenden Informationen:

  • Name der Zieltabelle.

  • Name der Operation (INSERT, DELETE, UPSERT, MODIFY).

  • Zeitstempel und einen eindeutigen Bezeichner (fortlaufende Nummer)

Auf der Seite History Registerkarte „Verlauf“ in der Classic Console werden dem Benutzer,der für die Ausführung des Prozesses konfiguriert ist, die folgenden Befehle angezeigt:

  • SQL-Anweisungen, die so konfiguriert sind, dass sie vor einem Job ausgeführt werden.

  • Sequenz von PUT-Befehle zum Hochladen von Datendateien in den Stagingbereich.

  • Erstellung einer temporären Tabelle für das Staging von Daten.

  • Befehl COPY zum Importieren von Daten in die Staging-Tabelle, optional im Validierungsmodus, um Datenkonvertierungsfehler zuerst zu identifizieren/abzurufen.

  • Befehl DELETE, MERGE oder INSERT zum Verarbeiten der Daten

  • Befehl RM zum Bereinigen von Stagingdateien aus dem Stagingbereich.

Diese Sequenz kann vom Konnektor geändert werden, um die Leistung zu optimieren.

Datenfehler werden an Informatica gemeldet, um sie in das Sitzungsprotokoll der Fehlerdatei zu schreiben, und können zur Beendigung des Jobs führen, falls dies so konfiguriert ist. Der Snowflake-Ladeprozess an sich überspringt alle Datenkonvertierungsfehler.

Snowflake-Verbindungen

Überblick über Snowflake-Verbindungen

Snowflake Connector verwendet den Snowflake JDBC-Treiber für die Verbindung. Die Treiberbibliothek ist in der Konnektor-Distribution enthalten.

Snowflake-Verbindungseigenschaften

Snowflake Connector verwendet die folgenden Eigenschaften für die Verbindung mit Snowflake:

USER und PASSWORD

Benutzername und Kennwort des Kontos, das für den Ladevorgang verwendet werden. Snowflake empfiehlt, einen dedizierten Benutzer mit den entsprechenden Schreibrechten für die Tabelle zu verwenden, in die die Daten geladen werden.

Snowflake URL

JDBC URL für die Verbindung mit der Snowflake-Datenbank und dem Snowflake-Schema in Ihrem Konto. Beispiel:

jdbc:snowflake://xy12345.snowflakecomputing.com/?db=load&schema=etl

Wobei:

  • xy12345 ist der Name Ihres Kontos (bereitgestellt von Snowflake).

  • Wenn sich Ihr Konto nicht in der Region US West befindet, muss die JDBC-Verbindungszeichenfolge auch die Regions-ID nach dem Namen Ihres Kontos enthalten, und zwar im Format „<account_id>.<region_id>.snowflakecomputing.com“.

  • load ist der Name der Standarddatenbank, die zum Laden von Daten verwendet werden soll.

  • etl ist der Name des Schemas (in der Datenbank load), die die zu ladenden Tabellen enthält.

Bemerkung

Während der Entwurfszeit ist das Durchsuchen von Metadaten auf das Snowflake-Schema und die Datenbank beschränkt, die in der Verbindung oder im Suchpfad des Benutzers angegeben sind.

Tipp

Wenn Sie einen Job ausführen, der eine große Menge von Daten und sehr komplexe Transformationen enthält, kann er lange dauern. Wenn der Job länger als 4 Stunden dauert, kann das Snowflake-Verbindungstoken ablaufen. Um diese Situation zu vermeiden, können Sie den Parameter client_session_keep_alive in der JDBC-Verbindungszeichenfolge angeben, was verhindert, dass das Verbindungstoken abläuft. Beispiel:

jdbc:snowflake://xy12345.snowflakecomputing.com/?...&client_session_keep_alive=true

Start transaction for jobs

Wenn dies festgelegt ist, initiiert der Konnektor vor dem Start jedes Jobs eine Transaktion und führt nach Abschluss oder bei einem Fehler des Jobs ein Commit bzw. Rollback aus.

Bemerkung

Informatica unterstützt mit der Konnektor-API kein Rollback oder Trennen von Operationen. Das Beenden eines Jobs kann zu hängenden Tabellensperren und einer Transaktion ohne Commit führen, die dann möglicherweise manuell über die Snowflake-Befehlszeile freigegeben werden muss.

Abort on data errors

Wenn diese Eigenschaft ausgewählt ist, wird die Ausführung jedes Jobs abgebrochen, wenn beim Datenimport Datenkonvertierungsfehler auftreten. Legen Sie außerdem Start transaction for jobs fest, um partielle Änderungen bei Auftreten von Fehlern rückgängig zu machen.

Bemerkung

Da Daten asynchron geladen werden, kann für einige Daten bereits ein Commit ausgeführt worden sein, wenn diese Eigenschaft verwendet wird und mehr als ein Batch von Daten generiert wurde.

Propagate data stream

Der Konnektor implementiert eine Midstream-Schreibschnittstelle, die eine Verkettung der Datenverarbeitung ermöglicht. Wenn diese Eigenschaft ausgewählt ist, übergibt der Konnektor Daten zur weiteren Verarbeitung.

Um eine bessere Performance zu erzielen, wählen Sie diese Eigenschaft nicht aus.

Snowflake-Datensynchronisierungsaufgaben

Der Konnektor bietet erweiterte Zieleigenschaften zur Angabe von Snowflake-spezifischen Aktionen und Eigenschaften, die bei Ausführung einer Datensynchronisierungsaufgabe verwendet werden sollen.

Erweiterte Snowflake-Zieleigenschaften

In der folgenden Tabelle werden die erweiterten Zieleigenschaften beschrieben, die für eine Datensynchronisierungsaufgabe angegeben werden können:

Erweiterte Zieleigenschaft

Beschreibung

Update key columns

Durch Semikolon getrennte Liste von Spaltennamen in der Zieltabelle, die als zusammengesetzter Schlüssel für die Operationen DELETE oder MODIFY verwendet werden sollen.

Execute before

SQL-Anweisung, die vor dem Start eines Jobs ausgeführt wird.

Truncate table

Löschet vor Ausführung des Jobs alle Daten aus der Zieltabelle. Diese Anweisung wird nach der Ausführung der Anweisung Execute before abgeschlossen.

Execute after

SQL-Anweisung, die nach Beendigung eines Jobs ausgeführt wird.

Process data in one batch

Wenn diese Eigenschaft aktiviert ist, lädt der Konnektor alle Daten aus dem Job hoch, bevor er ihn verarbeitet.

Preserve stage file on Error

Behält die Staging-Datendatei bei, wenn beim Laden der Daten ein Fehler auftritt. Diese Eigenschaft ist nur gültig, wenn „Abort on data error“ aktiviert ist.

Use Local Timezone

Verwendet zum Konvertieren von TIMESTAMP/datetime-Daten die lokale Zeitzone des Agenten. Standardmäßig wird für die Konvertierung UTC verwendet.

Success File Directory

Wird derzeit nicht verwendet.

Error File Directory

Wird derzeit nicht verwendet.

Database Override

Name der zu aktualisierenden Datenbank; überschreibt die für die Datensynchronisierungsaufgabe definierte Zieldatenbank. Geben Sie bei einer Datensynchronisierungsaufgabe keine Werte für Datenbanküberschreibung, Schemaüberschreibung oder Tabellenüberschreibung an. Sie können die Werte in einer PowerCenter-Sitzung angeben.

Schema Override

Name des zu aktualisierenden Schemas; überschreibt das für die Datensynchronisierungsaufgabe definierte Zielschema. Geben Sie bei einer Datensynchronisierungsaufgabe keine Werte für Datenbanküberschreibung, Schemaüberschreibung oder Tabellenüberschreibung an. Sie können die Werte in einer PowerCenter-Sitzung angeben.

Table Override

Name der zu aktualisierenden Tabelle; überschreibt die für die Datensynchronisierungsaufgabe definierte Zieltabelle. Geben Sie bei einer Datensynchronisierungsaufgabe keine Werte für Datenbanküberschreibung, Schemaüberschreibung oder Tabellenüberschreibung an. Sie können die Werte in einer PowerCenter-Sitzung angeben.

Nutzungshinweise:

  • Snowflake erzwingt keine Primär- oder Fremdschlüsseleinschränkungen und behält keine Metadaten für Schlüssel bei. Sie müssen die Eigenschaft Update key columns angeben, auch wenn die entsprechenden Spalten in der Informatica-Umgebung als Schlüsselspalten markiert sind.

  • Die Eigenschaft Process data in one batch kann den Abschluss des Jobs verzögern, garantiert jedoch, dass im Falle eines Fehlers und ohne die Ausführung der gesamten Transaktion keine Daten festgeschrieben werden. Die Verarbeitung der maximalen Datenmenge auf einmal maximiert auch die Nutzung der Parallelität des Snowflake-Warehouse.

  • Die Attribute Database Override, Schema Override und Table Override werden von PowerCenter verwendet, um zur Laufzeit Werte bereitzustellen, die die Zieldatenbank, das Schema und/oder die Tabelle für die Datensynchronisierungsaufgabe überschreiben. So können Sie dieselbe Datensynchronisierungsaufgabe verwenden, um Tabellen in mehreren Datenbanken und Schemas zu aktualisieren. Die Felder sind standardmäßig leer und sollten leer bleiben, da die Werte für die Attribute zur Laufzeit bereitgestellt werden.