Die CeBIT ist Geschichte. Das Aus der legendären Computermesse wurde gestern unter anderem so begründet: „Der digitale Wandel findet inzwischen überall statt,…“ (S. Weil, Ministerpräsident von Niedersachsen).

Diese zutreffende Aussage lässt sich zwanglos abwandeln: „Data Science findet inzwischen überall statt“.

Tatsächlich kommt Data Science zunehmend auch außerhalb von Big Data oder maschinellem Lernen zur Anwendung. Das gilt zum Beispiel für Business Intelligence. Wird Data Science als die bewusste Gestaltung der gesamten Verarbeitungskette von den Daten über die Informationsgewinnung bis zur Entscheidungsunterstützung angesehen, dann existieren Data Science und Business Intelligence keinesfalls in getrennten Welten.

Die Auffassung, dass es sich doch um unterschiedliche Dinge handelt, wird vielleicht von den zur Verfügung stehenden Werkzeugen gestützt. Wenn es ihn denn gibt, dann greift der typische Data Scientist mit R oder Python auf die Rohdaten zu, erzeugt einen tidy Datensatz, führt Modellbildungen und Analysen durch und präsentiert anschließend die Ergebnisse wiederum mit R oder Python.

Business Intelligence verfügt dem Anschein nach mit ETL-Tools, Data Warehouses und Reportgeneratoren über völlig andere Werkzeuge. Neugierige Data Scientists werden schnell feststellen, dass die vermeintlich andere Seite durchaus etwas zu bieten hat. Betrachten wir beispielsweise die Werkzeuge zum extrahieren, transformieren und laden (ETL) in der konkreten Ausprägung der Integration Services des Microsoft SQL Servers.

Völlig unabhängig von einer existierenden Datenbank können diese Tools aus einer Vielzahl von Quellen lesen und in eine Vielzahl von Zielformaten schreiben. Und auf dem Weg von der Quelle zum Ziel steht eine große Auswahl an Funktionen zur Bearbeitung der Daten zur Verfügung.

Auf der UseR 2014 (Videoaufzeichnung, Beispiel hier ab ca. 48:55) stellte Hadley Wickham das Paket dplyr und den zugehörigen Chain Operator unter anderem mit folgendem Code Beispiel vor:


per_hour <- flights %>%
filter(cancelled== 0) %>%
mutate(time = hour + minute / 60) %>%
group_by(time) %>%
summarise(
arr_delay = mean(arr_delay, na.rm = TRUE),
n = n()
)

Grob gesagt, wird in diesem Beispiel aus dem Datensatz flights.csv (Daten zu Abflügen von einem US Flughafen im Jahr 2011) eine neue Variable dadurch erzeugt, dass zunächst die nicht abgesagten Flüge herausgefiltert werden, dann eine neue Variable berechnet, dann nach dieser neuen Variable gruppiert und schließlich die mittlere Verspätung bei Ankunft und die Zahl der entsprechenden Flüge berechnet wird.

ETL System

Eine derartige Pipeline kann mit einem ETL System ebenfalls leicht verlegt werden (siehe Abbildung). Das ist zwar nicht so schön dokumentiert wie mit R, bietet dafür aber eine Menge anderer Vorteile, wie z.B. die Integration in ein komplexes Berichtssystem. Ein Blick in andere Werkstätten lohnt sich, auch andere Handwerker haben eine gut sortierte Toolbox.