ETL-Prozess zum Laden der Zeitdimension. Beispiel der ETL Talend verwenden.

Nach der Identifizierung der Herkunft der Daten können wir mit dem Aufbau der physischen Tabellen unseres Modells und die Entwicklung der Füllung. Starten Sie den Vorgang mit der zeitlichen Dimension. Wie bereits erwähnt, ist diese Dimension nicht auf unserer ERP-oder anderen externen Systemen ab, sondern die aus dem Kalender zu bauen. Generieren Sie alle notwendigen Unterlagen für diese Tabelle für einen Zeitraum von 20 Jahren, die von 1. Januar 2000 läuft (aus historischen Daten vor Ladung auch in unserem DW) bis 31. Dezember 2020.

Die physikalische Definition der Tabelle nicht nach der Analyse der Datenquellen geändert und lautet wie folgt:

Physical Design Time-Dimension Tabelle in MySQL

Die Prozesse erfolgt über den Einsatz von Talend werden folgen (wie wir in einem früheren Blog-Eintrag gesehen) werden:


Transformationen zu erstellen Time-Dimension

Wir werden Java im Einsatz Talend zu Generation Option (wir könnten auch die Sprache PERL).Mit Java bedeutet, dass alle Prozesse und Transformationen, die definieren, wird es "übersetzen" auf der Programmiersprache Java intern. Obwohl nicht unbedingt notwendig zu wissen, der Java-Sprache, um mit Talend arbeiten, sie zu kennen wird erheblich erleichtern die Arbeit mit dem Tool und ermöglicht es uns, unsere eigenen Code zur Verarbeitung oder Prozesse, die nicht als Standard enthalten sind zu definieren.

Talend ist auf der Eclipse-Entwicklungsumgebung basiert. Es ist eine grafische Umgebung mit umfangreichen Funktionen, wo die Definition der Transformationen in einer sehr intuitiven Menü fertig sind, klicken und ziehen Komponenten und den Aufbau von Beziehungen zwischen ihnen.Inklusive Debug-Umgebung, um die Prozesse und deren Fehler sowie die Möglichkeit, Spuren zu analysieren, um die Prozesse zu überwachen, wenn wir entwickelt und validiert.

Das folgende Bild ist ein Beispiel für einen Job mit Talend erstellt:


Grafische Umgebung von Talend Werkzeug

Die wichtigsten Komponenten innerhalb der grafischen Umgebung sind:


Talend Objects Repository

Repository: enthält alle Objekte, die mit Talend kann definiert werden, die von einem Baum wie folgt:

  • Geschäftsmodelle: Talend hat ein einfaches grafisches Tool, wo wir definieren unsere Geschäftsmodelle.In diesem Ordner finden die verschiedenen Geschäftsmodelle, die "gezeichnet" haben mit Talend. Das Tool enthält die wichtigsten grafischen Elementen.
  • Job Designs, ein Projekt der Transformation oder Integration von Daten aus mehreren Prozessen oder Arbeitsplätze, die definiert und in einer Ordnerstruktur klassifiziert werden können zu organisieren und zu klassifizieren.In diesem Abschnitt betrachten wir die verschiedenen Aufgaben, die wir definiert haben und die Art, wie wir eingestuft haben.
  • Kontext: Ausführungskontexten sind Prozesse. Sie können definieren Konstanten oder Parameter, die wir gebeten werden, ein Prozess laufen und wir können die verschiedenen Komponenten eines Auftrags zu verwenden. Kontexte können auch zur Laufzeit aus Dateien geladen werden.
  • Routinen: der Ort, wo wir die Routinen von Talend-Code (die dann in die Transformationen verwendet werden) und wo wir unsere eigene Routinen hinzufügen, um Operationen oder Berechnungen oder Transformationen, für welches wir noch kein Standard-Methode durchführen entwickelt sehen können.Die Routinen sind in Java programmiert (oder Perl, wenn Sie die Sprache ausgewählt).
  • Vorlage SQL: SQL-Anweisungen sind vordefinierte Vorlagen, die wir nutzen können oder anpassen.
  • Metadaten: der Ort, wo wir die Metadaten des Projekts definieren. Diese Definitionen von Komponenten, die wir dann in allen Design wiederverwendet werden Prozesse des Wandels. Zum Beispiel können die Metadaten definieren Verbindungen zu Datenbanken, holen das Schema einer Datenbank dokumentiert und sie (mit Tabellen, Views etc.), SQL-Anweisungen zu definieren, identifizieren Muster der verschiedenen Arten von Dateien, etc. Dies ermöglicht uns die Elemente an einer Stelle definiert und wiederverwendet werden während des gesamten Prozesses.Das Metadata Repository zentralisiert alle Informationen zum Projekt und sorgt für Konsistenz in allen Prozessen der Integration. Die Metadaten im Zusammenhang mit der Quell-und Zielsysteme Integrationsprozesse ist leicht in die Metadaten-Repository durch erweiterte Tools für die Analyse von Datenbanken oder Dateien von verschiedenen Teilnehmern zur Verfügung gestellt geladen. Die Merkmale in den Metadaten definiert werden durch die Prozesse, die von ihnen Gebrauch machen geerbt.
  • Dokumentation: Wir können das Projekt laden Dateien Dokumentation unserer Analyse und Entwicklung, reihte sie in Ordnern. Die Verknüpfung mit einem Link oder laden Sie die Datei direkt im Repository vorgenommen werden. Dieses Dienstprogramm ermöglicht es uns, in einer zentralen Stelle alle Elemente eines Daten-Integration-Projekt.
  • Papierkorb: Löschen von Objekten, die in den Papierkorb gehen und bringen sie wieder dorthin, wenn nötig.

Job Designer: ist ein Werkzeug aus, welche Elemente anders zu manipulieren, dass die verschiedenen Komponenten machen einen Job, den Aufbau von Beziehungen zwischen den.

pg "/>

Designer Job

Beim Arbeiten mit einem Job, am Boden haben eine Reihe von Registern, von denen wir verschiedene Aktionen, wie z. B. Einstellung einen Kontext für die Arbeit ausführen können, das Festlegen von Eigenschaften, führen Sie den Job und setzen Sie die Performance-Modus, ändern Sie die Eigenschaften Komponenten von Arbeitsplätzen, Planung Arbeitsplätze schaffen Hierarchien in Jobs usw..

Schließlich, auf der rechten Seite der Anwendung haben wir die Komponentenpalette, die Arbeitsplätze sind unterschiedliche Talend bietet Einstellmöglichkeiten für den Einsatz in unseren.Sie sind nach der Funktion eingestuft.


Komponentenpalette

Einige der verfügbaren Komponenten in Talend sind:

- Business Intelligence: Eine Gruppe von Steckverbindern, dass die Berichte den Bedürfnissen Lesen oder Schreiben in multidimensionalen Datenbanken oder OLAP, Abfahrten nach Jasper, Change Management-Datenbank für langsam veränderliche Dimensionen, etc (alle von ihnen im Zusammenhang mit Business Intelligence .)

- Business: Anschlüsse für Lesen und Schreiben von CRM-Systemen des Typs (Centric, Microsoft CRM, Salesforce, Zucker, Vtiger) oder zum Lesen und Schreiben von SAP-Systemen.Sie erlauben auch mit Alfresco Dokumenten Management System arbeiten.

- Custom Code: Komponenten zu definieren unseren eigenen benutzerdefinierten Code und verwenden Sie es Talend Integration mit anderen Komponenten in. Wir können schreiben Komponenten in Java und Perl, sowie Last-Bibliotheken oder anpassen Befehle Groovy.

- Data Quality: Komponenten für die Daten Qualitätsmanagement, wie Filterung, CRC Berechnungen, sucht nach Fuzzy-Logik, Wiederbeschaffungswerte, Schema-Validierung gegen Metadaten, sauber Duplikate, etc.

-

- ELT: Komponenten für die Arbeit mit Datenbanken in ELT-Modus (mit den Veränderungen und Prozesse typisch für solche Systeme.)

- Datei: Kontrollen für Dateimanagement (Überprüfung Existenz, kopieren, löschen, auflisten, Eigentum), zu lesen Dateien in unterschiedlichen Formaten (Text, Excel, begrenzt, XML, E-Mail, etc) und schriftlich auf sie.

- Internet: Komponenten für den Zugang contEnid online gespeichert als Web-Services, RSS-Feeds, SCP, Mami, E-Mail, FTP-Server und dergleichen.

- Logs & Fehler: Management steuert und protokolliert Fehler in der Definition der Prozesse.

- Sonstiges: Verschiedene Komponenten wie Windows-Nachrichten, die Überprüfung der Betrieb von Servern, generiert Schallplatten, den Geltungsbereich von Variablen-Management, etc.

- Besetzung: Komponenten Transformationen generieren die Saiten und Orchestrierung Aufgaben und Arbeitsplätze in der Verarbeitung und unsere Teiljobs definiert in (Erzeugung Loops, Ausführung von vor oder nach Jobs, Prozesse etc. warten auf Dateien oder Daten,).

- Verarbeitung: Komponenten für die Verarbeitung von Datenströmen, wie Aggregation, Mapping, Transformationen, Filter, Denormalisierung, etc.

- System: Komponenten für die Interaktion mit dem Betriebssystem (Ausführung von Befehlen, Umgebungsvariablen, etc).

- XML: Komponenten für die Arbeit mit XML-Datenstrukturen, Operationen Parsing, Validierung oder der Schaffung von Strukturen.

Um eine Vorstellung davon, wie Talend arbeiten, ist es interessant zu sehen, diese Demo von 5 Minuten Talend's Web (Internet von Link ).Auch können Sie sehen das folgende Video demonstriert, wie um Testdaten in einer MySQL-Tabelle zu generieren.

Auch weiter vertiefen Sie können die Bedienungsanleitung des Gerätes und Komponenten-Referenzhandbuch (beide in Englisch) in diesem Link .

Talend Job bei der Besetzung der Time-Dimension

Jetzt, da wir wissen, dass ist ein bisschen Talend, werden wir weiter sehen ein praktisches Beispiel.Wir müssen eine gewisse Jahreszahlen Anfang am 01.01.2000 zu erzeugen, kommt 2020.12.31 in den Tag (mit Datum, dass 20 Jahre führen in der Dimension).

Um die prozess definieren wir die folgenden Schritte:

1) Loop, dass 10.000 mal läuft, mit einem Zähler geht von 0 bis 9999 (unter Verwendung der Baugruppe tLoop Orchestration).

2) Die Schleife ruft die Aufzeichnungen der Generator, der ein Protokoll mit Datum 2000.01.01 (mit Hilfe der Komponente tRowGenerator VERSCHIEDENE Gruppe) erzeugt.

3) das Datum RowGenerator übergibt eine Verarbeitung (MAP), die auf die Zeit der Zähler von Schritt 1 (mit diesem erhöhen wir den Beginn jeden Tag und die Erstellung aller notwendigen Daten erstellt.)Wir verwenden die Komponente TMAP Processing Group.

4) die Tage, die wir erzeugt eine andere Verarbeitung (MAP), wo für jedes Datum, erzeugen wir alle Attribute der Dimension der Zeit als die Transformation Tabelle, die wir bereits erwähnt haben (Monat, Jahr, Tag, Wochentag, Quartal Semester, etc.). Wir verwenden die Komponente TMAP Processing Group.

Wir mussten eine Routine in Java zu definieren, um korrekte Anzahl der Wochen im Jahr jedes Datum und für die Erstellung der Daten der Quartale, Semester, Ferien und Wochenende zu generieren.Zum Beispiel für die Erzeugung von Wochen haben wir den folgenden Java-Code geschrieben:

/ / Template-Routine Java 
Paket-Routinen; 
Import java.util.Calendar; 
Import java.util.Date; 
{Public class Termine 
public static String semana_del_anyo (Datum Datum1) { 
Kalender c1 = Calendar.getInstance (); 
c1.set (Calendar.DAY_OF_WEEK, Calendar.MONDAY) 
c1.setMinimalDaysInFirstWeek (1); 
c1.setTime (Datum1); 
int Woche = c1.get (Calendar.WEEK_OF_YEAR) 
if (Woche <10) { 
Rückkehr (0 + Integer.toString (Woche)); 
Else {} 
return (Integer.toString (Woche)); 
}} 

5) Wir filtern, um Datensätze, die älter als 2020.12.31 sind zu verwerfen, als solche sind wir auf die Datenbank laden möchten.Wir verwenden die Komponente tFilterRow Processing Group.

6) Legen Sie die Datensätze in der Datenbank Enobia in DWD_TIEMPO Tisch, mit Hilfe der Komponente tMySqlOutput, Gruppe Datenbanken, MySQL. Wenn Datensätze bereits in der Datenbank vorhanden sind aktualisiert.

Die vollständige Übersicht über Job wäre:


Job Füllzeit Dimension

Dies war unser erster Kontakt mit einem ETL-Tool.Ohne Programmierung (oder fast, weil wir eine Routine in Java vorbereiten für die Behandlung von Wochen und andere Attribute der Daten hatte), haben wir mit Daten gefüllts REAL die erste Tabelle / Dimension unseres Modells.