Das JobInstance und ETL-Framework Konzept der cimt ag

JobInstance und ETL-Framework

Die cimt ag ist seit mehr als 10 Jahren mit über 100 zertifizierten Beratern der einzige Talend Platinum Partner in der DACH-Region aktiv. Mit den Talend-Datenintegrations-Produkten (wie beispielweise der Talend Cloud Data Management Platform oder Talend Data Integration) als ETL-Tool erstellen unsere Berater komplexe Ladeprozesse für unsere Kunden, um zum Beispiel ein Data Warehouse (DWH) zu bewirtschaften. Im Laufe der Jahre haben wir eine Reihe von Best Practices für diese ETL-Prozesse entwickelt.

Einer dieser Best Practices ist die Verwendung unseres JobInstance- und ETL-Framework-Konzepts. Es wurde ein Rahmen vieler Talend-Projekte konzipiert und kundenunabhängig ständig weiterentwickelt. Für die ETL-Entwicklung mit Talend werden die entsprechenden Komponenten kostenfrei und öffentlich bereitgestellt. Einzige Grundvoraussetzung ist lediglich eine relationale Datenbank sowie die Verwendung der öffentlich zugänglichen Talend-Komponenten.

In diesem Beitrag gibt unser cimt-Kollege eine kurze Einführung und erklärt Ihnen, warum dieses Konzept ein unverzichtbarer Bestandteil jeder Ladestrategie sein sollte.

Ziele

Das cimt ETL-Framework dient dazu, die folgenden Aspekte für Implementierung und Betrieb von ETL-Prozessen zu standardisieren:

  • Logging der essenziellen Ereignisse des ETL-Jobs:
    • Name
    • Version
    • Start/Stop-Zeitpunkt
    • Return Code
    • Umsatz
  • Markierung der Daten zur späteren Rückverfolgung
  • Inkrement-Verwaltung für folgende Fragestellungen:
    • Welche Daten sind für den Folgeprozess nutzbar?
    • Welche Daten müssen noch verarbeitet werden?
  • Effizienter Neustart eines abgebrochenen Joblaufs
  • Standardverfahren zum Wiederholen bereits eingelesener Inkremente
  • Monitoring des Status der gesamten Bewirtschaftung
  • Monitoring der Langzeitentwicklung

Basiselemente

Um die gesetzten Ziele zu erreichen, wird die JobInstance als Basiselement eingeführt.

JobInstance

Als JobInstance wird ein konkreter Joblauf bezeichnet. Sie hat eine für den Gesamtlebenszyklus des Zielsystems (zum Beispiel ein Datawarehouse) eindeutige Kennzeichnung (JobInstanceID)

Zu einer JobInstance gibt es immer folgende Informationen:

  • Name und Version des Jobs
  • Ausführender Host inklusive JobInstanceID des Parent-Jobs
  • Mit Talend außerdem: Talend GUID des Jobs, des direkten Parent-Jobs und des Root-Jobs
  • Start und Stoppzeit des Jobs
  • Return Code

Implementierungsmuster für Jobs

Bildmodul

Jeder Job schreibt beim Start seine zum Startzeitpunkt bekannten Jobmetadaten in einen neuen Datensatz der Managementdatenbank (manage DB), also der Datenbank, in der die Daten des ETL-Frameworks gespeichert werden. Danach kann er die bisherigen Metadaten nutzen, um seinen Workload oder Aufsetzpunkt zu bestimmen. Am Ende des Joblaufs werden die finalen Metadaten in die Datenbank übertragen. Der Ablauf wird in Abbildung 1 dargestellt.

Inkrement-Verwaltung

Eine inkrementelle Verarbeitung von Quelldaten wird in einem Ladeprozess immer dann angewendet, wenn die Datenquelle ihre Informationen nur in Inkrementen übergibt oder eine vollständige Transformation der Daten einer Quelle nicht möglich bzw. nicht für den Regelbetrieb zu empfehlen ist.

Grundmuster

Für jede Art von inkrementeller Verarbeitung wird ein Verfahren benötigt, mit dem die Datensätze eines einzelnen Inkrements von den anderen Daten in der Quelle unterschieden werden.

Dabei gibt es folgende Szenarien:

  1. Die Daten eines Inkrements sind mit einer gemeinsamen Kennzeichnung versehen und:
  • In einer Datei zusammengefasst
  • In einer Message enthalten
  • Haben identische Markierung in jedem Datensatz (z. B. Job Instance ID, „unverarbeitet“ Flag)
  1. Die Daten werden aus einem umfangreicheren Bestand als Intervall eines Wertebereichs abgerufen:
  • Zeitliches Intervall (z. B. letzte Änderung)
  • Index Interval (z. B. Kafka Streaming Position)

Fazit

Das ETL-Framework-Konzept der cimt ag hilft dabei, die gängigen Probleme zu lösen, die bei der Bewirtschaftung eines DWH auftreten können. Dieser Beitrag stellt eine grundlegende Einführung dar, wenn Sie mehr Informationen zu dem Konzept und den einzelnen Komponenten haben möchten, sprechen Sie uns gerne an.

Kontakt

Portraitfoto Oliver Fromm
Vorstand

Telefon: +49 30 834098 0
E-Mail: oliver.fromm@cimt-ag.de
Twitter: twitter.com/cimtag

Download

Probieren Sie es aus! Sie können sich die JobInstance-Framework-Kollektion kostenlos herunterladen. Zudem erhalten Sie die Dokumentation der Komponenten und ein zusammenfassendes Video inklusive Demo.






    Sie erhalten das Video und willigen damit ein, dass wir Ihre E-Mail-Adresse zukünftig für Marketingzwecke nutzen dürfen. Die werbliche Nutzung Ihrer E-Mail-Adresse ist somit Ihre Gegenleistung für den Erhalt des Videos. Diese Einwilligung können Sie selbstverständlich jederzeit widerrufen.

     

    Kommende Veranstaltungen
    div#stuning-header .dfd-stuning-header-bg-container {background-image: url(https://www.cimt-ag.de/wp-content/uploads/2017/10/home-start2_low.jpg);background-color: #848484;background-size: cover;background-position: center center;background-attachment: fixed;background-repeat: no-repeat;}#stuning-header div.page-title-inner {min-height: 300px;}div#stuning-header .dfd-stuning-header-bg-container.dfd_stun_header_vertical_parallax {-webkit-transform: -webkit-translate3d(0,0,0) !important;-moz-transform: -moz-translate3d(0,0,0) !important;-ms-transform: -ms-translate3d(0,0,0) !important;-o-transform: -o-translate3d(0,0,0) !important;transform: translate3d(0,0,0) !important;}#main-content .dfd-content-wrap {margin: 0px;} #main-content .dfd-content-wrap > article {padding: 0px;}@media only screen and (min-width: 1101px) {#layout.dfd-portfolio-loop > .row.full-width > .blog-section.no-sidebars,#layout.dfd-gallery-loop > .row.full-width > .blog-section.no-sidebars {padding: 0 0px;}#layout.dfd-portfolio-loop > .row.full-width > .blog-section.no-sidebars > #main-content > .dfd-content-wrap:first-child,#layout.dfd-gallery-loop > .row.full-width > .blog-section.no-sidebars > #main-content > .dfd-content-wrap:first-child {border-top: 0px solid transparent; border-bottom: 0px solid transparent;}#layout.dfd-portfolio-loop > .row.full-width #right-sidebar,#layout.dfd-gallery-loop > .row.full-width #right-sidebar {padding-top: 0px;padding-bottom: 0px;}#layout.dfd-portfolio-loop > .row.full-width > .blog-section.no-sidebars .sort-panel,#layout.dfd-gallery-loop > .row.full-width > .blog-section.no-sidebars .sort-panel {margin-left: -0px;margin-right: -0px;}}#layout .dfd-content-wrap.layout-side-image,#layout > .row.full-width .dfd-content-wrap.layout-side-image {margin-left: 0;margin-right: 0;}