Snowflake-Transferobjekte
Snowflake-Datenbanken stehen Ihnen sowohl als Quellen und als Ziele zur Verfügung. Die benötigte Datenbank muss als Plug-in-Instanz konfiguriert sein. Erstellen Sie eines der Snowflake-Transferobjekt innerhalb der Verbindung wie beschrieben.
Zur Auswahl stehen die Transferobjekte:
- Snowflake Select: Fragt einen oder mehrere Datensätze (aus einer Tabelle oder einer View) ab. Sie müssen entsprechend Filter- und Sortierkriterien definieren. Das Transferobjekt dient damit als Datenquelle.
- Snowflake Insert: Während des Datentransfers wird ein neuer Datensatz an die Tabelle eingefügt. Das Transferobjekt fungiert damit als Transferziel. Bei einem Datenbank-Insert werden unvollständige Arrays aufgefüllt. Beispiel: Sollten in eine Datenbank ein einzelner Eintrag aus einem Zeitstempel und mehrere Einträge aus einem Array eingelesen werden, so kann der Zeitstempel für die einzelnen Variablen des Arrays erfolgen. Der Zeitstempel wird also automatisch so lange mehrfach genutzt, bis alle Variablen ausgelesen wurden. Daher gilt: Bei einem Insert wird immer der höchste InsertCount ermittelt. Einträge, die einen kleineren Count haben, werden dann um den Faktor X erweitert, so dass die Werte in der Tabelle aufgefüllt werden. Auch für Views auswählbar.
- Snowflake Update: Während des Datentransfers wird ein (oder mehrere) vorhandener Datensatz in der Tabelle aktualisiert. Sie müssen dementsprechend einen Filter definieren. Das Transferobjekt fungiert damit als Transferziel. Auch für Views auswählbar.
- Snowflake Delete: Der Datentransfer löscht einen Datensatz oder mehrere Datensätze aus der Tabelle. Sie müssen einen entsprechenden Filter definieren. Auch für Views auswählbar.
- Snowflake Stored procedure: Stößt eine gespeicherte Prozedur an, sobald die Triggerbedingung zutrifft. Sie können hier Eingabeparameter und Rückgabewerte als Ziele bzw. Quellen nutzen.
Wählen Sie das benötigte TO passend zu Ihren Anforderungen und stellen die im jeweiligen Fenster abgefragten Eigenschaften ein:
| Eigenschaft | Insert | Update | Select | Delete | Stored Procedure | Erklärung |
|---|---|---|---|---|---|---|
| Datenquelle | ✔ | ✔ | ✔ | ✔ | ✔ | Datenquelle, in der die folgende Tabelle, View oder Stored Procedure zu finden ist |
| Tabelle | ✔ | ✔ | ✔ | ✔ | Tabelle, auf welche die TO-abhängige Operation ausgeführt werden soll. Tabelle, auf der die ausgewählte Operation ausgeführt wird, bzw. Name der gespeicherten Prozedur. Anmerkung: Die angegebene Tabelle muss einen Primärschlüssel besitzen. Tabellen ohne Primärschlüssel werden nicht unterstützt. | |
| Stored Procedure | ✔ | Auszuführende Stored Procedure | ||||
| Spalten/Parameter | ✔ | ✔ | ✔ | ✔ | Wählen Sie die Spalten/Parameter aus, die als Quellen oder Ziele am TO anbindbar sein sollen | |
| Resultset abfragen | ✔ | Werden Rückgabewerte erwartet, können diese mit „Resultset abfragen” ausgelesen werden und können dann ausgewählt werden, um Rückgabewerte als Quelle am TO anzubieten. | ||||
| Filter | ✔ | ✔ | ✔ | Konfigurieren Sie einen zu Ihren Anforderungen passenden Filter, um einzugrenzen welche Daten selektiert/geupdatet/gelöscht werden sollen. Es stehen Möglichkeiten zur Verknüpfung der Bedingungen mittels UND- und ODER-Operators zur Auswahl. Eine Erklärung zu den verschiedenen Filteroperatoren befindet sich hier. | ||
| Filter/Filtergruppe bearbeiten | ✔ | ✔ | ✔ | Die möglichen Einträge ändern sich je nachdem, welches Element unter „Filter“ markiert ist. Verknüpfung: Legt die Operatoren AND und OR zwischen den Filtern/Filtergruppen fest. Spalte: Spalte, nach der gefiltert wird Vergleichsoperator für den Wertevergleich | ||
| Erwartete Anzahl eingehender Daten | ✔ | Optional: Es findet zur Laufzeit eine Prüfung statt, ob dem Insert die entsprechend konfigurierte erwartete Datensatzanzahl zur Verfügung gestellt wurde. | ||||
| Abfrage | ✔ | Konfigurationen zu Datensatzanzahl, -sortierung und -Markierung. Details im Kapitel Select-TO-Registerkarte „Abfrage” |
Wichtig: Wird als Typ „Stored Procedure“ gewählt, so ruft der OPC Router die Prozedur unmittelbar einmal mit Standardparametern (String = NULL; Int = 0 usw.) auf, um die Struktur des Result Sets auszulesen. Es erfolgt ein Rollback. Die Prozedur muss also transaktionssicher sein und darf beim Standardaufruf keine Fehler zurückgeben.
Anmerkung: Ist als Typ „Update“ eingestellt, stellt das Transferobjekt die Anzahl der aktualisierten Zeilen zur Verfügung (als Datenquelle).
Besonderheiten im Select-TO
Select-TO-Registerkarte „Abfrage”
| Sortierreihenfolge | Auf- oder absteigend. |
| Sortierung nach Spalte | Spalte, nach der das Abfrageergebnis sortiert wird. |
| Datensätze nicht verändern | (nur bei Abfragen aus Tabellen möglich) Es erfolgt keine Änderung der übertragenen Datensätze. |
| Datensätze nach durchgeführtem Transfer markieren | (nur bei Abfragen aus Tabellen möglich) In einer entsprechenden Spalte der Quelltabelle wird für jeden transferierten Datensatz „1“ eingetragen, für einen fehlerhaften Transfer „2“. Anmerkung: In der betreffenden Tabelle wird hierfür ein einfacher Primärschlüssel auf die numerische Spalte „ID” benötigt. |
| Spalte zum Markieren | (nur bei Abfragen aus Tabellen möglich) Spalte, in der der Marker für den erfolgten oder fehlerhaften Datentransfer eingetragen wird. Die Spalte sollte als Standardwert automatisch mit „0“ befüllt sein. |
| Markierungswerte | Hier können die, in die Markierungsspalte zu schreibenden Werte, angegeben werden. Die Markierungswerte müssen eindeutig sein. |
| Zähle fehlgeschlagene Transfers | Zählt die fehlgeschlagenen Transfers. Hinweis: Wählen Sie bei „Fehlerspalte“ die Spalte aus, in der die Anzahl der fehlgeschlagenen Transfers hochgezählt werden soll. |
| Datensätze nach erfolgreichem Transfer löschen | (nur bei Abfragen aus Tabellen möglich) Natürlich können transferierte Datensätze auch aus der Tabelle gelöscht werden. Achtung: Die Datensätze werden in der Quelltabelle unwiderruflich gelöscht. |
| Transfer abbrechen (bei leerem Abfrageergebnis) | Bricht den Datentransfer bei leerem Abfrageergebnis ab. |
| Lesefehler auslösen (bei leerem Abfrageergebnis) | Bricht den Datentransfer bei leerem Abfrageergebnis ab und löst die Fehleraufzeichnung aus (im Router Status und der Logdatei). |
| Leeren Datensatz zurückgeben | Gibt bei einem leeren Abfrageergebnis einen leeren Datensatz zurück. |
| Anzahl Datensätze begrenzen auf | Transferiert nur die hier angegebene Anzahl der Datensätze. Die Sortierung muss entsprechend eingestellt sein. Beispiel: Aus einem Abfrageergebnis soll nur der neueste Datensatz transferiert werden. Die Sortierung müsste auf ein Feld mit einem „Zeitstempel“ mit der Reihenfolge „absteigend“ eingestellt werden, die Anzahl der Datensätze auf „1“ begrenzt werden. |
Transferierte Datensätze markieren
Markieren Sie transferierte Datensätze. Halten Sie in Ihren Tabellen Spalten vor, in denen der OPC Router transferierte Datensätze markieren kann („Transferflag“ nicht übertragen, übertragen, Transferfehler). Die Transferflag-Spalten sollten mit dem Standardwert „0“ belegt werden und nicht NULL annehmen dürfen, damit immer eine korrekte Zuordnung zu den drei Status gewährleistet ist.
Select-Ergebnisse sortieren
Sortieren Sie die Tabelle nach dem Transfer-Flag aufsteigend. So werden zuerst die nicht transferierten Datensätze übertragen; fehlerhafte Einzeltransfers werden erst am Ende des Transfers erneut versucht. Zur Leistungsoptimierung kann nach der Transfer-Flag-Spalte gefiltert werden (Transfer-Flag = 0 oder = 2).