Das Modul liest Daten mit Hilfe einer durch den datasqill Entwickler definierten Abfrage aus Quelltabellen und prüft die vorliegende Datensituation gegen einen hinterlegten Zielwert. Das Ergebnis der Prüfung wird dokumentiert und in einen gewünschten Ausführungsstatus der Action überführt. Das Modul verfügt über eine Polling-Funktion, wodurch die SQL-Abfrage mit dem eingegebenen Zeitintervall wiederholt ausgeführt werden kann. Das Modul kann zum Beispiel zum Validieren der Daten oder für die Ablaufsteuerung verwendet werden (Warten bis bestimmte Bedingung erfüllt ist).
Name | Bedeutung |
---|---|
Modul | Check |
Modulklasse | DsModCheck |
Typ | Java |
Zweck | Das Modul liest Daten mit Hilfe einer SQL-Abfrage aus einer oder mehreren Quelltabellen und evaluiert das Ergebnis gegen den in der Action durch den Entwickler definierten Zielwert. Die SQL-Abfrage wird vom datasqill Entwickler über die GUI definiert. Die verwendeten Quellen müssen alle in derselben Datenbank liegen. |
Transformationscode | SQL Abfrage |
Quellen | Quelltabellen in einer Datenbank |
Ziele | kein Ziel, kann als Bedingung in den Datenfluß integriert werden |
Die hinterlegte SQL Abfrage wird 1:1 gegen die Quelldatenbank ausgeführt. Das Ergebnis wird mit dem im Parameter "Expected Result" hinterlegten Zielwert verglichen.
Besteht Gleichheit wird die Aktion mit Erfolgsstatus beendet.
Besteht Ungleichheit, wird die Abfrage nach Ablauf der im Parameter "Polling Interval" hinterlegten Zeit (in Sekunden) erneut ausgeführt, sofern die durch den im Parameter "Poll Times" hinterlegte Anzahl an maximalen Abfrageausführungen noch nicht erreicht ist.
Im Fall der Ungleichheit nach der finalen Abfrage endet die Action in Abhängigkeit des Parameters "Die if no match". Ist dieser ungesetzt (Default), endet die Aktion erfolgreich. Ist er gesetzt, wird die Action als fehlerhaft ausgeführt bewertet und hält ggf. den Datenfluß im Batch an dieser Stelle an.
Liefert die Abfrage mehr als eine Zeile zurück, wird die Anzahl der gelieferten Zahlen als Vergleichswert gegen den Zielwert geprüft.
Liefert die Abfrage keine Zeile zurück, wird 0 als Vergleichswert gegen den Zielwert geprüft.
Die Quellen des Moduls sind Tabellen, die über die vom datasqill Entwickler definierte Abfrage gelesen werden. Alle Tabellen müssen sich in der gleichen Datenbank befinden. Für diese Tabellen muss der datasqill Laufzeit-Benutzer Leserechte besitzen. Alle in der SQL-Abfrage verwendeten Quelltabellen müssen über die datasqill GUI im grafischen Datenmodell mit dem Eingang des Moduls verbunden werden.
Das Modul hat kein Standardziel. Es kann in den Datenfluß eingebunden werden, um z.B. das Vorliegen von Daten in Quelltabellen zu validieren, bevor die darauf aufbauenden Ladeprozesse starten können. In diesem Fall muss das nachfolgende Objekt mit Hilfe der datasqill GUI im grafischen Datenmodell mit dem Ausgang des Moduls verbunden werden.
Im Auslieferungszustand bietet das Modul folgende Attribute in der GUI für den datasqill Entwickler an:
Name | Typ | Bedeutung |
---|---|---|
Expected Result | Number oder String | Zielwert mit dem das Ergebnis der SQL Abfrage verglichen wird (Default 0). |
Poll Times | Number | Anzahl der Abfrageausführungen, bevor die Action beendet wird (Default 1). |
Polling Interval | Number | Abstand zwischen zwei aufeinanderfolgenden Abfragewiederholungen in Sekunden (Default 60). |
Die if no match | Boolean | Wenn gesetzt, wird der Job als fehlerhaft ausgeführt gekennzeichnet, falls nach allen Abfragewiederholungen keine Gleichheit besteht (Default FALSE). |
Das Beispiel prüft ob in den benötigten Quelltabellen Daten vorliegen.
Mit Hilfe der Abfrage
SELECT MIN(available)
FROM ( SELECT SIGN(COUNT(*)) AS available
FROM stage.region r
UNION ALL
SELECT SIGN(COUNT(*)) AS available
FROM stage.nation n ) AS source_tables
wird ermittelt, ob in den Quelltabellen stage.region und stage.nation Datensätze enthalten sind und die weitere Verarbeitung erfolgen kann.
Im Fall eines Rückgabewertes von 1 sind die beteiligten Tabellen nicht leer und die Prüfung erfolgreich.
Die gesetzten Parameter bewirken, dass die Abfrage bis zu 5 mal im Abstand von jeweils 60 Sekunden ausgeführt wird und im Fall am Schluss immer noch fehlender Daten die weitere Verarbeitung angehalten wird.