Basiskonzepte

datasqill verwendet Transformationen zur Manipulation der Daten. Transformationslogik wird durch den Entwickler als Code erfasst (datasqill unterstützt den Entwickler dabei durch Module, die wiederkehrende Transformationsoperationen automatisieren). Darüber hinaus übernimmt datasqill die Ausführung der erfassten Transformationen und ermöglicht Scheduling und Monitoring.

Die Transformation

Die Transformation ist die Kern-Entität in datasqill. Eine Transformation beinhaltet den vom Entwickler eingegebenen Transformationscode (z.B. SQL) und ermöglicht dessen Ausführung durch Nutzung der Funktionalität des dazu ausgewählten Moduls. Ein datasqill Modul bringt Funktionalitäten für die Automatisierung von wiederkehrenden Transformationsoperationen. Zur Laufzeit wird der von Entwickler eingegeben Transformationscode mit Hilfe der Modullogik in das effektive Transformationskommando verwandelt.

Ein typisches Beispiel wäre das Insert from Select Modul. Der Entwickler gibt folgenden Transformationscode ein:

SELECT part_key
     , SUM(l_extendedprice * (1 - l_discount)) AS revenue
  FROM stage.lineitem
 GROUP BY 1

Der Code wird durch das Modul zur Laufzeit in folgendes Statement umgewandelt.

INSERT INTO data_mart.f_profit (
       part_key
     , revenue_eur
     )
SELECT part_key
     , revenue_eur
  FROM (
SELECT part_key
     , SUM(l_extendedprice * (1 - l_discount)) AS revenue_eur
  FROM stage.lineitem
GROUP BY 1
) src

Quellen und Ziele

Jede Transformation kann Quelle(n) und Ziel(e) habe. Die Quelle ist ein Objekt, das durch die Transformation benötigt wird z.B. eine Quelltabelle in der Datenbank. Das Ziel ist ein Objekt, das durch die Transformation beschrieben oder erstellt wird z.B. eine Zieltabelle in der Datenbank.

Abhängigkeiten

Abhängigkeiten zwischen Transformationen werden von datasqill erkannt und bei der Ausführungsreihenfolge automatisch berücksichtigt. Wenn eine Transformation A ein Objekt benutzt, das von der Transformation B beschrieben wird, dann wartet die Transformation A bis die Transformation B abgeschlossen ist. Abhängigkeiten bestehen nur zwischen Transformationen, werden aber über die verwendeten Objekte ermittelt.