© ProStockStudio/Shutterstock.com
Stapelverarbeitung mit den Vorzügen von Streamingtechnologien

Batch-Processing mit Apache Kafka


Stapelverarbeitung wird nicht von heute auf morgen aus Unternehmen verschwinden. Wie Sie mit Apache Kafka dennoch alle Vorzüge von Data Streaming nutzen und mit Stapelverarbeitung kombinieren können, lesen Sie in diesem Artikel.

Data Streaming ist in aller Munde. Wenn Sie davon noch nichts gehört haben und in einem datengetriebenen Unternehmen arbeiten, wozu heute fast alle modernen Unternehmen zählen, wird es höchste Zeit, sich mit den zahlreichen Streamingtechnologien und deren Vorzügen zu beschäftigen. Daten sind das neue Öl, und je früher Daten für Analysen vorliegen, desto besser kann Ihr Unternehmen reagieren. Auch technisch bietet Data Streaming einige Vorteile. Darunter beispielsweise die vollständige Entkopplung der Systeme, den Datenproduzenten und Datenkonsumenten, die einfache Möglichkeit, weitere Systeme an einen bestehenden Datenfluss anzuschließen und die sich daraus ergebende höhere Skalierbarkeit und Ausfallsicherheit.

Apache Kafka ist einer der bekanntesten Vertreter von Streamingtechnologien und erlebt einen enormen Aufwärtstrend. Das Unternehmen hinter Apache Kafka, Confluent Inc., verzeichnete ein erhebliches Wachstum von bis zu 450 Prozent mehrere Jahre in Folge und wird mittlerweile mit 5 B $ bewertet [1].

Nun lassen sich bestehende Unternehmen nicht von heute auf morgen zu datengetriebenen Echtzeitunternehmen umwandeln. Ganze fachliche Prozesse müssen neu gedacht und die nächtliche Stapelverarbeitung muss Stück für Stück vollständig ersetzt werden. Überflüssig zu erwähnen, dass dies ein hochgradig komplexes Unterfangen ist, da an diese Prozesse meist unzählige Systeme gekoppelt sind, die ihrerseits wiederum für Stapelverarbeitung konzipiert wurden. Die fachlichen Prozesse umzustellen ist allerdings nicht weniger komplex und erfordert ein motiviertes und unermüdliches Change Management. Darüber hinaus gibt es auch natürliche fachliche Vorgänge, die in der echten Welt als Stapelverarbeitung laufen, zum Beispiel der Börsenschluss. Was auch immer für Ihr Unternehmen zutrifft: Stapelverarbeitung wird nicht von heute auf morgen verschwinden.

Bevor wir beginnen, möchte ich erwähnen, dass es sich lohnt, auch andere Streamingtechnologien wie beispielsweise Apache Pulsar oder Amazon Kinesis Data Streams anzuschauen. Alle in diesem Artikel besprochenen Ansätze lassen sich mit kleinen Anpassungen leicht übertragen.

Der Unterschied zwischen Batches und Streams

Der Übergang von Stapelverarbeitung zu Data Streaming ist auf den ersten Blick trivial: Batches bestehen aus einzelnen Datensätzen und Data Streaming handelt vom Streaming eben einzelner Datensätze. Die Schwierigkeit liegt darin, dass Data Streaming von einem endlosen Datenstrom ausgeht und ein Wert in der Regel aus den einzelnen Datensätzen geschaffen wird. Dahingegen entsteht bei der Stapelverarbeitung der Wert erst nach vollständiger Prozessierung aller zusammenhängender Daten.

Der darauf basierende fachliche Prozess ist darauf angewiesen, dass die zusammengehörigen Datensätze als Ganzes zur Verfügung stehen, die Vollständigkeit der Datensätze ist also von besonderer Bedeutung und ein grundlegendes Kriterium. Weitere Kriterien können beispielsweise die Beachtung der Reihenfolge der Datensätze und die Vermeidung von Dubletten sein. Weiterhin ist es häufig wünschenswert, dass ein Batch nur ein einziges Mal verarbeitet wird. Um diese Anforderungen zu erfüllen, kann man sich geschickt einige Eigenschaften von Apache Kafka zu Nutze machen.

Das Funktionsprinzip von Apache Kafka

Beginnen wir mit den Topics – so werden die einzelnen Datentöpfe in Apache Kafka bezeichnet. Topics werden wiederum in Partitionen unterteilt, die die eigentlichen Daten beinhalten. Die Anzahl der Partitionen bestimmt die Anzahl der parallel verarbeitbaren Datenströme. Apache Kafka weist einkommenden Daten anhand einer konfigurierbaren Strategie eine dieser Partitionen zu. Die Zuweisung erfolgt bei standardmäßiger Konfiguration über den Schlüssel des Datensatzes.

Die Anzahl der Partitionen lässt sich frei definieren. Über Partitionen lassen sich mehrere gleiche Konsumenten (d. h. Konsumenten einer Konsumentengruppe) an ein Topic anbinden und somit die Datenverarbeitung stark parallelisieren: Datensätze mit dem gleichen Schlüssel werden immer an denselben Konsumenten weitergeleitet, der auf Basis des Schlüssels ähnliche Datensätze bereits vorher prozessiert hat.

Hierbei gilt es aber, achtsa...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang