Abo
  • IT-Karriere:

Die Verarbeitung unbeschränkter Mengen und die Kappa-Architektur

Dean Wampler vertritt in seinem Artikel Fast Data Architectures for Streaming Applications die Auffassung, die Datenverarbeitung müsse anders betrachtet werden und argumentiert wie folgt: "Wenn alles als Datenstrom betrachtet wird, entweder in Form einer beschränkten Menge (wie bei der Stapelverarbeitung) oder unbeschränkt, dann können Batch- und Speed-Layer nicht nur mit derselben Infrastruktur vereinheitlicht werden, sondern die Batch-Verarbeitung wird dann einfach zum Teil der Datenstrom-Verarbeitung."

Stellenmarkt
  1. Wilhelm Layher GmbH & Co. KG, Güglingen
  2. we.CONECT Global Leaders GmbH, Berlin-Kreuzberg,Berlin

Dadurch ist eine modifizierte Architektur namens Kappa entstanden. Sie ist nicht nur eine schnelle Datenarchitektur, sondern fokussiert auch eine neue Denkweise: Denn wenn alles ein Datenstrom ist, haben wir ein neues Paradigma. Und neue Paradigmen ziehen oft eigene Definitionen nach sich, auch hier.

Tyler Akidau, Softwareentwickler bei Google und eng an der Entwicklung der Streaming-Engine und des Streaming-Modells von Google beteiligt, hat sich für die Verwendung der Begriffe beschränkter (Bounded) und unbeschränkter (Unbounded) Datenmengen und Verarbeitung ausgesprochen, um die Begrifflichkeiten zu klären und den Begriff Streaming beziehungsweise Datenstrom zu ersetzen: "Unbounded Data: Eine stetig wachsende, im Grunde unendliche Datenmenge. Diese Datenmengen werden häufig als Datenströme bezeichnet. Die Begriffe 'Datenströme' oder 'Batch' sind jedoch problematisch, wenn es um Datenmengen geht, weil [..] sie implizit von der Verwendung einer bestimmten Art von Verarbeitung und Interpretation dieser Datenmengen ausgehen."

Der entscheidende Unterschied zwischen diesen beiden Arten von Datenmengen ist aber tatsächlich ihre (mathematische) Beschränktheit. Deshalb ist es sinnvoll, Begriffe zu verwenden, die diesen Unterschied auch einfangen. Im weiteren Artikelverlauf wird deswegen der Begriff Unbounded Data (englisch für Unbegrenzte Datenmenge) für unendliche Datenmengen beziehungsweise Datenströme verwendet. Der Begriff Bounded Data (Begrenzte Datenmenge) steht hingegen für endliche Datenmengen wie sie innerhalb von Stapelprozessen typisch sind.

Die englische Bezeichnung Unbounded Data processing beschreibt die kontinuierliche Datenverarbeitung eben solcher unbeschränkter Datenmengen. Die weniger sperrige Bezeichnung Streaming beziehungsweise Streamen, um eine solche Verarbeitung von Datenströmen vor allem im Englischen zu bezeichnen, ist zwar häufig praktisch, sie führt aber je nach Kontext zu Missverständnissen über die Art der Datenmengen und den Umgang mit ihnen. Im Deutschen zum Beispiel ist Streamen oft ein Synonym für das Senden und Empfangen von Video-Datenströmen. Im Englischen hingegen kann Streaming sowohl den Umfang der Datenmengen als auch deren Transport und die Verarbeitung durch Anwendungen bezeichnen.

Für die Verarbeitung von Unbounded Data wurden und werden häufig immer noch die verfügbaren und bekannten Konzepte zur Stapelverarbeitung und zum Batchbetrieb genutzt. Die genutzten Anwendungen werden dabei einfach immer wieder aufgerufen. Umgekehrt kann ein gut geplantes System für das Unbounded Data Processing eben mehr, als nur Batch-Jobs von Bounded Data abzuarbeiten.

Nachrichten-Queues

Wie das gehen kann, erklärt Dean Wampler ebenfalls: "Datenströme erreichen das System über Socket-Verbindungen von anderen Servern sowohl innerhalb der Arbeitsumgebung als auch von außerhalb, wie Telemetriedaten von IoT-Geräten, Feeds aus Sozialen Netzwerken wie zum Beispiel über Twitters Firehose-Dienst et cetera. Diese Datenströme werden in einen verteilten Kafka-Cluster eingespeist, um sie für eine bestimmte Zeitspanne skalierbar und robust zu speichern. Kafka ist das Rückgrat der Architektur".

Die Daten gelangen also über die Infrastruktur einer Nachrichten-Queue in die Verarbeitungspipeline. Die Queue dient als ein Eingangslager und Verteilzentrum für ein System des Unbounded Data Processing.

Was als nächstes passiert, ist kompliziert. Wampler hält die Lösung mit Kafka-Clustern dennoch für die derzeit beste: "Für die Stream-Verarbeitung mit geringen Latenzen ist es der robusteste Mechanismus, die Daten mit Hilfe von [Kafka] in die entsprechenden Verarbeitungsmechanismen einzuspeisen. Und derzeit buhlen eine ganze Reihe von entsprechenden Lösungen um Aufmerksamkeit."

Doch bevor wir auf diese Lösungen zu sprechen kommen, sollten wir noch einen kurzen Blick auf die Nachrichten-Queues werfen. Systeme wie Kafka sind nicht neu. Die IBM MQ Series und verschiedene Implementierungen der Java-JMS-Spezifikation, wie zum Beispiel Apache Camel oder RabbitMQ, existieren bereits seit längerem. Sie sind gut bekannt und wir können sie als die Vorläufer für das Unbounded Data Processing sehen.

Konzeptionell unterscheidet sich Kafka nicht großartig von ihnen. Der Unterschied ist laut Jay Kreps, einem der Kafka-Erschaffer, die Skalierbarkeit von Kafka: "Wir kommen mit Billiarden von Nachrichten zurecht. Zeitgemäße, cloudbasierte Systeme sind einfach besser darin, solche technischen Möglichkeiten existierten früher nicht. Wir profitieren davon, etwas später angefangen zu haben."

Aber Kafka ist nicht die einzige Möglichkeit. Wer bereits eine Nachrichten-Queue betreibt, kann auch diese eventuell als Eingangspunkt für eine Datenverarbeitungs-Pipeline nutzen. Wer cloudbasierte Anwendungen aufbaut, kann bei den großen Cloud-Anbietern auf deren Kafka-Alternativen zurückgreifen: AWS Kinesis, Azure Stream Analytics und Google Cloud Dataflow. Außerdem gibt es mit Apache Pulsar ein Open-Source-Projekt, das sich als Kafka-Alternative positioniert.

Ohne näher auf die einzelnen Lösungen der Cloud-Anbieter einzugehen oder einen detaillierten Vergleich mit Kafka anzustellen, müssen wir jedoch einen Punkt hervorheben, der für alle Lösungen von Cloud-Anbietern gilt: Werden bereits Cloud-Lösungen eines Anbieters genutzt, erfolgt die Einbindung der Nachrichten-Queue meist nahtlos. Aber diese strategische Entscheidung bedeutet auch, sich stark an einen Anbieter zu binden.

Als weiterer wichtiger Punkt ist zu nennen, dass die Grenzen zwischen Nachrichten-Queue und Streaming nicht ganz eindeutig sind. Nachrichten-Queues sind mehr ein Verkehrsleitsystem, das eingehende Daten verpackt und zu ihren Zielorten bringt. Je nach Lösung können sie die Daten auch verarbeiten und umwandeln.

Zum Beispiel kann Kafka nicht nur Analyseprozesse befüllen, sondern selbst als Basis für operative Anwendungen dienen. Es unterstützt eine Reihe von Verarbeitungsmechanismen und auch SQL für Datenabfragen. Damit können Entwickler per SQL-Abfrage gezielt relevante Datenmengen auswählen und damit weiter arbeiten. Es ist sogar möglich, Daten in Kafka dauerhaft zu speichern und es als Plattform für Microservices zu nutzen.

 Begriffe, Architekturen, Produkte: Große Datenmengen in Echtzeit analysierenStreaming-Systeme 
  1.  
  2. 1
  3. 2
  4. 3
  5.  


Anzeige
Top-Angebote
  1. 79,00€
  2. 999,00€ + Versand
  3. (u. a. GTA 5 12,49€, GTA Online Cash Card 1,79€)
  4. (aktuell u. a. Dell-Notebook 519€, Dell USB-DVD-Brenner 34,99€)

FlashBFE 20. Feb 2019

Ebenso, +1

FlashBFE 20. Feb 2019

Nein, ein Stapel ist eben keine Warteschlange. Das eine ist FILO, das andere FIFO. Und...

lennartgrosser1... 06. Feb 2019

Genau genommen ist Hadoop kein Data Warehouse, sondern ein Framework, welches verteiltes...

DummyAccount 05. Feb 2019

Spark ist übrigens in der Tat immer noch micro-batch orientiert. Flink dagegen bietet...


Folgen Sie uns
       


Teamfight Tactics - Trailer (Gameplay)

Die Helden kämpfen automatisch, trotzdem sind Dota Unerlords und League of Legends: TeamfightTactics richtig spannende Games - die Golem.de im Video ausprobiert hat.

Teamfight Tactics - Trailer (Gameplay) Video aufrufen
Mobilfunktarife fürs IoT: Die Dinge ins Internet bringen
Mobilfunktarife fürs IoT
Die Dinge ins Internet bringen

Kabellos per Mobilfunk bringt man smarte Geräte am leichtesten ins Internet der Dinge. Dafür haben deutsche Netzanbieter Angebote für Unternehmen wie auch für Privatkunden.
Von Jan Raehm

  1. Smart Lock Forscher hacken Türschlösser mit einfachen Mitteln
  2. Brickerbot 2.0 Neue Schadsoftware möchte IoT-Geräte zerstören
  3. Abus-Alarmanlage RFID-Schlüssel lassen sich klonen

Ryzen 3900X/3700X im Test: AMDs 7-nm-CPUs lassen Intel hinter sich
Ryzen 3900X/3700X im Test
AMDs 7-nm-CPUs lassen Intel hinter sich

Das beste Prozessor-Design seit dem Athlon 64: Mit den Ryzen 3000 alias Matisse bringt AMD sehr leistungsstarke und Energie-effiziente CPUs zu niedrigen Preisen in den Handel. Obendrein laufen die auch auf zwei Jahre alten sowie günstigen Platinen mit schnellem DDR4-Speicher.
Ein Test von Marc Sauter

  1. Ryzen 3000 BIOS-Updates schalten PCIe Gen4 für ältere Boards frei
  2. Mehr Performance Windows 10 v1903 hat besseren Ryzen-Scheduler
  3. Picasso für Sockel AM4 AMD verlötet Ryzen 3400G für flottere iGPU

Google Maps in Berlin: Wenn aus Aussetzfahrten eine neue U-Bahn-Linie wird
Google Maps in Berlin
Wenn aus Aussetzfahrten eine neue U-Bahn-Linie wird

Kartendienste sind für Touristen wie auch Ortskundige längst eine willkommene Hilfe. Doch manchmal gibt es größere Fehler. In Berlin werden beispielsweise einige Kleinprofil-Linien falsch gerendert. Dabei werden betriebliche Besonderheiten dargestellt.
Von Andreas Sebayang

  1. Google Maps zeigt Bikesharing in Berlin, Hamburg, Wien und Zürich
  2. Kartendienst Qwant startet Tracking-freie Alternative zu Google Maps
  3. Nahverkehr Google verbessert Öffi-Navigation in Maps

    •  /