Die rasante Ent­wick­lung hin zu immer grö­ße­ren und kom­ple­xe­ren Daten­men­gen in Unter­neh­men bringt einige neue Anfor­de­run­gen an das Ver­ar­bei­ten die­ser Daten mit sich. Bedingt durch die Masse an Daten und die Kom­ple­xi­tät der Daten­struk­tu­ren, ist die Ana­lyse sowie Berei­ni­gung der Daten ohne leis­tungs­starke Soft­ware Tools häu­fig nicht mehr mög­lich. Ins­be­son­dere die Struk­tu­rie­rung und Berei­ni­gung nimmt viel Zeit und Arbeits­auf­wand in Anspruch, ehe mit der tat­säch­li­chen Ana­lyse über­haupt begon­nen wer­den kann.
An die­ser Stelle setzt das Data Wrang­ling Tool Trifacta an. Es soll die Aufbereitung unter­schied­lichs­ter Daten mit­hilfe von Machine Lear­ning Tools effi­zi­en­ter gestal­ten und für jeder­mann anwend­bar machen.

Trifacta wird  in drei unter­schied­li­chen Pake­ten ange­bo­ten. Der ‚Trifacta Wrang­ler‘ ist kos­ten­los ver­füg­bar und ermög­licht die Daten­auf­be­rei­tung auf dem eige­nen Desk­top. Der ‚Trifacta Wrang­ler Edge‘ erlaubt die Zusam­men­ar­beit in Teams und Abtei­lun­gen, wohin­ge­gen der ‚Trifacta Wrang­ler Enter­prise‘ zusätz­li­che Enter­prise Fea­tures lie­fert. Im Fol­gen­den wird der ‚Trifacta Wrang­ler Enter­prise‘ evaluiert.

Fea­tures

Kern­aspekte der Arbeit mit Trifacta sind die Berei­ni­gung von unstruk­tu­rier­ten Daten sowie von Roh­da­ten, aber auch das Zusam­men­fü­gen von Daten­quel­len und die Inte­gra­tion exter­ner Daten. In dem Tool kön­nen soge­nannte ‚Flows‘ ange­legt wer­den, um Auf­ga­ben von­ein­an­der abzu­gren­zen. Ein Flow beinhal­tet dabei die ent­spre­chen­den Ursprungs­da­ten sowie eine Liste der dar­auf ange­wen­de­ten Bear­bei­tungs­schritte (‚Recipe‘) und die Bezie­hun­gen der Daten­sätze unter­ein­an­der.
Auf­grund der Mäch­tig­keit des Tools wer­den wir an die­ser Stelle nur ein paar aus­ge­wählte Fea­tures vor­stel­len, um einen ers­ten Ein­druck von der Arbeit mit Trifacta zu vermitteln.

Beim Hin­zu­fü­gen eines neuen Daten­sat­zes zu einem Flow erstellt Trifacta auto­ma­tisch ein zuge­hö­ri­ges Recipe und ver­sucht, den Daten­satz in einer sinn­vol­len Struk­tur anzu­ord­nen.  Abbil­dung 1 zeigt bei­spiel­haft die so gene­rier­ten Arbeits­schritte beim Import einer neuen Daten­quelle. Bei gro­ßen Daten­sät­zen arbei­tet die Soft­ware auf einer Stich­probe, wel­che mit unter­schied­li­chen Sam­ple Metho­den gewählt wer­den kön­nen. Ist der Anwen­der mit der Aufbereitung der Stich­probe zufrie­den, so kann das Recipe schließ­lich auf den voll­stän­di­gen Daten­satz ange­wen­det werden.

Data Wrangling mit Trifacta Bild1
Abbil­dung 1 Ein­ge­le­se­ner Datensatz

Über der jewei­li­gen Spalte zeigt Trifacta die Ver­tei­lung der darin ent­hal­te­nen Werte sowie den Anteil feh­len­der oder nicht zuläs­si­ger Ein­träge an. Diese Anga­ben lie­fern einen ers­ten Ein­druck von der Qua­li­tät und Struk­tur des impor­tier­ten Datensatzes.

Durch das Aus­füh­ren gän­gi­ger Daten­trans­for­ma­tio­nen kann der ein­ge­le­sene Daten­satz in die gewünschte Struk­tur trans­for­miert wer­den. Der trans­for­mierte Daten­satz mit ent­spre­chen­dem Recipe ist in Abbil­dung 2 zu sehen. Mit­hilfe des Recipes ist es jeder­zeit mög­lich, zu frü­he­ren Trans­for­ma­ti­ons­schrit­ten zurück zu keh­ren und diese zu bear­bei­ten oder aus­ge­wählte Arbeits­schritte zu entfernen.

Data Wrangling mit Trifacta Bild2
Abbil­dung 2 Trans­for­mier­ter Datensatz

Auch für das Ein­le­sen ande­rer Datei­ty­pen wie bei­spiels­weise JSON lie­fert Trifacta geeig­nete Vor­schläge zur schnel­len Extrak­tion der Daten.

Data Wrangling mit Trifacta Bild3
Abbil­dung 3 Ein­ge­le­sene JSON-Datei

Wird der Daten­satz nach dem Ein­le­sen zunächst sehr unüber­sicht­lich in einer ein­zi­gen Zeile dar­ge­stellt, so kommt man mit­hilfe stan­dard­mä­ßi­ger Funk­tio­nen zu einer struk­tu­rier­ten und über­sicht­li­chen Dar­stel­lung für die wei­tere Verarbeitung.

Data Wrangling mit Trifacta Bild4
Abbil­dung 4 Trans­for­mierte JSON-Datei

In Trifacta kön­nen außer­dem unter­schied­li­che Daten­sätze mit­tels Union oder Join ver­knüpft wer­den. Dies ermög­lich das Zusam­men­fü­gen unter­schied­li­cher Daten­quel­len sowie die Inte­gra­tion exter­ner Daten in eine bestehende Datenbank.

Data Wrangling mit Trifacta Bild5
Abbil­dung 5 Daten­sätze joinen

Stär­ken und Herausforderungen

Trifacta gene­riert auf Grund­lage von Machine Lear­ning Lösungs­vor­schläge für den Anwen­der, wel­cher sich die Arbeits­schritte in sei­nem Recipe an vie­len Stel­len schlicht zusam­men­kli­cken kann. Dies macht das Tool auch für Anwen­der inter­es­sant, die nicht aus dem IT-Bereich stam­men und keine Soft­ware-Affi­ni­tät auf­wei­sen.
Zugleich kön­nen Anwen­der bei der Arbeit mit Trifacta auch an ihre Gren­zen gelan­gen:
Und zwar dann, wenn das Tool keine vor­ge­fer­tigte Lösung bie­ten kann, die den eige­nen Anfor­de­run­gen ent­spricht, und der Anwen­der infolge des­sen doch auf eigene Kennt­nisse bei­spiels­weise bezüg­lich Regu­lar Expres­si­ons oder der Berech­nung von Wer­ten anhand von For­meln zurück­grei­fen muss. Sind diese Kennt­nisse nicht vor­han­den, muss teils sehr klein­schrit­tig vor­ge­gan­gen wer­den, um zum erhoff­ten Ergeb­nis zu gelangen.

Die Arbeits­schritte, wel­che auf einem Daten­satz aus­ge­führt wer­den, spei­chert Trifacta auto­ma­tisch im Recipe. Dadurch ist es mög­lich, sich den Zustand des Samples nach einem belie­bi­gen Arbeits­schritt anzei­gen zu las­sen. Auch kön­nen Arbeits­schritte nach­träg­lich im Recipe geän­dert oder gar gelöscht wer­den, solange dies kei­nen Kon­flikt mit den nach­fol­gen­den Arbeits­schrit­ten ergibt. Das Recipe erleich­tert somit sowohl die Doku­men­ta­tion der Bear­bei­tung, als auch die nach­träg­li­che Feh­ler­su­che. Außer­dem kann ein bereits erstell­tes Recipe auf wei­tere Daten­sätze aus­ge­führt wer­den, sodass die Berei­ni­gung und Struk­tu­rie­rung von Daten inner­halb eines Unter­neh­mens mit wenig Auf­wand stan­dar­di­siert wer­den kann.

Durch das Bear­bei­ten von Stich­pro­ben anstelle voll­stän­di­ger Daten­sätze mini­miert das Tool zudem die benö­tig­ten Res­sour­cen, was es zu einem flüs­si­ge­ren und anwen­der­freund­li­che­ren Arbeits­werk­zeug macht. So kann der Anwen­der ver­schie­dene Arbeits­schritte tes­ten, bear­bei­ten und auch wie­der rück­gän­gig machen, ohne lange War­te­zei­ten in Kauf neh­men zu müssen.

Trifacta unter­stützt zudem eine ganze Reihe von Datei­for­ma­ten, so auch JSON, XML, Par­quet, Avro und Hive Tabel­len. Das Tool lie­fert bei­spiels­weise hilf­rei­che Tools, um JSON-Dateien mit weni­gen Klicks zu ent­pa­cken oder zu ver­schach­teln. HBase-Tabel­len sowie SAS-Dateien kön­nen lei­der weder ein­ge­le­sen noch geschrie­ben wer­den, und auch für ORC Dateien bie­tet Trifacta kei­nen Sup­port. Außer­dem ist es nicht mög­lich, beim Spei­chern der Daten in Hive eine par­tio­nierte Tabelle zu erstellen.

Grund­sätz­lich lie­fert Trifacta ein sehr star­kes Tool bezo­gen auf Data Pre­pa­ra­tion. Bereits beim Ein­le­sen ver­sucht das Tool, die Daten in einer sinn­vol­len Struk­tur anzu­zei­gen und ord­net ihnen pas­sende Daten­ty­pen zu. Der Anwen­der hat zudem die Mög­lich­keit, domä­nen­spe­zi­fi­sche Daten­ty­pen wie bei­spiels­weise ‚Tele­fon­num­mer‘ selbst anzulegen.

Die Dar­stel­lung der Daten in Tabel­len­form ist über­sicht­lich und Trifacta bie­tet stan­dard­mä­ßige Funk­tio­nen, um gän­gige Daten­trans­for­ma­tio­nen durch­zu­füh­ren. Dazu zäh­len auch kom­ple­xere Trans­for­ma­tio­nen wie Pivo­ting und Win­do­wing. Beim Ent­fer­nen von Dupli­ka­ten weist Trifacta lei­der Schwä­chen auf, da ledig­lich Zei­len gelöscht wer­den kön­nen, die in jeder Spalte über­ein­stim­men. Zei­len, die in min­des­tens einer der Spal­ten von­ein­an­der abwei­chen, wer­den nicht als Dupli­kate erkannt. Außer­dem ist die simul­tane Umbe­nen­nung meh­re­rer Spal­ten nicht mög­lich, sodass im Bedarfs­fall jede Spalte ein­zeln umbe­nannt wer­den muss. Auch die stan­dard­mä­ßige Anony­mi­sie­rung von Daten ist in Trifacta lei­der nicht mög­lich. Diese kann daher ledig­lich über UDFS imple­men­tiert werden.

Scrip­ting wird in Trifacta nicht unter­stützt. Um indi­vi­du­elle Arbeits­schritte durch­zu­füh­ren, die von Trifacta nicht stan­dard­mä­ßig ange­bo­ten wer­den, kön­nen jedoch UDFS gene­riert wer­den. Da durch die Stan­dard­funk­tio­nen sowie die Mög­lich­keit der UDFS-Nut­zung bereits sehr viele Nut­zungs­mög­lich­kei­ten abge­deckt wer­den, fällt die feh­lende Mög­lich­keit Scripte zu erstel­len nicht so schwer ins Gewicht. Diese UDFs müs­sen aller­dings zunächst instal­liert und als Jar-Pakete ein­ge­bun­den wer­den, was mit zusätz­li­chem Auf­wand ver­bun­den ist und einen Over­head generiert.

Eine zusätz­li­che und sehr nütz­li­che Funk­tion des Tools ist die Mög­lich­keit, eigene Sche­du­ler anzu­le­gen, wel­che spe­zi­fi­sche Flows zu gege­be­nen Zei­ten oder Anläs­sen star­ten. Die Flows kön­nen dabei eben­falls von exter­nen Sche­du­lern gestar­tet werden.

Gerade für den Big Data Ein­satz ist Trifacta gut geeig­net, da es die Über­mitt­lung von Trans­for­ma­tio­nen, die man auf einem Sam­ple aus­ge­führt hat, an ein Spark-Clus­ter ermög­licht. Dadurch kön­nen große Daten­men­gen auf Grund­lage des erstell­ten Recipes auf unter­schied­li­che Rech­ner ver­teilt und dort trans­for­miert werden.

Zusam­men­fas­send lässt sich sagen, dass Trifacta ein mäch­ti­ges Tool ist, wel­ches die Berei­ni­gung und Aufbereitung von Daten beschleu­ni­gen kann und viele gän­gige Datei­for­mate sowie Daten­trans­for­ma­tio­nen unter­stützt. Dabei ist posi­tiv auf­ge­fal­len, dass auch kom­ple­xere Trans­for­ma­tio­nen wie Pivo­ting und Win­do­wing per Default unter­stützt wer­den. Schwä­chen zeigt das Tool bezüg­lich der nicht unter­stütz­ten Datei­for­mate und der teils umständ­li­chen simul­ta­nen Bear­bei­tung von Spal­ten. Da das Hin­zu­fü­gen von UDFs einen Over­head beinhal­tet, wäre es außer­dem wün­schens­wert, UDFs in Scala oder Python direkt in Trifacta schrei­ben zu kön­nen, ohne diese als UDFs instal­lie­ren zu müs­sen. Durch eine über­sicht­li­che Benut­zer­ober­flä­che sowie eine Reihe stan­dard­mä­ßi­ger Funk­tio­nen ist Trifacta auch für Nut­zer, die ursprüng­lich nicht aus dem IT-Bereich stam­men, bis zu einem gewis­sen Grad intui­tiv zugäng­lich. Hier­bei stößt die Soft­ware aller­dings an ihre Gren­zen, sobald eine gene­ri­sche und dyna­mi­sche Ver­ar­bei­tung benö­tigt wird.