Hier gebe ich eine kurze Einführung zu Talend Open Studio
Talend Open Studio ist ein Programm zur Datenfilterung, Bearbeitung und Datenmigration. Daten können aus unterschiedlichsten Quellen eingelesen, gefiltert, bearbeitet und in Datenbanken und andere Formate exportiert werden. Dabei sind zusätzliche Optionen wie der Versand von Emails bei Fehlern und vieles mehr möglich.
Download unter:
http://www.talend.com/download.php
Vorraussetzung:
Java 1.5
Man kann mehrere Versionen parallel auf dem System haben, es ist nicht nötig das Programm zu installieren, entpacken der Dateien ist ausreichend.
Inhalt der .ini Datei von Talend Open Studio ( TOS)
-vmargs : Übergabe von Einstellungen an Java
-Xms40m : Minimaler Speicher
-Xmx500m : Maximaler Speicher, auf 1024 erhöhen
-XX:MaxPermSize=128m : Größe der Permanenten Belegung
Erster Start von TOS
GNU Lizenz Akzeptieren.
Erster Schritt: Verbindung einrichten.
Dazu auf die 3 Punkte ganz rechts klicken.
Verbindung einrichten ( lokal ist bereits angelegt) – Email als Benutzer angeben. Damit sind alle Projekte und Jobs mit der Email als Benutzername gekennzeichnet.
Erstelle/ Import Projekt ( Perl oder Java möglich) – Wir benutzen grundsätzlich Java
Das Demo-Projekt ist als erster Überblick nützlich, es sind viele Jobs vorhanden als Beispiele für die Einsatzmöglichkeiten.
Wir erzeugen ein neues Projekt und starten das Programm durch Klick auf ‚Laden‘.
Danach startet das Open Studio
Talend Open Studio Überblick
Nach einem Popup mit Aufforderung zur Registrierung wird erstmal das Programm initialisiert.
Ein Blick auf die Repository
Die Projekte arbeiten mit Jobs. Alle Komponenten werden in die graphische Oberfläche der Jobs gezogen und dort verlinkt. Es ist möglich Subjobs zu definieren und zu verlinken, ebenfalls ist es möglich verschiedene Jobs miteinander zu verknüpfen. Dazu mehr weiter unten.
!Wichtig! Alle Routinen, Abfragen, Jobs etc dürfen keine Leerzeichen oder Sonderzeichen enthalten und alle Komponenten müssen unterschiedlich benannt sein.
Alle Bennungen nach Art der Komponente durchführen:
z.B. job_xxx oder abfrage_xxx
Die Palette
Business Intelligence
Enthält u.a. Charts und SCDs (Slowly Changing Dimension)
SCD werden verwendet um Änderungen an den Dimensionstabellen vorzunehmen, dabei gibt es Typ 1, 2 und 3
Typ 1 überschreibt alte Daten
Typ 2 arbeitet mit Historie
Typ 3 legt eine neue Dimension an
Erklärung: http://de.wikipedia.org/wiki/Slowly_Changing_Dimensions
Business
Connectoren zu verschiedenen CRM Systemen und bestimmten Serversystemen
Custom Code
WICHTIG
Hier ist man in der Lage eigene Routinen zu schreiben und eigene Funktionen zu bauen und die Modifikation vorhandener Komponenten
tJavaFlex – Startprozedur, Hauptteil mit Funktionen, Endteil mit Beendigung von Schleifen
tJavaRow – nur Hauptteil
Data Quality
Funktionen zum Filtern und Vergleichen von Daten, z.B. Gleiche, Intervall-Vergleiche, Schemasuche …
Databases
Connectoren zu verschiedenen Datenbanken – je nach Datenbank mehr oder weniger verschiedene Funktionen vorhanden.
Diese werden von uns nicht verwendet, da wir DB Verbindungen in Repository unter Metadaten anlegen. Damit sind sie für alle Jobs des Projekts verfügbar.
ELT
Extract, Transform, Load (ETL) bezeichnet in der Informatik einen Prozess, um Daten aus mehreren Datenquellen mit ggf. unterschiedlichen Strukturen in einer Zieldatenbank zu vereinigen. Dieser Vorgang wird in drei Schritten vollzogen, aus denen sich die Bezeichnung ETL ableitet:
Extraktion (Extract) der relevanten Daten aus verschiedenen Quellen
Transformation (Transform) der Daten in das Schema und Format der Zieldatenbank
Laden (Load) der Daten in die Zieldatenbank.
( Auszug aus Wikipedia)
File
Datenoperationen wie einlesen verschiedener Dateiformate, Speichern in verschiedenen Dateiformaten z.B. Excel
Internet
Operationen welche eine Internetverbindung erfordern z.B. Mailversand, ssh oder ftp Operationen
Logs & Errors
!Wichtig! Wichtige Tools zur Fehleranalyse, Sammlung von Fehlermeldungen.
tLogRow macht eine Ausgabe von Daten an Console – Man kann verschiedene Daten übermitteln, z.B. eingelesene, gefilterte, Errors …
dieses wird durch die Verlinkung in der graphischen Oberfläche bestimmt
Misc
Wichtig! Enthält tRowGenerator, welcher nach Vorgaben Testdaten erstellt.
Orchestration
-
Processing
Enthält wichtige Komponenten zur Verarbeitung / Bearbeitung von Daten z.B. Verknüpfung von Tabellen
System
Komponenten die weitere Jobs im TOS Starten oder Systemvariablen ändern
XML
Operationen auf XML
Repository & Build-In
Repositorys eingetragene Komponenten die global von mehreren Jobs genutzt werden können.
Ein Beispiel wäre eine eingetragene Datenbankverbindung und ihre Tabellen, man kann diese dann in jedem beliebigen Job nutzen.
Repositories werden nur über die Metadaten geändert. Die Metadaten enthalten die Informationen über die Komponenten, aber keine direkten ‚Nutzdaten‘.
Bei Änderungen wird eine ‘Impact’ Analyse durchgeführt, d.h. es wird angezeigt welche Jobs betroffen sind, man kann wählen ob Jobs ausgelassen werden, dort ist dann die Komponente automatisch ‚Build-In‘.Änderungen des Repositories können sehr viel Zeit in Anspruch nehmen, falls das Repository sehr oft verwendet wird.
In den Jobs kann man die Eigenschaften einer Komponente auf ‘Build-In’ setzen. Damit sind dann lokale Änderungen möglich und nur dieser Job verwendet diese veränderten Einstellungen.
Export von Daten
Einstellungen kann man als Context exportieren, damit sind Settings als Context.xxx verfügbar – Jobs können dann Daten übergeben bekommen oder
aus einer Datei oder DB auslesen, dieses sind dann die aktuellen Settings ( z.b. login,pwd etc pp), nicht eingelesene Daten
sind dann die Standardvorgaben. Den Export kann man bei der Einrichtung neuer Metadaten durchführen.
Diese Contextdaten lassen sich aus verschiedenen Quellen einlesen. Wie z.B. einfache Dateien oder Datenbanken.
In diesem Fall werden die Contextdaten ausgelesen und an der Konsole ausgegeben, weiterhin wird danach, wenn diese Daten Ok sind, ein Importjob gestartet
Export eines Jobs: Rechtsklick auf einen Job -> ‘Job-Scripts exportieren’
Die Jobs sind als Webservice,PlainOldJavaObject(POJO) und andere Formate exportierbar diese kann man dann entsprechend nutzen oder auch in ein anderes TOS importieren. Wichtig bei einem Webservice: Dateien dann auf einen Application Server wie z.B. Tomcat - Wichtig Server muss Java beherrschen, da Datei .war ist
Neu compilieren der Settings
Strg+Shift+F3
Weiteres
Unter Code / Routinen sind eigene Public Static Funktionen definierbar ( String.UpperCase etc)
Selbstentwickelte Funktionen lassen sich in eigene Kategorien unterteilen ( im Code unter den Kommentaren ist der Kategorie-Name hinterlegt) -> Code->Routinen
Dokumentationen
Möglichkeit zur Dokumentation:
Rechtsklick auf Job -> Generiere Dokumentation als html
Erzeugt sehr umfassende Dokumentation aller Settings und Daten, leider sehr kryptisch, jedoch sind Grafiken mit Übersicht des Strukturaufbaus enthalten.
Bietet die Möglichkeit diverse Komponenten auszukommentieren.
Aufbau eines Beispiel-Jobs
Hier ein Überblick wie man einen Job aufbaut.
Job erstellen
Anlegen eines neuen Jobs, dieser ist unser Arbeitsblatt wir platzieren hier unsere Arbeitskomponenten und verbinden sie miteinander.
Woher bekomme ich die Daten
Start: Einlesen von Daten ( Datei, DB …. )
Dafür legt man dann im Repository die Verknüpfung zur Datenquelle an. In diesem Beispiel an eine Datenbank.
Rechtsklick auf ‚DB Connections bringt dann dieses Dropdown
‚Erstelle Verbindung‘
Im nächsten Fenster trägt man dann entsprechend die Serverdaten ein.
Wenn man dies erledigt hat muss nun TOS das Schema der DB einlesen. Rechtsklick auf die neue DB-Verbindung:
‚Schema ermitteln‘
Die ausgewählten Spalten tauchen jetzt unter Tabellen-Schemas auf.
Diese Schemas kann man nun im Job verwenden um die Daten einzulesen und diese dann im Job bearbeiten um sie dann letztendlich in eine Datei zu speichern.
In diesem Fall wird der Schritt übersprungen und die benötigten Daten werden direkt durch eine SQL-Query ausgelesen.
Die Queries werden angelegt durch ‚Edit Queries‘.
Der Editor sieht folgendermaßen aus:
Über den Reiter ‚Designer‘ lassen sich auch Queries aufbauen, jedoch ist der Funktionsumfang extrem begrenzt.
Aufbau des Jobs
Die Abfrage wird jetzt in die graphische Oberfläche des Jobs gezogen.
Da das Ziel in diesem Fall eine Access-DB ist, habe ich diese ebenfalls unter den DB Connections angelegt und das Schema eingelesen.
Da ich in diesem Fall nur eine Tabelle ändere ziehe ich den gesamten Connectionreiter als Output auf die graphische Oberfläche .
Als letztes will ich noch wissen ob die Daten richtig angekommen sind. Also leite ich die Daten zum Schluss noch in eine tLogRow um die Daten auf der Konsole angezeigt zu bekommen.
Verknüpfungen
Als letzten Schritt verknüpfe ich die Komponenten und benenne die Verknüpfungen entsprechend:
Jede dieser Verknüpfungen enthält das Schema der Daten die ich Transferieren will:
Über ‚Ändere Schema‘ kann ich z.B. den Typ ändern, dies kann wichtig sein, wenn das Schema falsch erkannt wurde, die Länge zu kurz ist etc
Bei Access z.B. darf kein Datentyp ‚Long‘ enthalten sein, dies führt zu einem Fehler.
Sollte es Probleme mit Verknüpfungen geben wird normalerweise angezeigt was Momentan das Problem ist.
Lösung wäre hier die Komponente und die Verknüpfung Datentransfer zu testen wo die Schemas der Daten verschieden sind ( Datentyp, Fehlende Spalte etc.)
Weitere Verknüpfungen
On Subjob :
Der gesamte Vorgang ( leicht blau Unterlegt)
On Component :
Nur die Ausführung dieser Komponente
Dies sind bedingte Verknüpfungen. Möglich wäre z.B. eine Email mit : ‚Erfolg‘ bei ‚On Subjob Ok‘
Und eine Email mit ‚Error‘ wenn der Subjob nicht laufen sollte.
Auf Komponenten bezogen muss man mit solchen Verknüpfungen vorsichtig sein, z.B. ein Filter der 5000 Zeilen erfolgreich filtert, würde 5000x ‚On Component Ok‘ senden.
Es lassen sich ebenso ganze Jobs verknüpfen, ebenfalls auf Bedingungen gestützt.
Ausführung
Wenn ‚Statistik‘ und ‚Traces‘ markiert sind wird während der Aufführung direkt angezeigt an welcher Stelle grade gearbeitet wird, und wie der Dateninhalt lautet. Dies sollte nur gemacht werden wenn es absolut Notwendig ist, da die Aufführung extrem langsam wird.
Statistik alleine ist meistens bereits ausreichend um nachzuverfolgen, wieviele Daten und wie schnell die Daten transferiert wurden. Diese werden an den Verknüpfungen angezeigt.
Nach einer Erfolgreichen Ausführung sieht es dann z.B. so aus:
In der Konsole kann ich nachgucken wie die Datensätze aussehen und zur Not kann ich auch nochmal die Access-Datei prüfen ob alles ordnungsgemäß angekommen ist.
Weitere Informationen
Weitere Hilfe gibt es in der integrierten Hilfe von TOS
Unter Hilfe -> Help Contents
Oder unter
Dokumentation als PDF: Dokumentation zu Talend Open Studio























Hallo, ich wollte dir herzlich danken für deine Mühe.
MfG
abdu
[...] Klimaschewski hat im Entwicklerforum eine bebilderte Dokumentation zu Talend Open Studio verfasst. Er zeigt darin die ersten Schritte mit TOS anhand vieler Screenshots auf und erklärt [...]
Gute Übersicht. Suche noch Detailbeschreibung ggf. sogar mit Beispiel der Paletten-Funktionen.
Interesting post i totally agree with the comments above. Keep writing