Outsourcing Big Data - mayato.com · Vorbedingung Um das beschriebene Szenario umzusetzen werden...

9
White Paper Outsourcing von Big Data // Stefan Rutte

Transcript of Outsourcing Big Data - mayato.com · Vorbedingung Um das beschriebene Szenario umzusetzen werden...

Page 1: Outsourcing Big Data - mayato.com · Vorbedingung Um das beschriebene Szenario umzusetzen werden folgende Komponenten benötigt: Talend für Big Data: Für die Demo wird Talend Open

White Paper

Outsourcing von Big Data // Stefan Rutte

Page 2: Outsourcing Big Data - mayato.com · Vorbedingung Um das beschriebene Szenario umzusetzen werden folgende Komponenten benötigt: Talend für Big Data: Für die Demo wird Talend Open

White Paper // Outsourcing von Big Data

mayato GmbH – www.mayato.com – [email protected]

Szenario

Ein Handelsunternehmen besitzt ein Datawarehouse mit all seinen Produkten, Filialen, Kunden- und Transaktionsdaten. Während sich die Produkt-, Filial- und Kundendaten in einem überschaubaren Rahmen halten, kommt im Jahr eine dreistellige Millionenanzahl an Transaktionsdaten im Datawarehouse an. Aus Kosten- und Performancegründen möchte das Handelsunternehmen alle alten Transaktionsdaten, welche in den täglichen Berichten nicht mehr benötigt werden, aus seinem Datawarehouse aussteuern. Damit diese älteren Transaktionsdaten für Ausnahmesituationen in gesonderten Berichten in der Zukunft wieder herangezogen werden können, sollen diese Daten nicht einfach gelöscht, sondern in ein Hadoop-System ausgelagert werden. Hierbei werden alle Daten, bei denen das Aktionsdatum kleiner dem Vorjahr ist, ausgesteuert.

Vorbedingung

Um das beschriebene Szenario umzusetzen werden folgende Komponenten benötigt:

Talend für Big Data: Für die Demo wird Talend Open Studio für Big Data genutzt. Hadoop System: Für die Demo wird hierfür eine Hadoop Sandbox von Hortonworks genutzt DWH: Für die Demo durch eine Exasol Datenbank dargestellt.

Testdaten

Um im Nachfolgenden eine Demo für die Umsetzung des Szenarios erstellen zu können, wird eine riesige Menge an Testdaten benötigt. Diese werden mithilfe eines Talendjobs erzeugt und in eine Exasol-Datenbank geschrieben. Die Exasol-Datenbank dient hierbei als Simulation des DWH des Handelsunternehmens.

Der Talend Job zum Erzeugen der Testdaten sieht folgendermaßen aus:

Abbildung 1: Talend Job zum Erzeugen von Testdaten

In der Kompnente „tLoop_1“ wird angegeben wie oft der nachfolgende Prozess ausgeführt werden soll. Somit lässt sich die Anzahl der erzeugten Datensätze bestimmen. Bei der Komponente „GenerateRandomData“ handelt es sich um eine tJava, in welcher Zufallsdaten erzeugt werden. Ein Beispiel hierfür wäre die Farbnummer:

Abbildung 2: Code zum Erzeugen zufälliger Farbnummern

Page 3: Outsourcing Big Data - mayato.com · Vorbedingung Um das beschriebene Szenario umzusetzen werden folgende Komponenten benötigt: Talend für Big Data: Für die Demo wird Talend Open

White Paper // Outsourcing von Big Data

mayato GmbH – www.mayato.com – [email protected]

Anschließend werden die einzelnen Iterationen zu einem Datenstrom zusammengefasst und an die Tabelle TRANSACTIONS der Datenbank gesendet.

Die Tabelle TRANSACTIONS steht für die in dem Szenario beschriebenen Transaktionsdaten und beinhaltet in der Demo folgende Felder:

ID = Surrogatschlüssel zur eindeutigen Identifizierung MODELNO = Modelnummer des verkauften Artikels BRAND = Marke des verkauften Artikels COLORNO = Farbnummer des verkauften Artikels SIZE = Größe des verkauften Artikels EAN = Europäische Artikelnummer des verkauften Artikels SALESPRICE = Preis der verkauften Artikel SALESPRICE_NET = Nettopreis der verkauften Artikel VAT = Mehrwertsteuer DATEOFACTION = Datum der Transaktion

Konfiguration des Hadoop-Clusters in Talend

Um die Daten von Exasol zu Hadoop zu übertragen, soll das ETL-Tool Talend zum Einsatz kommen. Für eine einfachere und schnellere Entwicklung sollte man hierfür zunächst den Hadoop-Cluster inklusive aller Services konfigurieren. Dazu wählt man in den Metadaten mittels Rechtsklick auf „Hadoop-Cluster“ und dann die Option „Erstelle Hadoop Cluster“ aus:

Nach Eingabe des Namens für den Cluster erfolgt die eigentliche Konfiguration:

Page 4: Outsourcing Big Data - mayato.com · Vorbedingung Um das beschriebene Szenario umzusetzen werden folgende Komponenten benötigt: Talend für Big Data: Für die Demo wird Talend Open

White Paper // Outsourcing von Big Data

mayato GmbH – www.mayato.com – [email protected]

In diesem Fall handelt es sich um die Hortonworks Sandbox, in der eine Vielzahl an Hadoop-Services vorkonfiguriert/installiert sind. Vor Abschluss der Konfiguration, sollten die Hadoop Konfigurationen geladen werden. Dies kann durch einen Klick auf „…“ (siehe rote Markierung in Abbildung) durchgeführt werden.

Hierbei gibt es die folgenden drei Optionen:

Die einfachste Option ist es, alle nötigen Konfiguration über Ambari oder Cloudera zu laden. In diesem Beispiel wird Ambari aus der Hortonworks Sandbox genutzt.

Im Anschluss müssen die Login-Daten für Ambari eingegeben und durch einen Klick auf „Connect“ mit dem Service verbunden werden.

Durch einen Klick auf „Fetch“ werden anschließend alle vorhandenen Services des Hadoop Systems geladen. Mit „Finish“ wird die Konfiguration des Hadoop-Clusters letztendlich abgeschlossen.

Der Vorteil am Laden der Hadoop-Konfigurationen ist, dass direkt alle enthaltenen Services mit den korrekten Informationen angelegt werden:

Page 5: Outsourcing Big Data - mayato.com · Vorbedingung Um das beschriebene Szenario umzusetzen werden folgende Komponenten benötigt: Talend für Big Data: Für die Demo wird Talend Open

White Paper // Outsourcing von Big Data

mayato GmbH – www.mayato.com – [email protected]

Die hierbei enthaltenen Services HDFS und Hive werden später für den Talend Job benötigt und sind direkt konfiguriert und einsatzbereit.

Talendjob zum Übertragen der Daten in Hadoop

Der letzte Schritt ist die Entwicklung des Talend Jobs zum Übertragen der Daten aus der Exasol ins Hadoop System. Der Talend Job sieht dabei folgendermaßen aus:

Nachfolgend sollen alle Teile des Jobs genauer erläutert werden.

Im ersten Schritt werden die Daten in einer Datei an das HDFS gesendet.

Hierzu werden die Daten mit einer tExaInput-Komponente aus der Exasol gelesen und über eine tMap an eine tHDFSOutput-Komponente weitergeleitet. Diese erstellt eine Datei und speichert sie auf dem HDFS ab.

Page 6: Outsourcing Big Data - mayato.com · Vorbedingung Um das beschriebene Szenario umzusetzen werden folgende Komponenten benötigt: Talend für Big Data: Für die Demo wird Talend Open

White Paper // Outsourcing von Big Data

mayato GmbH – www.mayato.com – [email protected]

Die Exasol-Komponente enthält hierbei ein simples Select-Statement um alle Daten abzuholen:

In der tMap werden die Daten 1:1 weitergereicht.

In der HDFS-Komponente wurden folgende Konfigurationen vorgenommen:

Im Feld Eigenschaftstyp kann die zuvor im Hadoop Cluster angelegte HDFS-Verbindung ausgewählt werden. Als Nächstes muss noch ein Tabellenschema erstellt werden. Durch Auswahl der angelegten HDFS-Verbindung füllt sich das Feld „Verbindung“ automatisch mit den korrekten Verbindungsinformationen. Gleiches gilt für das Feld „Benutzername“. Im Feld „File Name“ müssen Pfad und Name für die neu zu erzeugende Datei definiert werden. In diesem Fall wird im Ordner „user“ ein File mit den Namen „transactions“ angelegt.

Der zweite Schritt besteht aus der Erzeugung einee Hive-Tabelle.

Dies wird mit der Komponente tHiveCreateTable durchgeführt. Die Konfiguration für diese Komponente sieht wie folgt aus:

Page 7: Outsourcing Big Data - mayato.com · Vorbedingung Um das beschriebene Szenario umzusetzen werden folgende Komponenten benötigt: Talend für Big Data: Für die Demo wird Talend Open

White Paper // Outsourcing von Big Data

mayato GmbH – www.mayato.com – [email protected]

Zunächst müssen erneut die Verbindungsinformationen eingetragen werden. Auch hier kann wieder die vom Hadoop-Cluster erzeugte HIVE-Verbindung genutzt werden. Durch Auswahl der vorkonfigurierten Verbindung werden alle nötigen Angaben automatisch eingetragen.

Als nächstes muss ein Tabellenname, sowie die gewünschte Aktion ausgefüllt werden. In diesem Fall soll die Tabelle TRANSACTIONS heißen und sofern diese Tabelle noch nicht vorhanden ist, soll sie von Talend erzeugt werden.

Im letzten Schritt müssen die Daten aus der Datei im HDFS in die neu erzeugte Hive-Tabelle geschrieben werden.

Dies wird mit der Komponente tHiveRow realisiert. Die Konfiguration der Komponente sieht dabei folgendermaßen aus:

Page 8: Outsourcing Big Data - mayato.com · Vorbedingung Um das beschriebene Szenario umzusetzen werden folgende Komponenten benötigt: Talend für Big Data: Für die Demo wird Talend Open

White Paper // Outsourcing von Big Data

mayato GmbH – www.mayato.com – [email protected]

Wie bereits bei den anderen Komponenten lässt sich auch hier die vorkonfigurierte Hive-Verbindung aus dem Hadoop-Cluster nutzen, sodass alle Verbindungsinformationen automatisch befüllt werden. Im Anschluss muss das gewünschte HiveQL-Statement erstellt werden. Bei HiveQL handelt es sich um eine Abwandlung von SQL. Im oben dargestellten HiveQL werden die Daten aus der Datei „/user/transactions“ in die Tabelle TRANSACTION geschrieben.

Bei der „Logging-Komponente“ handelt es sich um eine simple tJava-Komponente, welche über ein „System.out.println()“ einen Text auf der Kommandozeile ausgibt, um den abgeschlossenen Prozess anzuzeigen.

Fazit

Die Menge an zu verarbeitenden Daten nimmt immer weiter zu. Um nicht alle Daten in den operativen Systemen vorhalten zu müssen, ist es sinnvoll, ältere Daten zu archivieren und nur bei speziellem Gebrauch wieder neu ins Datawarehouse zu laden. Ein Hadoop-System stellt hier eine besonders kostengünstige Möglichkeit dar. Mit Hilfe des ETL-Tools „Talend for Big Data“ lassen sich auch große Datenmengen einfach in einem solchen Hadoop-System archivieren. Dies wird mit diesem Whitepaper beispielhaft aufgezeigt und in allen nötigen Schritten detailliert erläutert.

Page 9: Outsourcing Big Data - mayato.com · Vorbedingung Um das beschriebene Szenario umzusetzen werden folgende Komponenten benötigt: Talend für Big Data: Für die Demo wird Talend Open

Watch our predictions come true!

mayato GmbH – www.mayato.com – [email protected]

Kontaktieren Sie uns //

mayato GmbH Friedrichstraße 121 10117 Berlin

[email protected]

+49 30 7001 4692-51

Was wir vorhersagen, soll auch eintreffen!