Kettle ist das Open Source ETL Tool. ETL ist der Bereich, der bei Business Intelligence Lösungen, z.B. Data-Warehouses dafür da ist, die Daten aus unterschiedlichen Quellen auszulesen, zu modifizieren, und anschließend in eine Datenbasis zu packen, auf die man dann mit den Analysetools zugreifen kann. ETL steht daher auch für Extraction, Transformation und Loading.
In unseren Kundengesprächen stellen sich immer wieder ähnliche Fragen:
Solche Anforderungen lassen sich mithilfe des ETL-Tools Kettle und der CRM-BI-Extension problemlos realisieren.
Aufgrund der Vielseitigkeit der Schnittstellen nach außen, sei es Excel, beliebige Datenbanken, XML oder Webserviceschnittstellen zu Salesforce, SAP und anderen Systemen und den unendlichen Möglichkeiten zur Datenmanipulation, bietet sich Kettle für eine Vielzahl von Aufgaben mit Kundendaten, Adressdaten oder Bestell- und Finanzdaten im CRM-Umfeld an. Und das gute dabei – alles kann innerhalb einer übersichtlichen grafischen Oberfläche passieren.
Wir bei visual4 nutzen Kettle zum einen für die Datenmigration in neue 1CRM Systeme, und zum anderen mithilfe unserer BI-Erweiterung um Kettle-Transformationen direkt in 1CRM ausführen zu können. Das geht entweder manuell, zeitgesteuert, oder als Teil eines Workflows in 1CRM. Beim Hochladen von neuen Skripten in 1CRM wird automatisch die Datenbank-Konfiguration in das Kettle-Script übernommen. Dateien, die innerhalb des Scripts erzeugt werden, sind natürlich direkt über 1CRM zugänglich. Weitere Details zu der Erweiterung gibt es direkt auf der Extension Seite.
Laden Sie sich die aktuelle Version von Kettle herunter. Diese finden Sie auf der Community-Seite von Petaho, der Firma hinter Kettle: https://community.pentaho.com/projects/data-integration/
Voraussetzung für Kettle ist eine aktuelle Java-Version!
Laden Sie sich den MySQL-Java-Treiber (mysql-connector-java-5.X.XX-bin.jar) von der MySQL-Seite herunter, um auf MySQL-Datenbanken zugreifen zu können: https://dev.mysql.com/downloads/connector/j/
Wählen Sie die plattforumunabhängige ZIP-Datei. In dieser finden Sie den Treiber, der in das lib
-Unterverzeichnis der Kettle-Installation kopiert werden muss.
Starten Sie Kettle, indem Sie spoon.bat
doppelklicken (Windows).
Wenn man eine neue Transformation über das Datei-Menü erstellt, sollte die Oberfläche wie unten abgebildet aussehen.
Im linken Bereich der Oberfläche finden sich die möglichen Schritte, die in eine Transformation eingefügt werden können. Zur Strukturierung sind sie in Ordnern kategorisiert. Aufgrund der Vielzahl der Möglichkeiten ist die Suche in diesem Bereich ein effektives Mittel, um die Auswahl einzuschränken und das gesuchte Objekt wiederzufinden.
Einen Schritt fügt man in die Transformation durch Drag-and-Drop auf den rechten Arbeitsbereich ein. Über dem Arbeitsbereich befinden sich die wichtigsten Icons:
Transformation prüfen:
Testlauf starten:
Transformation ausführen:
Einzelne Schritte im Arbeitsbereich werden durch Klicken und Ziehen mit der mittleren Maustaste miteinander verbunden.
Mit der folgenden Anleitung erfahren Sie, wie Sie Daten aus der CRM-Datenbank einlesen können.
Ziehen Sie sich einen Table Input
auf die Arbeitsfläche, um einen ersten Schritt zu erstellen.
Klicken Sie auf den eben erstellten Schritt doppelt, um in die Eigenschaften zu gelangen.
Klicken Sie auf New
, um eine neue Datenbankverbindung zu erstellen, damit die Daten aus dem CRM eingelesen werden können.
Tragen Sie die Remote-Verbindungsdaten der CRM-Datenbank ein. Im Screenshot können Sie erkennen, dass die Daten einer lokalen Test-Datenbank eingetragen wurden.
Die Werte werden automatisch mit den passenden Daten des CRM-Systems überschrieben, sobald das Script über die CRM-BI-Extension in 1CRM gespeichert wird.
Testen Sie die Verbindung mit dem Test
-Button.
Klicken Sie Get SQL select statement
, um eine Tabelle des CRM-Systems zu wählen und einen SQL mit allen Feldern der Tabelle zu erzeugen. Das ist oft hilfreich, um die richtigen Spalten im SQL zu haben.
Klicken Sie den Preview
-Button, um das SQL-Statement zu prüfen. Hier werden die Daten aus der Tabelle ausgelesen und tabellarisch ausgegeben.
Ziehen Sie als nächstes einen Select values
-Schritt auf die Arbeitsfläche.
Verbinden Sie den Schritt mit dem Table input
durch Klicken oder Ziehen.
Mit dem Select values
-Schritt können entweder gezielt Felder ausgewählt oder für die weitere Verarbeitung ausgegeben werden. Mit Include unspecified fields, ordered
> Remove-Tab
lassen sich einzelne Felder entfernen.
Zusätzlich lassen sich Feldnamen und über den Meta-Data-Tab
Feldtypen und Formatierungen anpassen und ändern.
Intern arbeitet Kettle mit typisierten XML-Datenzeilen, d. h. bei der Übernahme von Daten aus der CRM-Datenbank sind Datums-, Zahlen- und Text-Feldtypen meist richtig zugeordnet. Bei einer CSV-Datei bspw. als Datenquelle, ist dies oft nicht der Fall und kann in diesem Schritt angepasst werden.
Fügen Sie als Schritt Filter rows
hinzu, um die Daten entweder zu filtern oder als Weiche entsprechend der Kriterien an zwei unterschiedliche Transformationen weiterzuleiten. In den Kriterien können einzelne Spalten entweder mit einem festen Wert (value
) oder einer anderen Spalte verglichen werden.
Wie Sie beim Screenshot erkennen können, werden hier alle Daten weiterverarbeitet, bei denen account_type
ungleich Supplier
ist. Wichtig bei der Filter-Verwendung ist, dass weder Send true...
noch Send false...
befüllt ist.
Sortieren Sie mit dem Sort rows
-Schritt Ihre Datensätze, um später eine saubere Gruppenbildung der Daten zu ermöglichen. Wichtig hierbei ist, dass bei großen Datenmengen alle Daten in den Speicher (oder eine Auslagerungsdatei) geladen werden müssen, um die Sortierung durchzuführen.
Gruppen Sie nun die Daten mit dem Group by
-Schritt. Hier müssen alle Felder, die später weiterverwendet werden sollen, ausgewählt werden. Hierbei haben Sie die Möglichkeit, Summen oder den Durchschnitt errechnen zu lassen oder auf den ersten bzw. letzten Wert dieser Spalte der Gruppe zurückzugreifen.
In unserem Beispiel im Screenshot wird nach Stadt
gruppiert, die Anzahl der Datensätze ausgegeben, die offenen Posten summiert und alle Firmen kommasepariert in ein Feld Firma
geschrieben.
Klicken Sie nach dem letzten Schritt im Arbeitsbereich auf Vorschau
, um eine Vorschau der Transformation zu erhalten. Im nächsten Fenster können Parameter und die gewünschte Anzahl der Datensätze eingegeben werden.
Sie erhalten nun eine tabellarische Ansicht der Daten, die sich durch einen klick auf den Header einer Spalte auch sortieren lässt.
Unterhalb des Arbeitsbereichs erscheint gleichzeitig ein Bereich mit den Execution Results
, in dem man im Step Metrics
-Tab den Fortschritt laufender Transformationen beobachten und im Logging
-Tab möglichen Fehlern auf den Grund gehen kann.
Nun sind Sie beim letzten Schritt angelangt: Die Datenausgabe über eine Microsoft-Excel-Tabelle.
Fügen Sie den Schritt Microsoft Excel Output
hinzu und definieren Sie im File
-Tab einen Dateinamen. Dabei können dynamisch Datum und Zeit in den Namen eingefügt werden.
Wird kein Pfad angegeben, landet die Datei normalerweise im Kettle-Arbeitsverzeichnis. Bei der Verwendung innerhalb des CRM-Systems wird automatisch der richtige Dateipfad eingetragen, um im Anschluss über die Weboberfläche auf die Datei zugreifen zu können.
Beachten Sie, dass keine .xls-Dateiendung verwendet wird.
Geben Sie im Content
-Tab an, ob eine Header-Zeile mit den Spaltennamen angelegt werden soll und in welcher Kodierung die Daten ausgegeben werden sollen.
Definieren Sie im Fields
-Tab, welche Felder in welcher Reihenfolge in die Tabelle ausgegeben werden sollen. Über Get Fields
werden alle verfügbaren Felder eingefügt.