NEUE WEGE IN DER DATENINTEGRATION


Veröffentlicht von

Veröffentlicht am 01. Nov 2016

Einleitung

Als Anbieter von Integrationslösungen untersuchen wir laufend die verfügbaren Technologien und Plattformen auf ihre Einsatzmöglichkeit in den Projekten unserer Kunden.

Die Datenmengen in Business und Technik nehmen laufend zu. Moderne Tools zur Datenintegration, Datenspeicherung und Datenverarbeitung adressieren diese Anforderungen und bieten:

  • Speicherung grosser Mengen strukturierter und unstrukturierter Daten
  • Flexible Datenmodelle
  • Skalierbarkeit über Clustering
  • Elastizität mittels einfachem hinzufügen und entfernen von Ressourcen
  • und vieles mehr

Kürzlich haben wir den Einsatz eines solchen Tools, den Elastic Stack, für die Produktionsdatenerfassung im Rahmen einer Machbarkeitsstudie/proof of concept (POC) evaluiert .

Beitrag als PDF

Was ist der Elastic Stack

Um es mit den Worten von Elastic selbst zu sagen: „Der Open-Source Elastic Stack – das heisst Elasticsearch, Kibana, Logstash und Beats – hilft euch dabei, Daten aus jeder Quelle in beliebigem Format aufzunehmen und sie in Echtzeit zu durchsuchen, zu analysieren und zu visualisieren.“

Welche Aufgaben übernehmen die vier Elemente des Elastic Stacks?

Elasticsearch ist ein auf Lucene basierender Suchserver. Elasticsearch ermöglicht eine schnelle Suche über strukturierte, unstrukturierte und Zeitreihen-Daten. Elasticsearch hat den grossen Vorteil, dass die Mechanismen für die Skalierung und sehr gute Verfügbarkeit bereits integriert sind. Anwendungen kommunizieren über eine REST-Schnittstelle mit Elasticsearch

Logstash übernimmt die Datenerfassung, -anreicherung und -transport. Logstash unterstützt eine sehr grosse Zahl an Eingangs- (Syslog, TCP, JDBC,…) und Ausgangsformaten (darunter auch Elasticsearch).

Beats sind leichtgewichtige Datenerfassungsagenten (data shippers), die Daten sammeln, -parsen und weiterleiten. Das Ziel kann direkt Elasticsearch, oder auch Logstash sein.

Kibana ist eine Webapplikation mit der die in Elasticsearch gespeicherten Daten analysiert und visualisiert werden.

Ausgangslage

Als Basis für unseren Test vergleichen wir die Umsetzung der zentralen Elemente einer bereits von uns erstellten Datenintegration und -auswertung im Produktionsumfeld mit einer auf dem Elastic-Stack basierenden Lösung.

Die Lösung erfasst rund 11 Millionen Ereignisse (Produktionsdatensätze) pro Jahr. Die Messdaten werden jeweils Ende Jahr archiviert. Basierend auf den Erkenntnissen aus dem Einsatz, plant der Kunde die Anzahl der Messdaten laufend zu erweitern und diese auch über einen längeren Horizont als ein Jahr auszuwerten.

Im Rahmen unseres Tests behalten wir die wesentlichen Architekturelemente bei, die Implementation unterscheidet sich aber in zentralen Punkten:

Vergleichskriterien und Erwartungen

Wir vergleichen die beiden Lösungen anhand folgender Kriterien:

  • Ist der Elastic Stack auch für kleinere Lösungen, mit geringen IT-Ressourcen geeignet?
    • Wie gross ist der Installations- und Konfigurationsaufwand?
    • Welches IT-Wissen wird benötigt und wie gross ist der Aufwand für den Betrieb der Lösung?
  • Welche Schnittstellen stehen für die Auswertung zur Verfügung?
  • Wie flexibel lassen sich die Daten auswerten? Viele unserer Auswertungen sind Aggregationen oder Statistiken mit Zeitbezug.
  • Wie schaut die Performance aus? Haben wir gute Antwortzeiten? Auch bei Datenmengen, die die der aktuellen Lösung überschreiten?
  • Welchen Implementationsaufwand haben wir als Anbieter der Integrationslösung?
    • Datenerfassung
    • Datentransformation
    • Erstellen von optimalen, für die Auswertung geeigneter Datenstrukturen
    • Auswertung und Visualisierung der Daten – reicht Kibana für die Visualisierung aus?

Vom Einsatz von Elastic erhoffen wir uns eine stabile Performance (auch über grosse und sehr grosse Datenmengen hinweg), geringeren kundenspezifischen Implementationsaufwand für die Datenerfassung und -transformation, sowie flexible Auswertemöglichkeiten.

Resultate

Wir führten die Performance-Tests auf einem PC mit folgender Ausstattung durch:

  • CPU: Intel Core i7 3770, 3.4GHz 16GB RAM DDR3
  • Elasticsearch Heap Size: 4GB
  • OS: Windows 8.1 Enterprise, 64bit, Samsung 850 Evo 500GB SSD

Fazit

Mit diesem ersten Test haben wir lediglich ein einfaches Einsatzszenario verifiziert und nur einen kleinen Teil der Möglichkeiten mit dem Elastic Stack genutzt.
Nach der Durchführung des POCs sind wir von den Möglichkeiten und der Leistung des Elastic Stacks beeindruckt – auch dass sich bereits bei einer so kleinen Anwendung, handfeste Vorteile ergeben. Gepaart mit den Möglichkeiten zur Skalierung und Verfügbarkeitssteigerung, sehen wir den Elastic Stack als auch für kleine Anwendungen, passende, leistungsfähige und zukunftssichere Lösung an.

Der Vergleich zu einer einfachen SQLite Datenbank ist etwas unfair. Die Resultate mit Elastic sind in Anbetracht der nur gering erhöhten Komplexität und des massiv geringeren Entwicklungsaufwands aus Entwicklersicht dennoch hervorragend. Die Antwortzeiten sind ausgesprochen gut und das ohne aufwändige Transformation (ETL) und Vorausberechnungen (DWH, BI). Diese Performance können wir mit geringem Umbauaufwand auch in der bestehenden Applikation nutzen. Zudem kann der Anwender mit Kibana, Grafana oder einer kundenspezifischen Webapplikation seine Produktionsdaten nutzen.

Die erhöhte Komplexität bei der Installation, Konfiguration und Betrieb des Stacks, können wir dank der REST API soweit automatisieren, dass sie im Betrieb keine höheren Anforderungen als die bisherige Lösung stellt. Beim Betrieb von verteilten, redundanten Elastic Lösungen, steigen entsprechende auch die Anforderungen an die IT.

Ausblick

In den meisten Einsatzszenarien wird Elastic wohl kaum alleine eingesetzt. Für eine reine Erfassung von Messdaten (wie hier diskutiert), kann Elastic direkt als Datenbank genutzt werden. Werden die Daten aber kontinuierlich bearbeitet werden (OLTP) ist eine Kombination von relationalen Datenbanken für OLTP und komplexe Datenstrukturen mit Elastic in Betracht zu ziehen. Je grösser die Datenmengen und je stärker Daten integriert werden, stehen weitere Themen an: Elasticsearch mit Hadoop, Datenaustausch über Enterprise Service Buses (ESB), Security Aspekte, API Management und weitere.