Abo
  • Services:

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. Marienhaus Dienstleistungen GmbH, Saarlouis, Losheim am See
  2. über duerenhoff GmbH, Raum Augsburg

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. für 99€ auf otto.de
  2. 88,99€ (Bestpreis!)
  3. 56,99€ (Top-Produkt PCGH 12/2017)
  4. 65,99€ + Versand oder Marktabholung

FlashBFE 20. Feb 2019 / Themenstart

Ebenso, +1

FlashBFE 20. Feb 2019 / Themenstart

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

lennartgrosser1... 06. Feb 2019 / Themenstart

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

DummyAccount 05. Feb 2019 / Themenstart

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

Kommentieren


Folgen Sie uns
       


Xiaomi Mi 9 - Hands on (MWC 2019)

Xiaomi bringt das Mi 9 nach Europa. Der Europastart wurde auf dem Mobile World Congress 2019 in Barcelona verkündet. Das Topsmartphone hat eine Triple-Kamera mit bis zu 48 Megapixeln. Es liefert für einen Preis ab 450 Euro eine sehr gute technische Ausstattung.

Xiaomi Mi 9 - Hands on (MWC 2019) Video aufrufen
Verschlüsselung: Die meisten Nutzer brauchen kein VPN
Verschlüsselung
Die meisten Nutzer brauchen kein VPN

VPN-Anbieter werben aggressiv und preisen ihre Produkte als Allheilmittel in Sachen Sicherheit an. Doch im modernen Internet nützen sie wenig und bringen oft sogar Gefahren mit sich.
Eine Analyse von Hanno Böck

  1. Security Wireguard-VPN für MacOS erschienen
  2. Security Wireguard-VPN für iOS verfügbar
  3. Outline Digitalocean und Alphabet-Tochter bieten individuelles VPN

Fido-Sticks im Test: Endlich schlechte Passwörter
Fido-Sticks im Test
Endlich schlechte Passwörter

Sicher mit nur einer PIN oder einem schlechten Passwort: Fido-Sticks sollen auf Tastendruck Zwei-Faktor-Authentifizierung oder passwortloses Anmelden ermöglichen. Golem.de hat getestet, ob sie halten, was sie versprechen.
Ein Test von Moritz Tremmel

  1. Datenschutz Facebook speicherte Millionen Passwörter im Klartext
  2. E-Mail-Marketing Datenbank mit 800 Millionen E-Mail-Adressen online
  3. Webauthn Standard für passwortloses Anmelden verabschiedet

FreeNAS und Windows 10: Der erste NAS-Selbstbau macht glücklich
FreeNAS und Windows 10
Der erste NAS-Selbstbau macht glücklich

Es ist gar nicht so schwer, wie es aussieht: Mit dem Betriebssystem FreeNAS, den richtigen Hardwarekomponenten und Tutorials baue ich mir zum ersten Mal ein NAS-System auf und lerne auf diesem Weg viel darüber - auch warum es Spaß macht, selbst zu bauen, statt fertig zu kaufen.
Ein Erfahrungsbericht von Oliver Nickel

  1. TS-332X Qnaps Budget-NAS mit drei M.2-Slots und 10-GBit-Ethernet

    •  /