Customer Journey Analytics am Beispiel von Suchaktivitäten

Seite 2: Ausgangssituation

Inhaltsverzeichnis

Es geht um einen Online-Shop, der Elektronikartikel wie Smartphones und Zubehör vertreibt. Er verfügt über eine Shop-Suche, die das Ziel der Analyse sein soll. Die zu beantwortenden Fragen sind:

  • Was sind die häufigsten Suchanfragen, die keine Treffer generieren?
  • Welche MaĂźnahmen lassen sich aus den Antworten der Fragen ableiten?

Zum Einsatz kommen Hadoop fĂĽr das Speichern der Daten, Apache Spark als Framework fĂĽr ihre Analyse und Apache Zeppelin fĂĽr interaktive Abfragen und die Visualisierung der Ergebnisse.

Ausgeklammert sind das Speichern der Daten in Hadoop beziehungsweise das verteilte Filesystem (HDFS). Der Grund hierfĂĽr ist einfach: Es gibt nicht das "eine System", das die Daten produziert, hier das Shopsystem, sondern eine Vielzahl solcher auf dem Markt. Und fĂĽr jedes Shopsystem gibt es bestimmte Mittel und Wege, Daten zu exportieren. Einen Weg zu beschreiben wĂĽrde daher bedeuten, Dutzende oder Hunderte anderer Wege nicht zu beschreiben. Da nun das Lagern der Daten in der Regel nicht das Spannendste an Customer Journey Analytics sind, liegt der Fokus auf der Analyse und Visualisierung der Daten.

Der beschriebene Workflow geht also davon aus, dass Besucher im Online-Shop über die Shop-Suche Daten produzieren, die über einen simplen Befehl im HDFS landen. Die Daten werden mit Spark eingelesen. Zeppelin dient als interaktive Analyseplattform, die über eine Spark-Schnittstelle verfügt und Visualisierungsansätze bietet.

Warum Hadoop optimal als Storage dient, wurde in den vergangenen Jahren hinreichend und auch eingangs nochmals kurz beschrieben. Spark ist das derzeit aktivste Projekt unter dem Mantel der Apache Software Foundation. Das hat seinen Grund: Spark dient als Verarbeitungsplattform für Daten aller Art, bietet Möglichkeiten, die Analysen im Gegensatz zu klassischen Batch-Verfahren interaktiv zu betreiben, kommt mit einigen Algorithmen aus dem Bereich des maschinellen Lernens und verfügt zudem noch über APIs, die ein Arbeiten in Scala, Python oder Java ermöglichen.

Hinzu kommen Ansätze, die ein Arbeiten mit SQL-ähnlichen Abfragen erlauben, und die Fähigkeit, die eingangs erwähnten interaktiven Analyse- und Verarbeitungsschritte "in-memory" durchzuführen, was in einigen Szenarien einen satten Geschwindigkeitsvorteil gegenüber traditionellen Batch-Verfahren bringt. Interaktive Analysen in Echtzeit werden so ermöglicht, was sich mit den früheren MapReduce-Ansätzen von Hadoop nicht so einfach umsetzen ließ.

Diese Liste an guten Gründen für Spark ließe sich fortführen, doch der Artikel soll kein flammendes Plädoyer für eine einzelne Technik sein. Zentral für das Fallbeispiel sind die einfache Verarbeitung semistrukturierter Daten ohne Schema mit SQL-ähnlichen Befehlen und ihre Visualisierung.

Das leitet zum letzten Tool des Stacks über: Apache Zeppelin. Obwohl noch im sogenannten Apache Incubator (dem hauseigenen Software-Brutkasten der ASF), hat Zeppelin in der jüngeren Vergangenheit viel Aufmerksamkeit erlangt, da es mit einer grafischen Oberfläche interaktive Analysen auf Daten ermöglicht. Die Technik enthält Interpreter für Spark. Das bedeutet, dass sich direkt auf der Zeppelin-Oberfläche mit Spark Daten verarbeiten und Ergebnisse visualisieren lassen. Das erleichtert die Arbeit wesentlich und lässt Reports zu, die nicht mit Extratools zu generieren sind, um sie Entscheidern vorlegen zu können.

Für den schnellsten Einstieg in eine Hadoop-Distribution lohnt sich oftmals eine vorgefertigte Sandbox wichtiger Distributoren wie Cloudera, MapR oder Hortonworks. Alle haben ihr Für und Wider, was jedoch hier nicht Gegenstand ist. Wichtig ist, dass sie sogenannte Sandboxes ihrer Produkte anbieten, die alles oder zumindest den größten Teil vorinstalliert haben, sodass die einzelnen Komponenten gut zusammenarbeiten. Für den Artikel kam die Sandbox von Hortonworks zum Einsatz. Sie bietet bis auf Apache Zeppelin schon alles. Für die Installation von Zeppelin sowie ein Tutorial eignet sich als Anleitung ein Blog-Beitrag der Firma. Es ist davon auszugehen, dass Zeppelin in späteren Releases integriert sein wird.