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 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 Datenbankload
), 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.