Check

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

Beschreibung

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.

Datenquellen

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.

Datenziel

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.

Attribute

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

Beispiele

Das Beispiel prüft ob in den benötigten Quelltabellen Daten vorliegen.

checksheet

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.

checkaction

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.