Apache Spark - Die Antwort auf Alles?

Apache Spark wird häufig spontan als Lösung für alle Herausforderungen im Bereich Big Data propagiert. Aber trifft dies wirklich zu?

Apache Spark – das universelle Schweizer Taschenmesser für Analytics. Zu schön um wahr zu sein?

Spark als Universallösung für alle analytischen Herausforderungen im Big Data Kontext zu positionieren hört sich erst einmal vielversprechend und einfach an. Eigentlich wissen wir aber, dass dieser Bereich viel zu komplex und vielschichtig ist, um pauschal mit einem Tool adressiert werden zu können. Dennoch lieben wir natürlich einfache Antworten auf komplexe Fragestellungen.

Dies mag auch der Grund sein warum ich letzter Zeit häufiger Gespräche ähnlich dem folgenden führe:

Interessent:
Wie würden Sie Spark mit EXASOL vergleichen?

Ich:
Spark ist eine universelle Plattform, die sehr vielseitig einsetzbar ist und auf einem modernen In-Memory Ansatz für verteilte Datenverarbeitung basiert. Wir von EXASOL halten Spark für eine hervorragende Ergänzung zu Hadoop und in Teilen auch einen hervorragenden Ersatz einiger klassischer Hadoop-Komponenten und -Konzepte. EXASOL lässt sich gut mit Spark integrieren. Grundsätzlich adressieren Spark und EXASOL aber unterschiedliche Anwendungsgebiete und verfolgen verschiedene Ansätze.

Interessent:
zunehmend beunruhigt Aber es ist doch auch eine In-Memory Datenbank? Genau wie EXASOL!

Ich:
Nun, es gibt in der Tat ein Datenbankmodul namens Spark SQL, welches auf der Standard Spark Plattform läuft.

Interessent:
(fast panisch) Wie können Sie dabei so ruhig bleiben!? Wer wird noch EXASOL kaufen wenn es mit Spark eine kostenlose In-Memory-Datenbank gibt? Niemand!

Ich:
(beruhigend) Bitte atmen Sie nun wieder langsam und gleichmäßig und setzen sich ;-) Lassen Sie uns einfach gemeinsam einen Blick auf die Fakten werfen:

 Analytische Datenbank EXASOLApache Spark
Was ist es?Die Lösung wurde von Grund auf als analytische In-Memory Datenbank für Big Data entwickelt.Spark wurde als Plattform konzipiert, für vielfältige Einsatzmöglichkeiten in der Verarbeitung von Big Data.
Worauf basiert die Technologie?EXASOL ist in C++ geschrieben und stützt sich auf Algorithmen die gleichzeitig niedrige Latenz und hohe Performance sicherstellen sowie auf spezialisierte Subsysteme.Spark und Spark SQL sind auf JVM Basis geschrieben (um genau zu sein in Scala). Scala ermöglicht zwar schnelle Entwicklungszyklen, eignet sich aber nicht unbedingt für Anwendungen in Echtzeit.
OptimierungOptimiert für schnelle Abfragen, hohen Datendurchsatz, sowie parallel VerarbeitungDa Spark SQL mit Spark auf einer GPP basiert, kann die Lösung nur eingeschränkt zu Datenbankenzwecken optimiert werden.
PerformanceSchnellste relationale Datenbank auf dem Markt (1)Ziemlich schnell, aber nicht die schnellste Datenbank auf Hadoop (2) und ein vielfaches langsamer als EXASOL.
MarktreifeIn 2000 gegründet. Erster Kunde 2006 produktiv. Eine Vielzahl an Kunden setzt die Lösung zur Analyse geschäftskritische Bereiche ein.Entwicklung begann 2013. Erste Version wurde in 2014 veröffentlicht.
BenutzerfreundlichkeitEinfach zu installieren und zu verwalten. Schwerpunkt liegt auf auf niedriger TCO.Äußerst technisch und als Share-Plattform konzipiert – daher ist gewissenhaftes Ressourcenmanagement ein Muss.
Nutzen für UnternehmenUmfangreiche Backupmöglichkeiten, Fernwartungsinterfaces, externe Datenbankreplikation und viele weitere Enterprise-Features. Über 100 Kunden setzten bei ihren Analysen bereits auf EXASOL.Keine auf Geschäftskunden zugeschnittenen Features vorhanden.

(1) Basierend auf TPC-H Ergebnissen: www.exasol.com/en/in-memory-database/tpc-h/
(2) https://blog.cloudera.com/blog/2016/02/new-sql-benchmarks-apache-impala-incubating-2-3-uniquely-delivers-analytic-database-performance/

Interessent:
OK, also ist Spark keine echte Alternative zu EXASOL, wenn es um maximale Abfragegeschwindigkeit geht oder wenn die Lösung in unternehmenskritischen Bereichen eingesetzt werden soll? Wieso macht sie Spark dann nervös?

Ich:
Ich hab niemals behauptet, dass wir uns ernsthaft Sorgen machen. Denn wir wissen, dass EXASOL viel besser geeignet ist als Spark für Datenanalysen bei großen, komplexen Datenmengen. Punkt.

Interessent:
OK, aber denken Sie, dass sich Spark für die Datenverarbeitung gut eignet?

Ich:
Ja definitiv. Spark hat das schwerfällige MapReduce Konzept von Hadoop in eine Form transformiert, die viel besser in das Internetzeitalter mit seinen kurzen Entwicklungszyklen passt. Für „Data Streaming“ und polystrukturierte Daten ist es eine hervorragende Lösung.

Interessent:
Habe ich nun aber nicht zwei Lösungen, die voneinander isoliert sind? EXASOL als hoch performante relationale Datenbank im Backend für unternehmenskritische Anwendungen und Spark für meine Datenverarbeitung?

Ich:
Nein, denn die beiden Technologien lassen sich leicht gemeinsam nutzen. Sehen wir uns diese Grafik an:

Ich:
Wir integrieren Spark und Hadoop auf verschiedenen Ebenen.

  1. Beim Datenimport – üblicherweise werden zuerst Rohdatenbestände analysiert in Spark/Hadoop, die in verschiedenen Formaten vorhanden sind. Anschließend müssen die Daten für interaktive Analyse oder für ein weiteres Verarbeiten zur Verfügung stehen. Dafür importieren sie einfach parallel die Daten in EXASOL (mehrere GB pro Sekunde) vom HDFS mithilfe unseres parallelen Importer oder importieren Sie diese direkt aus Hive, Impala, Spark SQL via JDBC.
  2. Sie möchten Ihre Daten nicht replizieren? Sie wollen Zugriff auf genau die Daten haben, die ihre Spark-Plattform gerade vor einigen Sekunden generiert hat? Hier kommt unser Datenvirtualisierungs-Framework zum Einsatz. Verbinden Sie einfach Spark SQL mit EXASOL durch ein „virtuelles Schema“ und die Spark SQL Schemas sind sofort in EXASOL sichtbar.

Aus Kundensicht ist es völlig transparent, ob die Daten in EXASOL oder extern in Spark gespeichert sind. Der Kunde sieht alles als eine einzige Datenquelle, nämlich als EXASOL. Sobald man auf ein virtuell verbundenes Schema zugreift, wird die Abfrage auf Spark SQL weitergeleitet, dann die (Unter)Abfrage ausgeführt und anschließend das Ergebnis an EXASOL gesendet. Und wenn Sie noch schnelleren Zugriff auf ihre Daten möchten? Kein Problem: Materialisieren Sie einfach die Daten, die Sie aus der Spark SQL Abfrage erhalten in EXASOL und nutzen Sie die blitzschnelle In-Memory Analyse in der EXASOL Datenbank.

Haben Sie alles Verstanden?

Interessent:
Ja, besten Dank.

Weitere Informationen und eine kostenlose Testversion finden Sie unter www.exasol.com/download-exasol

Whitepaper: „Apache Spark and EXASOL“

Dieses Whitepaper diskutiert den Nutzen von Apache Spark und Spark SQL und erläutert darüber hinaus die Vor- und Nachteile.

play_arrow Jetzt herunterladen

Abonnieren Sie unser Blog