Vorwort
Eine neue Kategorie von Softwaresystemen zu entwickeln, ist der Traum vieler Softwareentwickler/innen. Ich schätze mich sehr glücklich, dass ich schon früh an ksqlDB arbeiten durfte, noch bevor es ksqlDB hieß und bevor die Kategorie der Streaming-Datenbanken allgemein bekannt war. Als ich zum ersten Mal hörte, dass Ralph und Hubert ein Buch über Streaming-Datenbanken schreiben wollten, war ich natürlich sofort interessiert.
Was ist also eine Streaming-Datenbank? Es gibt viele verschiedene Arten von Datenbanksystemen, von traditionellen relationalen Datenbanken bis hin zu XML-, Graph-, Objekt-, Vektor- und NoSQL-Datenbanken. Viele von ihnen sind gut bekannt und seit Jahrzehnten etabliert. Streaming oder Stream-Processing ist weit weniger bekannt, obwohl es in den letzten zehn Jahren in der Branche eine hohe Akzeptanz erfahren hat, vor allem durch den Aufstieg von Apache Kafka als de facto Streaming-Plattform.
In der Vergangenheit galt die Datenstromverarbeitung als schwierig, und nur größere Unternehmen mit speziellen Teams von Streaming-Experten konnten sie beherrschen. Das Gleiche galt vor 50 Jahren für die Datenverarbeitung und das Computing, bevor SQL und relationale Datenbanksysteme erfunden wurden, um auch technisch nicht versierten Benutzern die Arbeit mit den in Computersystemen gespeicherten Daten zu ermöglichen. Heute ist SQL die lingua franca der Datenverarbeitung.
Streaming-Datenbanken sind der nächste Schritt in der Entwicklung der Stream-Verarbeitung. Sie vereinen bewährte Techniken aus Datenbanksystemen mit den neuen Paradigmen aus der Streaming-Welt, um die Stream-Verarbeitung zu vereinfachen und es technisch nicht versierten Nutzern zu ermöglichen, mit Daten in Bewegung zu arbeiten, ähnlich wie wir es gewohnt sind, wenn wir Daten im Ruhezustand abfragen.
Datenbanksysteme sind darauf ausgelegt, bestimmte Probleme zu lösen. Die beiden Hauptkategorien von Datenbanksystemen, Online Transaction Processing (OLTP) und Online Analytical Processing (OLAP), wurden ursprünglich nicht für Anwendungen im Internet konzipiert.
Mit dem Aufkommen von "Big Data" zu Beginn des dritten Jahrtausends wurden neue Systeme wie MapReduce erfunden, um die gestiegenen Skalierungsanforderungen zu erfüllen. Diese neuen Systeme wurden jedoch von technischen Experten für technische Experten entwickelt und haben uns von der Vertrautheit mit SQL weggeführt.
Mit der Erfindung von Data Lakes, dem ersten Kind der "Big Data"-Ära, wurde schnell klar, dass SQL benötigt wurde, damit auch nicht-technische Benutzer das Beste aus diesen neuen Technologien machen können. Daher wurde SQL wieder eingeführt, und heute nutzen alle modernen Data Lakes SQL zur Abfrage der gespeicherten Daten.
Daten-Streaming, das zweite Kind der "Big Data"-Ära, folgte demselben Trend: Zunächst wurden Stream-Processing-Systeme von Experten für Experten gebaut, ohne die Unterstützung von SQL. Es dauerte nicht lange, bis SQL und Datenbanktechnologien eingeführt wurden, damit auch nicht-technische Benutzer diese neuen Streaming-Systeme nutzen konnten. Diese Entwicklung führte zu Streaming-Datenbanken und den darauf folgenden Innovationswellen.
Da immer mehr Menschen die Bedeutung von Streaming-Datenbanken in der Welt der Stream-Processing- und Datenbanktechnologie erkennen, brauchen sie eine Anleitung, wie sie diese mit ihren bestehenden Systemen nutzen können. Stream Processing, wie es in diesem Buch heißt, fügt eine neue Ebene zwischen der operativen Ebene (OLTP) und der analytischen Ebene (OLAP) hinzu. Die Streaming-Ebene eröffnet ein weites Feld an Möglichkeiten für die Zukunft von Datensystemen.
In diesem Buch diskutieren Hubert und Ralph die drei verschiedenen Ausgangspunkte für Streaming-Datenbanken:
-
Stream-Processing-Systeme, die Datenbanktechnologien und SQL einsetzen
-
Datenbanksysteme, die um Streaming-Konzepte erweitert werden
-
Data Lakes (die bereits SQL einsetzen), die um Streaming-Funktionen erweitert werden
Diese drei haben zu einer Vielzahl verschiedener Streaming-Datenbanken geführt, die jeweils ihre eigenen Einschränkungen haben und für unterschiedliche Anwendungsfälle optimiert sind. Das wirft die Frage auf: Welches System sollten wir für welchen Anwendungsfall verwenden und was sind die Kompromisse?
Gemäß der Vorhersage von Jay Kreps, dass "Unternehmen zu Software werden", haben wir eine aufregende Zukunft in der Datenverarbeitung vor uns, in deren Mittelpunkt Streaming-Datenbanken stehen. Die Vereinfachungen, die Streaming-Datenbanken und Streaming-SQL bieten, ermöglichen es viel mehr technisch nicht versierten Nutzern, die Stream-Verarbeitung zu übernehmen, was den Weg dafür ebnen wird, dass Streaming allgegenwärtig wird.
Wir stehen noch ganz am Anfang der Ära der Streaming-Datenbanken und es ist spannend, die aktuellen Trends zu beobachten und neu entwickelte Systeme zu entdecken.
Dieses Buch ist ein hervorragender Einstieg, um all diese bahnbrechenden Innovationen und den Zoo an Möglichkeiten kennenzulernen, der typisch für die Anfänge einer neuen Ära ist. Wenn du noch mehr über Streaming-Datenbanken erfahren willst, hör dir den Podcast von Hubert und Ralph auf Spotify an, der einfach "Huberts Podcast" heißt. In Vorbereitung auf dieses Buch haben sie viele verschiedene Leute aus dem Bereich Streaming und Daten interviewt, und das ist schon ein Juwel für sich.
Get Streaming-Datenbanken now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.