Elasticsearch – Das Ende der klassischen BI?

Erste Schritte und Einführung

Elasticsearch – eine auf Basis von Apache Lucene geschriebene Suchmaschine – versteckt sich mittlerweile hinter sehr vielen Webanwendungen, die irgendetwas mit „Suchen (von Begriffen)“ zu tun haben. Das sind in der heutigen Zeit, in der Big Data und Digitalisierung eine große Rolle spielen, sehr viele!

Als prominentes Beispiel lässt sich Wikipedia anführen. Die Funktionsweise ist relativ einfach erklärt: Elasticsearch nimmt Daten entgegen, speichert diese im JSON-Format (NoSQL) und stellt sie mit Hilfe einer Restful-API zur Verfügung.

Was diesen Stack jedoch so unheimlich schnell macht, ist die Technik, mit der die Daten im Hintergrund verarbeitet und verwaltet werden. Jedes Element mit dem gearbeitet werden soll, wird als „Document“ bezeichnet und wird indiziert bevor es gespeichert wird. Bei dieser Indizierung wird jeder Index durch Elasticsearch in sogenannte Shards, also Teile eines Index, zerteilt. Diese Shards eines Indexes können bei Bedarf auf mehrere Server aufgeteilt werden, um die Rechenlast zu verteilen.

Außerdem startet Elasticsearch bei jeder Indizierung einen Analyseprozess. Während dieser Analyse wird das Dokument für den Index aufbereitet. Dabei wird der zu indizierende Text des Dokuments transformiert, um die daraus gewonnen Ergebnisse später wiederum in den Index schreiben zu können. Bei der Analyse gibt es mehrere Schritte, die durchlaufen werden, wie zum Beispiel:

  • Aufbrechen eines Textes an bestimmten Stellen (z.B Leerzeichen oder Kommas) bzw. in einzelne Wörter (aus „Superschnelles Auto“ wird „Superschnelles“ und „Auto“).
  • Umwandlung der Buchstaben jedes einzelnes Wortes in Lower-Case (anhand unseres Beispiels also „Superschnelles“ in „superschnelles“).

Elasticsearch speichert die Ergebnisse aus dieser Analyse getrennt von den Originaldokumenten im Index ab.

Nun haben wir etwas über den Ablauf eines Indizierungslaufes gelernt, und dabei Begriffe wie Documents kennengelernt. Eine erste Einordnung dieses Begriffes und soll die nachfolgende Grafik und Erklärung liefern.

Elasticsearch Types & Documents

Ein Dokument entspricht dabei rudimentär einer Zeile einer herkömmlichen SQL-Datenbank, ein „Type“ kann mit einer Tabelle und ein Index einer Datenbank vergleichen werden. Jedes Dokument muss für die Indexierung einem Typ zugeordnet werden und jeder Typ bei seiner Erstellung einem Index.

Kombiniert man nun diese Power mit dem ebenfalls von Elastic angebotenen Open-Source Tools Kibana und Logstash eröffnen sich auch für die Welt der Business Intelligence (BI) ganz neue Perspektiven in Hinblick auf schicke und zugleich performante Berichte. Ein paar Beispiele gefällig?

Kibana-Beispiel 1Kibana-Beispiel 2

 

 

 

 

 

 

Um die vielfältigen Möglichkeiten von Elasticsearch und Kibana auszuloten, bietet sich eine lokale Installation der Komponenten an. Zu beziehen sind alle Tools entlang des nachfolgend abgebildeten Elasticstack über den folgenden Link: https://www.elastic.co/de/products.

Der Elastic-Stack

Elastic-Stack

Der Elastic-Stack stellt sich zusammengefasst wie folgt dar:

  • Kibana stellt wie bereits erwähnt ein flexibles Werkzeug für die Visualisierung von Daten dar
  • Elasticsearch selbst ist die Engine welche die Aufbereitung und Organisation der Daten übernimmt.
  • Beats und Logstash stellen die Datenversorgung der Engine sicher.

In einem zeitnah folgenden Artikel widmen wir uns der Installation auf einem beliebigen Windows-Rechner und die ersten Schritte wie der Konfiguration der Komponenten und die erste Datenbeladung mittels Logstash.

Steffen Stähle

Digitaler Transformer aus Leidenschaft - Ist der festen Überzeugung, dass die Unternehmens-IT sich in den nächsten Jahren drastisch ändern wird und deshalb immer auf der Suche nach Optimierungspotential um Arbeitsabläufe mit modernen Technologien und Architekturen noch effizienter zu gestalten.