Data Warehousing im Wandel

Shownotes

Warum brauchen Unternehmen immer noch Data Warehouses? Wie haben sich diese Systeme seit den 50er Jahren entwickelt? Und welche Rolle spielen moderne Cloud-Technologien und Künstliche Intelligenz in der Zukunft der Datenverarbeitung?

Zusammen mit Data Expert Marvin Klossek klärt Wolfgang Schoch die wichtigsten Begriffe, diskutiert aktuelle Trends und wirft einen Blick auf die Herausforderungen von Online Transaction Processing (OLTP) und Online Analytical Processing (OLAP).

Für diese Folge von Digital Future gibt es ein vollständiges Transkript. Dieses Transkript wurde automatisiert erzeugt und nicht nachbearbeitet oder korrekturgelesen. Es wird daher sicher Fehler enthalten. Das Transkript ist als Ergänzung zu verstehen, um beispielsweise die Inhalte durchsuchbar zu machen. Im Zweifel gilt immer das gesprochene Wort aus der Folge.

Dieser Podcast lebt von deinem Feedback! Melde dich gerne über die verlinkten sozialen Medien oder direkt per Mail an podcast@inovex.de.

Wenn dir der Podcast gefallen hat, abonniere ihn und erzähl deinen Freunden davon! Außerdem freuen wir uns über deine Text- und/oder Sternebewertung bei Apple Podcasts.

Instagram: https://www.instagram.com/inovexlife/ www.inovex.de www.inovex.de/blogEinführung in Data Warehousing was ist Data Warehousing ist und warum es für Unternehmen immer noch von großer Bedeutung Historischer Kontext: Von den Anfängen relationaler Datenbanken in den 50er Jahren bis hin zu den heutigen Technologien Technische Herausforderungen: Die Unterschiede zwischen OLTP (Online Transaction Processing) und OLAP (Online Analytical Processing) und die Notwendigkeit, diese zu trennen. Diskussion über aktuelle Trends, wie Cloud-Lösungen und Open-Source-Alternativen. Mögliche Entwicklungen im Bereich Data Warehousing, insbesondere die Integration von Künstlicher Intelligenz zur Optimierung von Datenabfragen und -prozessen.

Transkript anzeigen

Voiceover: Hallo und herzlich willkommen bei Digital Future, dem Podcast zu Technologie

Voiceover: und Unternehmenskultur.

Voiceover: Mein Name ist Wolfgang Schoch und ich bin Agile Coach bei Inovex.

Voiceover: Ich habe aber auch schon ein paar andere Sachen gemacht und so die IT-Branche

Voiceover: aus verschiedenen Blickwinkeln kennengelernt.

Voiceover: Zum Beispiel als Softwareentwickler, als Experte für Suchtechnologie oder im Vertrieb.

Voiceover: Ich freue mich, euch in jeder Folge des Podcasts eine Kollegin oder einen Kollegen

Voiceover: vorzustellen und mich mit ihr oder ihm über das jeweilige Fachgebiet zu unterhalten.

Voiceover: So bekommt ihr einen Einblick in unseren technologischen und unternehmenskulturellen Alltag.

Voiceover: In der heutigen Folge spreche ich mit meinem Kollegen Marvin Klosek.

Voiceover: Marvin arbeitet als Data Engineer bei uns und er beschäftigt sich sehr viel mit Data Warehouses.

Voiceover: Und genau darüber haben wir uns unterhalten. Wir sprachen über die Historie

Voiceover: und vor allem aber auch über die heutige Bedeutung von Data Warehouse Plattform.

Voiceover: Und natürlich haben wir auch einen Blick in die Zukunft gewagt.

Voiceover: Und jetzt wünsche ich euch viel Spaß beim Zuhören.

Wolfgang: Hallo Marvin, schön, dass du heute da bist und ich freue mich auf unser Thema,

Wolfgang: denn ich glaube, ich kann heute eine ganze Menge dazulernen und ich glaube,

Wolfgang: ich kann auch einiges von meinem, naja, vielleicht ein bisschen veralteten Wissen

Wolfgang: heute einfach mal so auf einen neuen Stand bringen.

Wolfgang: Aber Marvin, bevor wir anfangen, über ein cooles, spannendes,

Wolfgang: technisches Thema zu sprechen, würde ich dich bitten, dich einfach mal kurz

Wolfgang: vorzustellen. Wer bist du?

Wolfgang: Was machst du bei uns so den ganzen lieben langen Tag? Und ja,

Wolfgang: wie lange bist du denn schon bei InnoVax?

Gast: Ja, da war er. Und vielen Dank nochmal für die Einladung. Freut mich mega, hier zu sein heute.

Gast: Genau. Hallo, liebe Zuhörer. Ich bin der Marvin. Bin jetzt seit fünf Jahren

Gast: bei InnoVax. Arbeite hier als Data Engineer.

Gast: Und beschäftige mich hauptsächlich mit ETL-Prozessen und, sagen wir mal,

Gast: Infrastruktur und, ja, Data Management, Schrägstrich, Data Integration.

Gast: In diesem Themenkomplex beschäftige ich mich halt auch gerade häufig mit Data

Gast: Warehousing, Data Warehouse Prozessen und dem Bereitstellen und Entwerfen von

Gast: Data Warehouses und da würde ich dann heute gerne mal mit dir quatschen.

Wolfgang: Ja, auf jeden Fall. Wir sollten das mal in aller Tiefe machen.

Wolfgang: Data Warehouses, das ist so ein Begriff, ich glaube, den kennt man wahrscheinlich,

Wolfgang: wenn man sich so in dem Datenthema so ein bisschen bewegt.

Wolfgang: Das ist auch ein Begriff, den es schon relativ lange gibt und ich fände es ganz

Wolfgang: gut, wenn wir mal eine kleine Zeitreise machen und uns vielleicht mal so ein

Wolfgang: bisschen die Historie anschauen, einfach um zu verstehen,

Wolfgang: woher kommt das eigentlich, was steckt dahinter und warum ist das heute immer

Wolfgang: noch ein wichtiges Thema.

Wolfgang: Achtung, kleiner Spoiler, es ist immer noch ein wichtiges Thema.

Gast: Genau. Da kann ich zurückgehen, naja, erstmal bis in die frühen 50er und die

Gast: Entwicklung bis in die 70er.

Gast: Erstmal generell zum Entstehen von Datenbanken, so wie wir sie heute kennen,

Gast: insbesondere relationellen Datenbanken.

Gast: Ich hatte früher angefangen mit den Fallsystem-basierten Datenbanken.

Gast: Daraus hat sich dann irgendwann bei IBM die DB2 entwickelt, so wie wir sie kennen,

Gast: mit eben relationalem SQL, mit Beziehungen zwischen Tabellen und eben auch der

Gast: ganzen Mathematik, die sich darum herum entwickelt hat in Richtung Normalform etc.

Gast: Und so hat man dann quasi seine ersten Online-Systeme hochgezogen.

Gast: Wir hatten unsere Business-Prozesse abgebildet und wir hatten jetzt Datenbanken,

Gast: die konnten Crowd-Operationen gut ausführen, konnten wir Daten ablegen,

Gast: sicherspeichern in unseren Anwendungen.

Gast: Was man aber schnell gemerkt hat natürlich auch ist, wenn man jetzt die Daten

Gast: aber da drin hat, hat man einen riesigen Schatz von Sachen, die man da abgelegt hat.

Gast: Und wenn man da eine ganze Menge Daten hat, kann man daraus bestimmt noch gewisse

Gast: Erkenntnisse ableiten.

Gast: Und insbesondere eine Art von Reporting, auch vielleicht ein höheres Management

Gast: machen und einfach mal, soll ich mal, Zusammenfassung von den Daten oder auch

Gast: gewisse Erkenntnisse daraus extrahieren.

Gast: Hat sich jetzt jedenfalls schnell herausgestellt, dass die Arten von Queries,

Gast: die man schreibt, um analytische Sachen herauszufinden, unterscheidet sich extrem

Gast: stark von den Arten von Queries, die man in so einem Online-System schreibt.

Gast: In so einem Online-System hast du halt häufig eben Crud-Queries,

Gast: Wares auf irgendwelche IDs, Zugriff auf einzelne Rows.

Gast: Während so eine analytische Query, die funktioniert häufig mit größeren Work-Clause

Gast: über verschiedene Spalten, gefolgt von einem Group-Bio, um irgendwelche Aerationen

Gast: auf irgendwelchen Metriken zu bilden.

Gast: Man hat dann gemerkt, dass das auf den...

Gast: SQL-Datenbanken, wie sie für die Online-Systeme existieren, insbesondere wenn

Gast: sie in dritter, vierter, fünfter Normalform sind,

Gast: dass das schwierig ist, dass man da viel zu viele Joins braucht,

Gast: dass die Queries alle ewig dauern, dass man auf den Entwicklern irgendwie so

Gast: ein bisschen dazwischen funkt, weil du hast jetzt plötzlich Queries,

Gast: die teilweise extrem lang laufen.

Gast: Gleichzeitig will aber dein Online-System schnelle Zugriffszeiten garantieren.

Gast: Du willst ja so ein Objekt und so eine Anlegen, du willst deine Transaktion

Gast: durchführen, das soll schnell gehen, damit die Datenbank wieder im konsistenten Zustand ist.

Gast: Kannst du nicht brauchen, dass dir da irgendeine Query, die einen halben CPU

Gast: blockiert für dein gesamtes Online-Warenkatalog-System oder was auch immer.

Gast: Also haben sie dann schlaue Köpfe gemerkt, dass es vielleicht eine gute Idee

Gast: ist, wenn wir die zwei Sachen einfach trennen.

Wolfgang: Vielleicht kann man an der Stelle mal ein kleines Beispiel einführen für alle,

Wolfgang: die nicht so super tief in der Materie stecken.

Wolfgang: Ich mag immer, wenn wir so Online-Business oder generell über das Business sprechen,

Wolfgang: ich mag immer das Beispiel vom Online-Shop.

Wolfgang: Also stell dir mal vor, also ich fahre gerne Fahrrad, ich habe einen großen

Wolfgang: Online-Shop, wo du Fahrräder kaufen kannst, Zubehör kaufen kannst.

Wolfgang: Dann wäre ja so das Online-Business so mein ganz normales Tagesgeschäft,

Wolfgang: oder? Das heißt, als Kunde gehe ich auf die Website wolfgangsfahrradparadies.de

Wolfgang: und muss mal schauen, ob es das noch gibt. Dann kann ich mir das mal für die

Wolfgang: Zukunft vielleicht auch sichern.

Wolfgang: Und ich kann mir irgendwelche Produktlisten anschauen. Ich kann Bestellungen durchführen.

Wolfgang: Ich kann vielleicht auch mich einloggen in meinen User-Bereich.

Wolfgang: Ich kann meine Bestellhistorie anschauen etc. pp.

Wolfgang: Und da habe ich schon so eine gewisse Art von Anfragen, die immer und immer wieder kommen.

Wolfgang: Also ich mache eine SQL-Anfrage, um mir von einer Kategorie alle Produkte anzuzeigen.

Wolfgang: Ich muss mir vielleicht aus einer anderen Datenbank aktuelle Preise ziehen.

Wolfgang: Ich muss mir vielleicht Bestellungen anschauen.

Wolfgang: Aber man kann sich, glaube ich, schon gut vorstellen, das sind alles schon so

Wolfgang: Anfragen, die irgendwie ähnlich sind.

Wolfgang: Also auch von der Menge, die ich zurückbekomme. und ich habe dann vielleicht

Wolfgang: auch keine Anfragen, die jetzt so superkomplex sind und über zwölf Tabellen

Wolfgang: gehen mit ganz komplexen Joints oder so.

Wolfgang: Das könnte man sich, glaube ich, so vorstellen, oder?

Gast: Stell dir vielleicht auch mal vor, der Online-Shop will jetzt eine neue Marketing-Kampagne

Gast: fahren und du wirst deshalb vielleicht wissen, welches Produkt hat sich nicht

Gast: so gut verkauft in letzter Zeit, welches hat sich gut verkauft und gerade bei welchen Leuten.

Gast: Das heißt, du hast jetzt plötzlich Abfragen, die sich über die Kategorie der

Gast: Bestellungen ziehen in Relation zu den Usern, in Relation zur Zeit,

Gast: aggregiert für verschiedene Produkte, um zu versuchen, daraus Erkenntnisse abzuleiten.

Gast: Das wird wahrscheinlich in deiner dritten Normalforms Datenbank für deinen Online-Shop

Gast: schwierig, möglich, aber irgendwie schwierig werden, weil du wahrscheinlich

Gast: irgendwie 32 Joints am Ende da hast.

Gast: Genau, deswegen wäre es ja vielleicht sinnvoller angenommen,

Gast: wenn wir vielleicht irgendwie die einzelne Transaktion in einer Art Fakten-Tabelle,

Gast: könnte man fast sagen, hätte und rundherum gewisse, sage ich mal,

Gast: kategorische Sachen, die diese als Dimension quasi beschreiben.

Gast: Und da kommen auch schon in die richtige Richtung. Denn die schlauen Menschen,

Gast: die sich dann überlegt haben, wie man das ändern kann, haben zwei Feststörungen

Gast: gemacht dann in den 90ern.

Gast: Ah, wir trennen das quasi in der zweiten Datenbank auf, wo wir erst mal sagen,

Gast: okay, wir batch kopieren die Daten von dem Online-System in ein anderes System.

Gast: Dann tun wir schon erst mal nicht mal den Betriebsfluss stören,

Gast: sondern wir könnten unsere langläufigen Queries auf der zweiten Datenbank machen.

Gast: Damit stören wir schon mal keinen mehr. Und dann wäre die zweite Idee,

Gast: kriegen wir die Laufzeiten dieser Queries irgendwie besser.

Gast: Und dann sind sie da richtig schnell drauf gekommen, ja, wenn wir das Datenschema

Gast: einfach anpassen und die Daten einmal transformieren, bevor wir sie quasi abfragen.

Gast: Also quasi die ersten Extract Transform Load Prozesse, die damals geschrieben wurden.

Gast: Und da ist dann der Rolf Kimber gekommen und der hat dann das Sternschema definiert.

Gast: Und das ist jetzt ein Schema, wo eben gewisse Sachen innerhalb unseres Unternehmens,

Gast: irgendwelche Arten von Business Strukturen, also solche Prozesse für Bestellungen,

Gast: Prozesse für irgendwie im HR Bereich oder so,

Gast: jede einzelne dieser Prozesskategorien kann man da in einem eigenen Schema abbilden. Das ist ein Stern.

Gast: In diesem befindet sich dann eine zentrale Fakten-Tabelle, die irgendwelche

Gast: Ereignisse in unserem Business beschreibt. Zum Beispiel, sagen wir mal, Bestellungen.

Gast: Irgendwelche Transaktionen sind da durchgeführt worden. Und um diese Bestellungen

Gast: rundherum hätten wir dann unsere Dimensionstabellen. Jetzt in unserem Beispiel eine Komponente.

Gast: Die Kategorie der Fahrräder, die Uhrzeit bzw.

Gast: Das Datum, welcher Kunde beteiligt war, die sind dann alle rundherum um diese

Gast: Faktentabellen in sogenannten Dimensionstabellen.

Gast: Wenn wir jetzt verschiedene Faktentabellen haben, zum Beispiel verschiedene

Gast: Prozesse, zum Beispiel Bestellungen beim Zulieferer versus Bestellungen beim

Gast: Kunden, könnten wir die quasi auch über gewisse Dimensionstabellen,

Gast: die sich teilen, zum Beispiel die Kategorie des Fahrrades, auch ineinander in Relation setzen.

Gast: Und so haben wir plötzlich anstatt vier, fünf Joints in eine stark denormalisierte

Gast: Tabelle Da haben wir plötzlich nur noch pro Fakten-Tabelle ein,

Gast: zwei Joints an die Dimensionen, die uns gerade interessieren.

Gast: Haben uns einen Haufen komplexer relationaler Abfragen gespart und können dadurch

Gast: viel bessere Queries schreiben und auch viel schneller Antworten geben.

Wolfgang: Ich optimiere also meine Datenbasis so, dass die von mir gewünschten Abfragen

Wolfgang: später einfach schneller durchführbar sind.

Gast: Genau, nicht nur die aktuell bekannten Abfragen, sondern es hat sich auch gestellt,

Gast: dass dieses Sternschema relativ robust ist und auch ad hoc Anfragen auch für

Gast: komplexere Analysen relativ gut sich durchführen lassen dann später.

Wolfgang: Das heißt, ich muss mir dann für mein Business überlegen, wie ich die Daten

Wolfgang: transformiere, was die relevanten Fakten für mich sind.

Wolfgang: Das sind in dem Beispiel diese Transaktionen zum Beispiel und die Bestellung,

Wolfgang: und ich überlege mir das,

Wolfgang: überlege mir dann auch, okay, was sind dann die relevanten Dimensionen,

Wolfgang: setze das alles in Relation zueinander und wenn ich später vielleicht noch andere

Wolfgang: Fakten dazu bekomme, was sich mein Business verändert oder ich vielleicht eine

Wolfgang: neue Idee habe für irgendwas,

Wolfgang: dann kann ich diese vorhandenen Dimensionstabellen ja einfach weiter nutzen.

Wolfgang: Die ändern sich ja nicht. Die Fahrräder bleiben die gleichen,

Wolfgang: die Kunden bleiben die gleichen.

Wolfgang: Aber ich habe jetzt halt vielleicht nicht Bestellungen, sondern ich habe zusätzlich

Wolfgang: noch irgendwie eine Wunschliste.

Wolfgang: Kann ja sein, da füge ich als neues Feature ein, wo ich mir Sachen auf eine

Wolfgang: Wunschliste packen kann oder eine Merkliste und das möchte ich vielleicht später

Wolfgang: auch analysieren für eine Marketingkampagne, dass ich weiß, okay,

Wolfgang: welches Fahrrad wird am häufigsten gewünscht?

Wolfgang: Dann mache ich da vielleicht eine Sonderaktion irgendwie.

Gast: Genau so, das ist eben ein iterativer Prozess, das hat Kimball damals auch schon

Gast: so beschrieben, du fängst an mit, du suchst dir deinen Prozess aus,

Gast: den du beschreiben willst,

Gast: überlegst dir, okay, was ist jetzt der Fakt, was ist mein Granule,

Gast: was ist die eine Aktion, die da häufig wieder und wieder passiert,

Gast: in dem Fall zum Beispiel irgendwie eben die Verkaufstransaktion,

Gast: dann überlegst du dir, was sind deine Dimensionen, was sind solche Dimensionen,

Gast: die ich schon habe, auf die ich mitzugreifen kann und so entwürfst du dann quasi pro,

Gast: sagen wir mal Business Kategorie oder Business,

Gast: Vorgang jeweils einen einzelnen Stern und diese Sterne zusammenbilden ein sogenanntes

Gast: Galaxy Schema mit geteiltem Dimensionen.

Gast: Und so baust du nach und nach, sag ich mal, in einem Bottom-up-Prozess dein Data Warehouse.

Gast: Auch von dieser Prozess hat sich jetzt relativ ziemlich gut etabliert über die

Gast: letzten, ja mittlerweile schon 40 Jahre fast.

Wolfgang: Spannend, oder? Dass man vor 40 Jahren so eine Idee hatte und die heute immer noch Bestand hat.

Gast: Na gut, also es geht ja dasselbe für Relationale SQL, das ist jetzt auch schon

Gast: 50, fast 60 Jahre alt und bis heute das Zentrum von allen unseren Datenbankprozessen.

Gast: Letzten Endes, abgesehen von den Noah's Gold Datenbanken, die sich hier und

Gast: da noch ein Nischendasein fristen.

Wolfgang: Es gab Zeiten, da dachte man, dass die MongoDB das nächste große Ding ist.

Gast: Ja, und dann hat die böse, böse Postgres plötzlich den JSON-Type eingeführt und alles war erledigt.

Wolfgang: Ja, zum Glück, ja.

Gast: Genau, und das ist der Prozess, so wie ihn Kimball beschreibt.

Gast: Ein paar Jahre später kam dann noch der Herr Immen dazu und hat,

Gast: sage ich mal, eine Art Top-Down-Perspektive auf das Ganze formuliert.

Gast: Weniger als Prozess, um einzelne Projekte durchzuführen, sondern mehr darauf

Gast: bedacht, okay, wie kriege ich das jetzt sauber in meinen Gesamtunternehmenskontext abgebildet?

Gast: Und er hat die Idee formuliert vom allgemeinen Data Warehouse für den gesamten

Gast: Betrieb, wo wirklich alle Daten aus allen meinen operativen Systemen reinlaufen,

Gast: wo ich dann quasi eine vorbereitete Schicht habe, auch über eine zeitliche Dimension

Gast: vor allem abgebildet, aus der ich dann quasi die einzelnen,

Gast: Sternschemas für die einzelnen Berichte oder Berichtskomplexe,

Gast: die ich haben will, häufig genannt Data Mart, relativ einfach konstruieren kann

Gast: und der Helmand hat auch so ein paar,

Gast: Eigenschaften von so einem Data Warehouse,

Gast: beschrieben dass es eben über eine zeitliche Dimension immer abbildbar sein muss,

Gast: Dass es eben die einzelnen Businesskomplexe beschreiben kann,

Gast: aber diese auch eben in Relation setzen muss und vor allem, dass es jede Form

Gast: von Fakt, die da drin ist,

Gast: immer irgendwie allgemein eindeutig identifizierbar ist über einen eindeutigen Surrogate Key.

Wolfgang: Und wenn wir jetzt über Data Warehouses sprechen, umfasst ein Data Warehouse

Wolfgang: dann so die Gesamtmenge aus erstmal natürlich der Technologie für die Datenbank,

Wolfgang: die ich habe, in der mein Sternschema und meine ganzen Daten drin liegen,

Wolfgang: plus die entsprechenden Transformations- und Ladeprozesse, wo ich quasi nutzen

Wolfgang: kann, um meine operativen Daten dann erstmal initial und dann wahrscheinlich

Wolfgang: batchmäßig so iterativ, vielleicht einmal pro Tag,

Wolfgang: darüber zu packen, dann ins Data Warehouse plus natürlich Möglichkeiten dann

Wolfgang: für Abfragen und Reporting.

Gast: Genau, du beschreibst, also Reporting vielleicht nicht, aber das Data Warehouse

Gast: ist immer der Gesamtprozess aus, wo liegen die Daten und wie kommen sie da rein.

Gast: Also sowohl den Ladeprozess als auch die eigentliche Datenbank,

Gast: die die Daten hält, das ist das Data

Gast: Warehouse und das wird durch den Data Warehouse-Prozess am Leben erhalten.

Gast: Und letztendlich, wie es jetzt effektiv beschrieben ist, wir haben am Ende eine

Gast: Datenbank, die ist subjektorientiert, Das heißt,

Gast: wir schauen uns nicht die Business-Prozesse an, so wie sie wirklich als Prozess

Gast: leben, so wie wir sie quasi in unserem Online-System haben, sondern wir gucken

Gast: uns an, okay, was sind jetzt unsere Bestellungen, was sind unsere Autos,

Gast: etc. bei PPM, die Subjekte, die wir haben wollen.

Gast: Es ist vollständig integriert, das heißt, alle Prozesse laufen irgendwie zusammen

Gast: und wir haben die Daten in einem einzigen Ding drin am Ende.

Gast: Es ist Zeitvariant, das heißt, zeitliche Veränderungen werden analysiert und

Gast: idealerweise haben wir eine sogenannte Append-Only-Datenbank.

Gast: Das heißt, irgendwelche Veränderungen, die wir machen, ersetzen nicht irgendwelche

Gast: Zeilen, so wie es quasi im Online-System sein würde, sondern wir behalten uns

Gast: die einzelnen Zwischenzustände, um, sage ich mal, auch rückwärtig Analysen,

Gast: ermöglichen zu haben über gewisse Änderungsprozesse. Und natürlich als allerwichtigstes,

Gast: die Daten müssen nicht volatil irgendwie gesichert sein, weil wenn wir so ein

Gast: Data Warehouse haben, dann wollen wir nicht, dass sich das irgendwann in der

Gast: Luft auflöst, sondern das muss besser ausfallsicher und gebackupt sein.

Wolfgang: Also dann habe ich direkt so zwei Gedanken, Marvin. Zum einen,

Wolfgang: wahrscheinlich verwundert es dann nicht, dass die großen Datenbankhersteller

Wolfgang: auch diejenigen waren, die dann sicherlich sehr schnell mit Data Warehouse Lösungen kamen.

Wolfgang: Ich selbst kenne die entsprechende Lösung von Microsoft, die ja mit dem Microsoft

Wolfgang: SQL Server damals groß waren, heute denke ich immer noch stark im Geschäft sind.

Wolfgang: Dann was hast du noch, Oracle natürlich, IBM hast du schon angesprochen.

Wolfgang: Also das ist ja das eine. Das zweite, was ich aber so im Kopf habe,

Wolfgang: ist, mit so einer Skalierung war es zumindest ja früher nicht so super einfach mit SQL-Datenbanken.

Wolfgang: Also wenn es jetzt um Performance ging, solche Master-Slave-Konstrukte,

Wolfgang: die gab es schon immer, da konnte man die Daten verteilen und dann entsprechend

Wolfgang: auch schnell lesen oder schreiben auch parallel.

Wolfgang: Aber das große Problem war doch oftmals, wenn die Datenmenge so groß ist,

Wolfgang: dass sie jetzt halt nicht mehr so gut auf den Server draufpasst.

Wolfgang: Das war ja immer schon ein bisschen schwierig. Ist es bei einer Data Warehouse

Wolfgang: Lösung einfacher, weil man es vielleicht irgendwie nach einer Zeit partitionieren

Wolfgang: kann, dass man sagen kann, okay, ich habe vielleicht pro, weiß nicht,

Wolfgang: Zeiteinheit pro Jahr oder so dann vielleicht früher einen Server genommen und

Wolfgang: habe dann entsprechend was gemergt, wenn ich was gesucht habe?

Gast: Ja, das war so eine der Varianten, die man früher gemacht hat.

Gast: Der war die ähnliche Variante, die man früher hauptsächlich getan hat.

Gast: Wir hatten halt einfach eine horizontale, eine vertikale Skalierung.

Gast: Unsere Server sind immer größer und größer geworden.

Gast: Unsere Euckel-Datenbank musste jedes Jahr aufs nächst höhere Lizenzschema geupdatet

Gast: werden, damit sie da nochmal das dritte Terabyte speichern kann.

Gast: SAP kam dann um die Ecke mit dem HANA-Ansatz, wo sie sich gedacht haben,

Gast: okay, wir nehmen einfach die gesamte Rational-Datenbank. Schieben sie einmal

Gast: den Hauptspeicher, das wird schnell genug sein.

Gast: Brauchst du als Server mit einem Terabyte Hauptspeicher. Ist jetzt auch nicht

Gast: die billigste Variante.

Wolfgang: Ja.

Gast: Genau, und so sind dann letzten Endes teilweise auch einige Sachen in ihre Grenzen gekommen.

Gast: Dann kamen in den frühen 2000ern bis in die 10er Jahre dann gleichzeitig die Big Data,

Gast: No-Schemer-Data, Sache nebenan auch, wo man gesagt hat, ja okay,

Gast: die Data Warehouses, die reichen nicht mehr,

Gast: wir haben jetzt ganz, ganz viele auch nicht strukturierte Daten oder einfach

Gast: zu viele Daten, da haben wir dann gesagt, okay, ziehen wir uns einfach nur einen

Gast: Cold-Storage-Layer hoch, packen dann einen Hadoop-Cluster, später einen Spark-Cluster

Gast: oben drüber und führen unsere Analysen darauf auf.

Gast: Das hat für einige, sag ich mal, Use Cases sehr gut funktioniert,

Gast: insbesondere eben für diejenigen, die halt nicht so in den klassischen Datenbank

Gast: passen, gerade Richtung irgendwie Textverarbeitung oder verarbeitet von massiven

Gast: JSON-Dokumenten, Logverarbeitung.

Wolfgang: Ja, gerade für Logverarbeitung. Gerade für Logverarbeitung, genau.

Gast: Hat sich hier doch schnell herausgestellt, dass man für tabellarische Daten

Gast: kann man das machen, hat man aber mit hohen Latenzen und irgendwie auch eigentlich

Gast: hohen Laufzeitkosten, gerade am Anfang gleich zu einer Datenbank zu kämpfen.

Gast: Also das ist deinerseits das Problem, deine Datenbanken sind nicht mehr groß

Gast: genug, andererseits das Problem, die anderen Systeme, die groß genug sind,

Gast: passen von der Kostenstruktur her nicht. Also stand man da so ein bisschen in so einer Brutfolie.

Gast: Und dann sind aber über die letzten,

Gast: Sagen wir mal zehn Jahre, sehr spannende Dinge passiert. Also insgesamt sind

Gast: sehr viele neue Hersteller und auch sehr viele neue Konzepte auf den Markt der

Gast: Data Warehouses gesprungen.

Gast: Also früher hat es ja eben die klassischen Hersteller gehabt mit Oracle,

Gast: Microsoft eben mit dem Analysis Services auf dem MS SQL.

Gast: Weil Oracle hat ja auch ganz viel die OLTP und OLAP-Paradigmen gepusht,

Gast: insbesondere der berühmte OLAP-Cube, damit man da seine Datenbank irgendwie

Gast: in einem speziellen, dimensionalen, proprietären Schema anlegen kann.

Wolfgang: Kannst du mal kurz erklären, was OLAP ist, für alle, die es nicht kennen?

Gast: Genau, also OLAP und OLTP sind erstmal, sag ich mal, nette Begriffe, um was einzuordnen.

Gast: OLTP steht für Online Transactional Processing. Das ist jetzt in unserem Fahrradhändler-Beispiel,

Gast: ist das unsere Postgres, die jetzt den Webshop am Laufen hält und unser OLTP,

Gast: OLAP ist unser Online Analytical Processing.

Gast: Das ist quasi unser Data Warehouse, wo wir unsere analytischen Queries darauf

Gast: abfragen und letzten Endes auch gucken können, okay, hier ist wie erwähnt unsere

Gast: getrennte Datenbank mit der Spezialsoftware, wo wir dann unsere Abfragen machen können.

Gast: Und so ein Urlaub-Cube, das hat man sich früher ausgedacht, eben um die großen

Gast: Datenmengen in den Griff zu kriegen, die mir nicht mehr so gut auf eine Datenbank

Gast: gepasst haben, hat man sich da verschiedene Strukturen, die nicht mehr wirklich

Gast: in so ein tabellares SQL-Modell passen,

Gast: ausgedacht, einfach um andere Arten von Datenbanken intern zu haben,

Gast: die besser auf die Datenmengen klarkommen.

Gast: Was aber in den letzten zehn Jahren passiert ist, wir haben eine in zwei Arten

Gast: große Entwicklung gesehen.

Gast: Einerseits horizontale Skalierung.

Gast: Das fing ja an hauptsächlich im Kubernetes-Kontext oder auch eben im Hadoop-Kontext,

Gast: wo wir gesagt haben, okay, anstatt, dass wir jetzt einen dicken Server nehmen,

Gast: in dem wir jedes Jahr einmal aufziehen.

Gast: Packen wir uns einen Haufen Commodity-Artware, schalten die zusammen und lösen

Gast: das Problem mit darüber, dass wir irgendwie die Prozesse darauf synchronisieren

Gast: müssen, irgendwie in Software. wäre.

Gast: Und dann können wir plötzlich, sage ich mal, ganz, ganz viele Rechner in die

Gast: Reihe schalten. Das hat sich relativ gut bewährt in dem ganzen Hadoop,

Gast: Spark, Kontext, auch auf Kubernetes hat es sich relativ gut bewährt.

Gast: Also kamen relativ schnell Leute

Gast: auf die Idee, okay, können wir so nicht vielleicht eine Datenbank bauen?

Gast: Müssen wir halt einmal Storage und Compute komplett trennen,

Gast: sagen, okay, wir haben unsere Storage-Lehrer und wir haben oben noch irgendwelche

Gast: Worker-Prozesse, die dann Abfragen machen.

Gast: Aber so kann man ja theoretisch plötzlich ad hoc mehr Leistung für Queries hinzubringen,

Gast: die halt höhere Leistung erfordern.

Wolfgang: Ja, das war ja das riesengroße Ding, als diese Big Data Bewegung, sag ich mal, aufkam.

Wolfgang: Das war ja auch jahrelang so ein krasses Buzzword. Ich weiß auch bei uns,

Wolfgang: wir haben damals auch viele Stellenanzeigen gehabt für Big Data Engineers und,

Wolfgang: ich glaube, das ist heute so ein Begriff, den man nicht mehr so findet irgendwo.

Wolfgang: Also heute ist dann, glaube ich, eher so Data Engineering oder Business Data Engineering.

Wolfgang: Aber so dieses klassische Big Data, das gibt es irgendwie als Begriff nicht

Wolfgang: mehr so, finde ich heute.

Gast: Hat sich halt rausgestellt, so big ist das Data dann doch nicht bei dem meisten Betrieb.

Gast: Deswegen haben wir dann alle mal die Jobtitel einmal auf LinkedIn geändert auf

Gast: Data Engineer. Ist aber dann keinem aufgefallen im Management, glücklicherweise.

Gast: Genau. Und die zweite Entwicklung, eigentlich eher die spannendere sogar,

Gast: ist eine neue Art von der Art und Weise, wie wir unsere Tabellen,

Gast: unsere Datenbanken intern orchestrieren.

Gast: Weil so eine klassische SQL-Datenbank, wie wir sie kennen, die ist ja RAW-oriented,

Gast: also wirklich zeilenbasiert.

Gast: Wenn sie irgendwie einen Seek macht auf eine einzelne Zeile,

Gast: dann löst sie mit der ID, dann schlappt sie sich immer die komplette Zeile.

Gast: Nur die Zeilen stehen nacheinander und im Speicher drin, um adressierbar zu

Gast: sein, was für CRUD-Prozesse super sind, weil meistens haben wir eine ID, die wir ranwollen.

Gast: Die finden wir in Log N, schnappen die uns, machen da unsere Updates etc. pp.

Wolfgang: Die gute binäre Suche halt.

Gast: Ja, genau. Problem ist aber, wenn wir jetzt analytische Abfragen haben,

Gast: haben wir meistens keine ID, an die wir ranwollen, sondern wir haben auf verschiedenen

Gast: Columns, haben wir verschiedene Bedingungen.

Gast: Das heißt, es wäre eigentlich viel nützlicher, wenn wir die Spalten adressieren

Gast: können, anstatt der einzelnen Zeilen.

Gast: Und eben genau das ist, was Staukipfen dann getan haben. Wir haben jetzt spaltenorientierte

Gast: Datenmodelle mit spaltenorientierten Datenmarken, wo nicht die einzelnen Werte

Gast: der einzelnen Zeilen aneinander der Hauptspeicher sind, sondern alle Spalten

Gast: nacheinander im Speicher abgelegt werden und adressierbar sind.

Gast: Und dadurch kann man verschiedene Dinge tun. Insbesondere man hat eben schnelleren

Gast: Zugriff auf Projektion, weil du kannst jetzt einzelne Spalten einzeln lesen.

Gast: Das heißt, wenn du ein Select machst, musst du jetzt nur noch die Spalten lesen,

Gast: die dich wirklich interessieren und nicht mehr alles von der Hauptplatte abholen.

Gast: Und du kannst Vektorisierung moderner CPUs besser verwenden.

Gast: Moderne CPUs können ja Single Instruction Multiple Data, das heißt,

Gast: wenn du eine Operation auf vielen Datenpunkten ausführen willst,

Gast: was du ja bei so, wenn du eine ganze Spalte auf einmal lesen kannst, genau tun kannst,

Gast: kannst du eben viel mehr Durchsatz aus modernen Prozessoren rausholen oder sogar

Gast: teilweise analytische Operationen auf Grafikkarten durchführen,

Gast: um noch viel mehr Durchsatz zu erzeugen.

Gast: Und es hat sich dann letztendlich herausgestellt, dass du über so eine Column-Oriented

Gast: Datenbank, du viel mehr analytische Leistung herausholen kannst,

Gast: vielleicht so eine Raw-Oriented Datenbank.

Gast: Und wenn du das dann noch kombinierst mit so einer Trennung von Storage und

Gast: Compute und eben auf spaltenorientierte Datenmodelle gleichzeitig mehrere Worker,

Gast: laufen das Ganze relativ komplexe analytische Queries mit dann doch recht einfacher

Gast: Commodity-Hardware in extrem hoher Geschwindigkeit abfragen.

Wolfgang: Dann lass mich das mal zusammenfassen. Das war jetzt eine ganze Menge.

Wolfgang: Also eine klassische Datenbank-Tabelle, nehmen wir mal an, die hat vielleicht zehn Spalten.

Wolfgang: Da habe ich einfach Reihe für Reihe oder Zeile für Zeile einfach nacheinander

Wolfgang: im Speicher und ich habe vielleicht einen Index drauf und kann dann halt auch

Wolfgang: relativ einfach ganz gezielt auf Zeile 3.150 zugreifen.

Wolfgang: Das ist easy und für viele Business-Anwendungen genau das, was ich möchte.

Wolfgang: Wenn ich jetzt aber nicht zeilen, sondern spaltenorientiert vorgehe,

Wolfgang: habe ich letztendlich ja genau das, was ich früher auch machen konnte,

Wolfgang: wenn ich einen Index auf eine Spalte angelegt habe, oder?

Wolfgang: Also einfach eine indizierte Spalte letztendlich oder wie man es auch vielleicht

Wolfgang: bei sowas wie Elasticsearch hat.

Wolfgang: Da habe ich ja auch quasi jeweils einen Index auf ein Attribut oder in dem Fall

Wolfgang: halt auf eine Spalte und kann jetzt, wenn ich irgendwelche Abfragen durchführe,

Wolfgang: in welchen Analysen durchführe, gezielt auf Werte dieser Spalte zugreifen.

Wolfgang: Ist diese Spalte durch die Indizierung dann, wenn man es vielleicht vereinfacht

Wolfgang: ausdrückt, auch sortiert?

Gast: Ja, sortiert kannst du sie vorher, wenn du sie indizierst, was du halt tust

Gast: bei einem Index. Auf der klassischen Datenbank ist, du führst eine zweite Speicherstruktur ein.

Gast: Die Funktionen, die ich indizierst nämlich so, dass du quasi die Werte innerhalb

Gast: dieser Spalte nochmal ablegst, meistens in einem binären Suchbaum,

Gast: damit die Datenbank dann relativ schnell darauf zugreifen kann.

Wolfgang: Okay, das heißt, wenn ich jetzt nach einem Wert Ausschau halte und der Wert

Wolfgang: ist jetzt, keine Ahnung, Wolfgang, dann habe ich eben halt diese zweite Datenstruktur,

Wolfgang: kann hier gezielt auf Wolfgang zugreifen und weiß dann, okay,

Wolfgang: referenziert es auf Eintrag XY zum Beispiel.

Gast: Genau.

Wolfgang: Und dadurch, dass ich jetzt, wenn ich jetzt von dieser Ursprungstabelle ausgehe,

Wolfgang: dann jetzt nicht eine Tabelle habe, wo ich zeilenorientiert darauf zugreifen

Wolfgang: kann, sondern vielleicht jetzt zehn Spalten habe, auf die ich auch einzeln zugreifen kann,

Wolfgang: kann ich diese zehn Spalten auch verteilen auf verschiedene physikalische Maschinen.

Gast: Genau, und wenn du die Spalten, sag ich mal, schlau ablegst und dir auch vielleicht

Gast: auf Metadaten gerade merkst, welcher Wert gerade vorne steht,

Gast: welcher Wert gerade hinten steht und das vielleicht auch noch irgendwo in der

Gast: Metadatentabelle ablegst, kannst du auch relativ schnell auch binäre Suchen auf sowas aufbauen, ne?

Wolfgang: Und dadurch habe ich jetzt eine Möglichkeit, A, das Ganze erstmal zu verteilen

Wolfgang: und so einfach eine Skalierung durchzuführen.

Wolfgang: Und ich kann gleichzeitig durch die Nutzung von mehreren CPUs bzw.

Wolfgang: Durch die Nutzung von mehreren gleichzeitigen Worker-Prozessen halt auch gleichzeitig

Wolfgang: darauf arbeiten und gleichzeitig irgendwelche Dinge analysieren.

Gast: Und jeder einzelne dieser Worker kann wiederum gleichzeitig auf mehreren Daten

Gast: arbeiten, weil es ja jetzt vektorisiert ausgeführt werden kann.

Gast: Das heißt, du gewinnst, sag ich mal, Orders of Magnitude und Performance auf dem ganzen Denken.

Wolfgang: Und das bedeutet, ich brauche nicht mehr den einen Supercomputer mit einem Terabyte

Wolfgang: RAM, der irgendwo im Keller steht und wahrscheinlich einen siebenstelligen Betrag

Wolfgang: kostet und vielleicht den ganzen Tag auch nicht ausgelastet ist, sondern nur ab und an,

Wolfgang: sondern ich habe ganz normale Hardware oder ich habe vielleicht gar keine Hardware.

Gast: Oder du bist vielleicht in der Cloud, genau.

Wolfgang: Oder ich bin vielleicht in der Cloud. Ja, sag mal Marvin, gibt es auch Warehouses

Wolfgang: in der Cloud? Gibt es sowas auch?

Gast: Ja, aber durchaus. Also jeder Cloud-Vendor hat so seine eigene.

Gast: Es gibt aber auch, sag ich mal, so generelle Platzwürfe, die sich da durchgesetzt

Gast: haben. Snowflake ist somit das größte Beispiel.

Gast: Ist ja auch seit 10, 15 Jahren, sind ja jetzt schon mittlerweile im Geschäft,

Gast: haben sich durchgesetzt.

Gast: Letzten Endes ist alles das, sag ich mal, Data Warehouse heutzutage.

Gast: Wenn du frisch anfängst, sagen wir mal kein Oracle mehr, sondern wenn ich sagen

Gast: will, du willst aus der Box was haben.

Gast: Du hast jetzt kein großes Team, um irgendwie Hosting von interessanteren Technologien

Gast: zu machen, auf die wir später kommen, dann spricht nichts dagegen.

Gast: Du holst dir in der Cloud deine Oracle, deinen Snowflake Compute und sorgst

Gast: letzten Endes dafür, dass die sich um alles kümmern, effektiv. Und genau.

Gast: Unter der Haube gehen die auch relativ schnell vor. Die haben eben auch Columnar Storage.

Gast: Die haben auch unten drunter, auch wenn sie nicht genau sagen,

Gast: wie sie es machen, das war das Geschäftsgeheimnis, weil es ja proprietäre Technologie

Gast: ist, aber die arbeiten auch mit verteilten Workern. Das ist alles sehr weit weg abstrahiert.

Wolfgang: Das heißt Snowflake beispielsweise ist so eine komplette Software-as-a-Service-Lösung.

Wolfgang: Die klicke ich mir im Internet, dann stöpsele ich da meine eigene Datenbank

Wolfgang: an, sodass die Daten dorthin exportiert werden können und dann kann ich mir

Wolfgang: auch über das Web wahrscheinlich Auswertung irgendwie zusammen konfigurieren

Wolfgang: und kann die dann nutzen.

Gast: Genau, für das Datentransportieren haben sie dann mittlerweile auch eigene Software-Suites,

Gast: Snowpipes nennen die das, und wirklich optimiert Daten aus zig verschiedenen

Gast: Quellen, von SAP bis Oracle bis Salesforce sind alles dran, Daten in deine Snowflake

Gast: reinzustreamen, auch in Echtzeit.

Gast: Das ist nämlich auch einer der großen Use-Cales heutzutage.

Gast: Wir wollen heutzutage nicht mehr irgendwie batchmäßig einen Tag warten,

Gast: sondern Sales will jetzt die Auswertung von gestern haben.

Gast: Und deswegen ist es heutzutage eher so, dass wir hauptsächlich über Change Data

Gast: Capture unsere Daten von unseren Online-Systemen direkt in unser Data Warehouse streamen können.

Gast: Und da ist es umso besser, wenn wir da spaltenbasiert reinstreamen können,

Gast: können wir halt Streams pro Spalte aufmachen, gleichzeitig noch den Schreibdurchsatz verbessern.

Wolfgang: Ja, sehr, sehr spannend. Du hast gesagt, die großen Anbieter haben alle eigene Sachen.

Wolfgang: Bedeutet das, dass die großen Hyperscaler eigene Sachen haben?

Gast: Genau, auf Amazon hast du zum Beispiel Redshift auf AWS.

Gast: Auf Google hast du BigQuery jetzt nicht so als klassische reine Data Warehouse-Lösung,

Gast: sondern eher als Query-Engine.

Gast: Du hast haufenweise Zeug auf TCP rumliegen und willst darauf analytische Queries durchführen.

Gast: Dann haben sie ein BigQuery-entspannendes System, obwohl sie auch mit dem Cloud-Spanner

Gast: so eine Art Data Warehouse hochgezogen haben. auf Azure hast du mehrere Angebote

Gast: du kannst Cosmos DB als analytisches Urlaubssystem verwenden,

Gast: Aber Snowflake läuft doch auf allen drei Cloud-Vendos.

Wolfgang: Aber diese ganzen verschiedenen Systeme, die kochen schon alle ein bisschen

Wolfgang: der eigene Süppchen, oder?

Wolfgang: Also das heißt, ich bin da jetzt nicht irgendwie so agnostisch,

Wolfgang: sondern sage, ich nutze das eine System und wenn man es nicht mehr passt,

Wolfgang: dann switche ich rüber auf ein anderes.

Wolfgang: Ich muss dann mehr oder weniger schon immer bei Null anfangen, oder?

Gast: Genau, also klar, die sprechen natürlich alle irgendeinen Ansias-SQL-Dialekt,

Gast: aber wenn du dich einmal so, wenn du loginst, dann bist du halt drin.

Gast: So eine Migration aus Snowflake raus ist auch nicht so eine Sache,

Gast: die man einfach so mal macht. Also wenn man sich dafür ein System entscheidet,

Gast: soll man sich schon gut überlegen, welches man da nimmt.

Gast: Oder man nimmt halt ein Open-Source-System.

Wolfgang: Was gibt es denn da im Open-Source-Bereich?

Gast: Da gibt es einige Platze. Also wie man sagt, der Hauptvertreter von modernem

Gast: Data Warehouse als Open-Source ist ganz klar Clickhouse.

Gast: Clickhouse, die gibt es auch. Also die operieren einem ähnlichen Business-Modell wie bei MongoDB.

Gast: Du kannst das Ganze auch quasi gehostet bei denen online bestellen.

Gast: Die deployen dir das auch, welche Cloud auch immer du willst.

Gast: Aber die ganze Clickhouse-Codebase ist halt Open-Source. und sie haben auch

Gast: wunderbare Anleitungen, wie du selber hosten kannst, wenn du willst.

Gast: Und die hier Vorgehensweise ist eben genauso. Die haben halt eine Datenbank

Gast: entwickelt, die ist vollständig column-orientiert.

Gast: Sie tun auch gerade unter der Haube das, was ich erklärt habe,

Gast: dass sie die Daten speichern in einzelne Dateien pro Column,

Gast: auch unterteilt in verschiedene, sag ich mal,

Gast: Badges und mit ganz viel Metainformationen außenrum, damit du quasi für jeden

Gast: Key weißt, okay, dieser Badge fängt jetzt für diesen Key an hier und endet da,

Gast: sodass du quasi jede Form von Suchaktionen immer erst in der binären Suche runterbrechen

Gast: kannst, welche einzelnen Wedges du dann auswählen kannst, damit du diese wiederum

Gast: direkt in den Hauptspeicher laden kannst und da relativ schnell vorgehen kannst.

Gast: Die haben eine ganze Menge Optimierung unter der Haube gemacht,

Gast: eben um so ein modernes Datensystem hochzuziehen.

Gast: Und die finde ich relativ spannend, weil du fängst da jetzt nicht mit einem

Gast: Riesensystem an, sondern du kannst die ganz klassisch auf einer Node anfangen,

Gast: und, sag ich mal, wachsen lassen und dann später einfach mehrere von denen in

Gast: Reihe schalten mit ein bisschen Overheads, gebe ich zu, wenn du dann dich ein

Gast: bisschen darum selber kümmern musst, dass die Abfragen korrekt geroutet werden,

Gast: aber du kannst halt so ein Growing machen.

Gast: Du bist nicht direkt auf angewiesen, einen kompletten Kubernetes-Taster hinzustellen,

Gast: sondern du kannst irgendwie auf einer VM anfangen, mal einen so einen Klick-Aus-Prozess

Gast: hochzuziehen und den mal zu befüllen.

Wolfgang: Das ist dann aber auch spannend für vielleicht so mittelständische Unternehmen, oder?

Gast: Definitiv.

Wolfgang: Wo man jetzt nicht so eine riesen Admin-Truppe irgendwie hat,

Wolfgang: die vielleicht super geschult ist und das alles auch stemmen kann,

Wolfgang: sondern man kann sowas vielleicht auch einfach mal als Prototyp dann relativ

Wolfgang: einfach mal einfach anfangen.

Gast: Genau, es gibt einen Docker-Container, den kannst du hochziehen,

Gast: dann hast du das Ding lokal laufen.

Gast: Effektiv. Und was ich jetzt sagen muss bei ClickHouse,

Gast: Ja, wenn ich mir so bei so einer Technologie, ich störe ja gerne in der Doku

Gast: als Ingenieur und immer wenn ich auf eine Technologie stoße,

Gast: wo mir nichts sagt, okay,

Gast: wir übernehmen alles für dich und hier ist alles super und wir optimieren alles

Gast: weg und es sind schöne Management Slides und dann bin ich da reingucke und ich

Gast: sehe 500 Seiten mit Best Practices und wenn das passiert, musst du das machen,

Gast: dann merke ich schon, okay,

Gast: die werden sich da was dabei gedacht haben, ich muss das konfigurieren,

Gast: aber ich kann es auch konfigurieren.

Gast: Wenn ich konfigurieren kann, dann kann ich auch Performance ausholen.

Wolfgang: Ist das stark verbreitet, Clickhouse? Du hast gesagt, das ist so das größte Open Source Projekt.

Gast: Es ist relativ stark vorbei mittlerweile. Ich kann manchmal die Use Cases,

Gast: mit denen sie häufig wir haben, ist zum Beispiel Microsoft tut intern seine

Gast: Analyse-Tools für ihre eigenen Websites.

Gast: Also quasi für das Microsoft-Portal etc. pp.

Gast: Da haben sie sich eine Analyse-Chain auf einer Clickhouse aufgebaut.

Gast: Und es gibt auch, auf denen ihre Website haufen, weil sie Showcases von größeren

Gast: Unternehmen, die auf Clickhouse eben ihre Analysen durchführen.

Wolfgang: Okay, das ist echt super interessant. Was gibt es sonst aus dem Open-Source-Bereich?

Wolfgang: Gibt es da nicht auch was von Apache vielleicht?

Gast: Wenn du mich so fragst. Es gibt direkt zwei Apache-Systeme, über die wir reden

Gast: könnten. Druid und Doris.

Gast: Genau, mit dem Druid anfangen. Druid ist ein interessantes Ding,

Gast: weil es ist jetzt als Data Warehouse gedacht, aber es hat ein bisschen so einen Spezialfall.

Gast: Druid ist insofern anders als Kligos, als bei Druid bindest du direkt den ganzen

Gast: Cluster auf, wenn du den hochziehen willst.

Gast: Du musst, weil das Cluster des Systems gebaut ist, mehrere Nodes zur Verfügung stellen.

Gast: Du hast immer eine Aufsichtsnode, also quasi irgendwann ein Master und du hast mehrere Worker Nodes.

Gast: Auf den Worker Nodes liegt dann immer ein Subset der Daten und die können die

Gast: Daten untereinander hin und her replizieren und dadurch auch,

Gast: sag ich mal, Abfragen könnten auf verschiedene Buchzeiten der Daten gehen.

Gast: Das heißt, die Masternacht kümmert sich dann darum, dass die korrekten Worker

Gast: die korrekte Teilabfragen bekommen und dann sammelt der quasi die einzelnen

Gast: Ergebnisse ein. Also du hast da so ein Shuffle-Curray-System.

Gast: Genau, und was das halt relativ gut kann und worauf es ausgelegt ist,

Gast: sind Echtzeit-Event-Daten.

Gast: Also der Druid ist dafür gebaut, dass wenn du deine Daten ingestestest,

Gast: dass sie innerhalb von wirklich Minisekunden deinen neuesten Events bereits

Gast: in deinem System drin sind, weil Druid auch ganz klar sagt, wir machen das gesamte

Gast: Indexing und die Optimierung selber.

Gast: Das heißt, du hast beim Ingest, sage ich mal, wesentlich weniger Kontrolle als

Gast: bei manchen anderen Datenbanken, wo du dein Index jetzt selber festlegst,

Gast: sondern die sagen, wir machen das.

Gast: Wir haben auch hauptsächlich Wissenschaftliche Paper, wo sie sagen,

Gast: wie sie genau das machen.

Gast: Weil wir dann alles wirklich auf diesen Echtzeit-Use-Case zuschneiden,

Gast: um dir dann wirklich garantieren zu können, also wo das ganz groß ist,

Gast: so ein Börsen-Use-Case ist,

Gast: wo du dann gesamte Orderbooks drin hast und einfach sagen kannst,

Gast: okay, auf den allerneuesten Transaktionsdaten kann ich hier meine Analysen in Echtzeit durchführen.

Gast: Gleichzeitig hast du dann natürlich ein hochkomplexes, verteiltes System,

Gast: das schon einiges an Hopplan-Operations erfordert, um es am Laufen zu halten.

Wolfgang: Also das ist nichts, was man sich einfach mal so installiert.

Wolfgang: Da brauchst du auch echt die Leute dafür, die es betreiben können.

Wolfgang: Und du musst dir vorher auch gute Gedanken drüber machen, wie das Setup aussieht,

Wolfgang: was du an Infrastruktur brauchst, etc.

Gast: Genau, so Druid ist wirklich so ein Use Case, wo ich sagen würde,

Gast: macht man sich Vorgedanken, ob man den braucht.

Gast: Aber wenn das was ist, was man lösen kann, dann kann man es damit meistens deutlich

Gast: besser lösen als mit anderen Systemen, was dann wirklich drauf abgestimmt ist.

Wolfgang: Und dann hast du gemeint, es gibt noch Doris von Apache.

Gast: Genau, Apache Doris ist ein relativ junges Projekt. Das ist aus dem chinesischen

Gast: Bereich entstanden bei Tencent hauptsächlich.

Gast: Die haben sich ein eigenes Data Warehouse. Es steht auch, wenn man sich zwischen

Gast: den Zeilen der Doku liest, kommt es mir manchmal vor wie so ein Frontal-Angehörer

Gast: aus Snowflake, nur halt als Open-Source-System.

Gast: Effektiv ist es auch Data Warehouse, komplett verteilt.

Gast: Du hast auch eine Aufteilung in einzelne Worker-Nodes und Node-Sie-Queries entgegennehmen,

Gast: ähnlich wie beim Druid, nur dass es halt nicht wie beim Druid alles auf 100%

Gast: Realtime getrimmt ist, sondern dir die DORIS auch erlaubt,

Gast: deine Indizes und deine Datenmodelle mehr oder weniger selber festzulegen,

Gast: so wie es halt für dich am besten passt und dir letzten Endes auch ähnlich wie

Gast: auf einem Klick aus deiner,

Gast: Query-Engines auszuwählen und sauberer hinzuzufügen.

Wolfgang: Ja, echt spannend, dass es da so viele Sachen gibt. Ich finde es immer interessant,

Wolfgang: wenn wir auf der einen Seite gute Open-Source-Systeme haben,

Wolfgang: die auch verwendet werden bei großen Kunden, man aber auf der anderen Seite

Wolfgang: natürlich die großen fetten Platzhirsche hat.

Wolfgang: Also gerade sowas wie Oracle, SAP, Microsoft, die ja schon seit Jahrzehnten hier sind.

Wolfgang: Und gerade Snowflake kenne ich auch. Du hast gemeint, die gibt es seit so 10, 15 Jahren.

Wolfgang: Das heißt, die haben natürlich auch schon eine riesengroße Basis einfach an

Wolfgang: Installationen oder an Usern.

Wolfgang: Und was sich für mich da immer so ein bisschen als Frage herauskristallisiert,

Wolfgang: wir haben ein spannendes Thema, das für viele Unternehmen relevant ist.

Wolfgang: Wir haben viele Anbieter, die etabliert sind, also von Oracle über Snowflake bis hin zu Clickhouse.

Wolfgang: Und da frage ich mich immer, wo sind so die großen Unterschiede,

Wolfgang: Vielleicht ist es abgesehen vom Lizenzmodell, aber wo ist vielleicht aber auch

Wolfgang: noch so ein bisschen dieses Potenzial für Verbesserung und Optimierung?

Wolfgang: Also wenn es immer nur einen Anbieter gibt oder nur zwei Anbieter,

Wolfgang: dann ist meistens der Markt ziemlich ausdefiniert schon einfach.

Wolfgang: Wenn es aber so eine ganze Handvoll oder mehr Anbieter gibt,

Wolfgang: das wirkt für mich immer so ein bisschen wie, da ist noch Bewegung drin.

Wolfgang: Und gerade hier, wir haben darüber gesprochen, das Thema gibt es seit, I don't know, 40 Jahren.

Wolfgang: Und wenn nach 40 Jahren da aber immer noch Bewegung drin ist,

Wolfgang: da bin ich halt neugierig. Ich meine, ich habe ein Experten vor mir.

Wolfgang: Wo geht die Reise hin? Jetzt nicht in den nächsten 40 Jahren,

Wolfgang: sondern vielleicht in den nächsten zwei, drei, vier Jahren.

Wolfgang: Gibt es da aktuell am Horizont spannende Themen, wo du sagen würdest,

Wolfgang: ja, da wird wahrscheinlich was kommen oder da könnte irgendwie was Spannendes kommen?

Gast: Ja, definitiv. Es ist ein hochbewegter Bereich und man sieht es auch gerade

Gast: daran, dass sich die einzelnen Anbieter ja hauptsächlich schlachten über die Benchmarks.

Gast: Also gerade die Art und Weise, wie die Open-Source-Hersteller gerne die Closed-Source-Hersteller

Gast: angreifen, indem sie sagen, okay, wir haben hier schon wieder zig Benchmarks abgeräumt.

Gast: Wir sind einfach besser, unser System funktioniert besser, weil wir es eben

Gast: Open-Source entwickeln und weil wir ja effektiv viel mehr Entwickler haben,

Gast: als so ein Unternehmen eigentlich immer stemmen könnte.

Gast: Weil die ganzen Leute können es ja niemals bezahlen, die an so einem großen

Gast: Open-Source-Projekt arbeiten. Ich meine, schau dir mal nur eine Postgres an.

Gast: Warum gewinnt die jedes SQL-Datenbank-Batchmark?

Gast: Einfach weil viel mehr Leute daran arbeiten mit viel mehr Expektive.

Gast: Die sich ja über die Jahrhunderte an Arbeit, die da reingeflossen sind, ansammeln.

Gast: Wenn ich darüber nachdenke, wo sind gerade die interessanten Sachen,

Gast: die sich passieren, ist einerseits noch, wie gehe ich wahrscheinlich mit weniger

Gast: strukturierten und auch teilweise unstrukturierten Daten um.

Gast: Da gibt es interessante Ansätze.

Gast: Gerade ist ja schon viel in Richtung JSON-Parsing und Document-Parsing passiert.

Gast: Und was zum Beispiel so eine Apache Doris kann, ist, die kann Federated Queries

Gast: nicht nur auf ihrem eigenen Data Layer, sondern die kann auch auf deinen Data

Gast: Lake gehen. Also wenn du da Daten irgendwie hast, die zum Beispiel im Iceberg-Format

Gast: schon rumliegen, kann die die auch ansteuern.

Gast: Und das Interessante ist dann für mich, ja letzten Endes, wenn ich diese Ausführungs-Engine-Hubs

Gast: in den Datenmarkten, die ja jetzt letzten Endes getrennt sind vom Storage,

Gast: ich habe da Computereinheiten, wie kriege ich das jetzt zusammen mit,

Gast: sage ich mal, meinen KI-Algorithmen, die ich aktuell trainiere?

Gast: Also schaffe ich es vielleicht auch, meine Inferenz irgendwie direkt auf meinem

Gast: Datenbanksystem durchzuführen, das quasi im Analyseprozess direkt aufrufen zu

Gast: können, wie in der Startprocedure, dass ich jetzt sage,

Gast: okay, die ruf folgendes KI-Modell auf, um darauf zu trainieren.

Gast: Und da gibt es auch schon erste Ansätze.

Gast: Einerseits bei Snowflake, andererseits aber eben auch bei Doris,

Gast: bei Clickhouse, um die Dinge zu verknüpfen oder auch um vielleicht auch Trainingsdaten

Gast: besser zur Verfügung zu stellen oder auch die zweite Sache ist natürlich Abfrageoptimierung.

Gast: Kommt da auch irgendwann mal das Thema KI rein, weil die meisten Abfrageoptimierer,

Gast: laufen ja aktuell noch auf entweder Ressourcen oder regelbasierten Systemen.

Gast: Also entweder ich versuche mehrere Pläne aufzustellen und gucke mal,

Gast: welcher ist der billigste oder ich habe Auf Apache Spark zum Beispiel im Katalys

Gast: tausende Optimierungsregeln, die da untereinander greifen.

Gast: Da laufen gerade auf vielen ecken und netten Experimente mit,

Gast: kriege ich vielleicht irgendwie ein KI-basiertes System da rein,

Gast: das mir meine Queries noch krasser optimieren kann, das vielleicht auch lernt,

Gast: wie meine Daten aussehen.

Wolfgang: Gibt es da schon eine fehlversprechende Ansätze für Query-Optimierung mit KI?

Gast: Ich habe noch keinen gesehen, der funktioniert hätte. Aber ich glaube,

Gast: es liegt nicht am Mangel an Versuchen.

Gast: Ich bin auch ziemlich überzeugt, dass da in den nächsten vier,

Gast: fünf Jahren vielleicht spannende Durchbrüche auf uns zukommen.

Wolfgang: Das ist interessant. Ja, aber du hast gerade schon KI angesprochen.

Wolfgang: Ich meine, KI steckt heute überall drin.

Wolfgang: KI wird von vielen als die große universelle Verheißung irgendwo gesehen für

Wolfgang: ganz utopische, tolle Sachen.

Wolfgang: Abgesehen von so Sachen wie so Query-Optimierung, siehst du noch andere Ansätze,

Wolfgang: wo man vielleicht mit KI das klassische Data-Warehousing weiterbringen kann?

Gast: Einerseits ist es wahrscheinlich User-Facing. Heutzutage brauchst du immer noch,

Gast: wenn du so ein Data Warehouse hast, ist ja cool und hast deine Daten da,

Gast: du brauchst trotzdem noch eine BI-Schicht.

Gast: Also irgendjemand, der da vorsitzt, deine BI-Reports baut.

Gast: Und es gibt ja in den, sag ich mal, neueren, cooleren BI-Tools,

Gast: wie zum Beispiel Metabase, ja jetzt schon die Möglichkeit Chat-Befue Data zu machen.

Gast: Also du formulierst deine Abfrage oder deine Anfrage nicht mehr in SQL,

Gast: sondern in natürlicher Sprache und das System kümmert sich darum,

Gast: eine SQL-Query zu bauen, die dann gegen das Data Warehouse geht und zu sagen,

Gast: okay, ich hole dir jetzt hier für deinen Bericht die nötigen Daten raus.

Gast: Das sind natürlich spannende Sachen.

Gast: A, wie Interface haben wir direkt gegen so ein System?

Gast: Wäre es zum Beispiel vielleicht auch nützlich für so ein Data Warehouse neben

Gast: der klassischen Dokumentation jetzt natürlich als SQL-Datenbank-Schema, wie man es kennt,

Gast: vielleicht auch irgendeine Form von Dokumentation, keine Ahnung,

Gast: sei es ein YAML oder irgendein Maschinen-Liesbaren-Format zu haben,

Gast: dass du quasi in den Kontext von so einem MLM pipen kannst, damit es,

Gast: sag ich mal, die Queries korrekt schreiben kann, auch weil es welche Datenbanken

Gast: und welche Datentypen-Entities du hast.

Gast: Aber sowas ist auf jeden Fall eine interessante Sache, gerade so Chat mit your

Gast: Data und Use Cases optimal zu unterstützen.

Gast: Und dann ist vielleicht auch irgendwann mal die Frage, wenn man sich vielleicht

Gast: anguckt, wie funktionieren die Query Patterns von so einem LLM vielleicht zu

Gast: dem, was ein Mensch schreibt, ob man irgendwann auf die Idee kommen würde,

Gast: einzelne Datamarts, also Datenmodelle, speziell für, sage ich mal,

Gast: KI-Konsumenten zu entwerfen.

Gast: Ob das auch eine Herausforderung ist, die in den nächsten fünf Jahren vielleicht auf uns zukommt.

Wolfgang: Ja, das wird auf jeden Fall spannend. Ich glaube, um,

Wolfgang: Potenzial steckt da auf jeden Fall drin, denn so die Dinge, in denen KI halt

Wolfgang: gut ist, also so Mustererkennung, Optimierung, das sind ja schon auch Dinge,

Wolfgang: die im Rahmen oder im Kontext vom Data Warehouse relevant sind einfach.

Wolfgang: Und da vielleicht irgendwie neue Ansätze zu finden, gerade eine Query zu optimieren

Wolfgang: oder andere Sachen zu optimieren oder gerade auch so dieser natürlichsprachige

Wolfgang: Ansatz, dass ich vielleicht so eine Art Self-Service-Portal habe für mein Data Warehouse,

Wolfgang: wo dann ich als Manager rangehen kann und ich habe vielleicht gar nicht so viel

Wolfgang: Ahnung von der Technik, brauche ich auch nicht, aber ich weiß,

Wolfgang: was ich eigentlich sehen möchte oder was mich interessiert.

Wolfgang: Und ich habe dann vielleicht so eine Art Dialogsystem und bekomme dann jetzt

Wolfgang: nicht nur Zahlen, sondern vielleicht auch noch irgendwie einen schönen Graphen

Wolfgang: oder vielleicht sogar einen fertigen Report, den ich dann auch ein bisschen nachjustieren kann.

Wolfgang: Das wäre natürlich schon super praktisch, wenn ich dann einfach so eine Art

Wolfgang: Mensch-Maschine-Interface habe,

Wolfgang: dass das besser funktioniert, denn wo ich dann nicht immer den in Anführungszeichen

Wolfgang: Umweg gehen muss über den Data Analyst, der sich dann in der Zeit vielleicht

Wolfgang: lieber um spannendere Sachen kümmert, also meine wöchentliche Auswertung zum

Wolfgang: Thema, was sind die beliebtesten Fahrradfarben jetzt?

Gast: Ja, und dann vielleicht natürlich noch quasi von der anderen Seite aus Seiten

Gast: des eben Data Engineers.

Gast: Inwiefern kann uns KI bei eben unseren ETL-Prozessen oder ELT-Prozessen unterstützen?

Gast: Aber wir haben ja häufig auch Aufgaben, die eher repetitiv sind.

Gast: Du hast ja x Datenschemas, die irgendwie in Normalformen sind.

Gast: Du willst da auch ein Sternschema bauen.

Gast: Klar, auf der einen Seite brauchst du dafür tiefe Business Insights,

Gast: um das Schema korrekt entwerfen zu können, aber auf der anderen Seite ist es

Gast: auch wieder so eine Operation, die häufig ähnlich verläuft und da ist vielleicht auch die Frage.

Gast: Wie lässt sich dafür ein guter Code Assistant bauen? Gerade für diese Use Cases

Gast: oder wie weit runter automatisieren kann man das noch?

Gast: Und dann eine andere Entwicklung, die da parallel läuft, ganz weggezogen von

Gast: den ganzen KI-Sachen, die jetzt schon auch seit ein paar Jahren läuft,

Gast: aber die ich finde, die sich gerade aktuell bestärkt ist.

Gast: Das weitere Zusammenwachsen von eben ETL schrägstlich ELT und Data Warehouse

Gast: selbst. Weil früher hattest du ja noch immer ein getrenntes Suite von Tools.

Gast: Du machst zum Beispiel deinen Load ganz klassisch von deinen Datenbanken auf

Gast: erstmal den Data Lake rein über einen Batch Copy und dann machst du deine Vorverarbeitung

Gast: von den Daten in dein Sternschema irgendwie mit Apache Spark und dann tust du

Gast: das finale Sternschema erst in das Warehouse reinladen.

Gast: Das ändert sich so ein bisschen teilweise, dass du jetzt erstmal direkt die

Gast: Rohdaten schon auf das Data Warehouse ablegst und dann innerhalb des Data Warehouses

Gast: mit SQL-Abfragen über so Systeme wie zum Beispiel,

Gast: DBT oder so, nach und nach deine einzelnen Medaillenschichten von Bronze,

Gast: Silber, dann aufs Gold-Sternschema in der SQL selbst machst und in der Datenbank selbst machst.

Gast: Und zum Beispiel gerade am Clickhaus ist darauf sogar ausgelegt,

Gast: weil die arbeiten da ganz viel mit Materialized Views und die sagen selber,

Gast: hole deine Rohdaten hier rein,

Gast: baue dann Schritt für Schritt die einzelnen Views, die sich aus den Rohdaten

Gast: ableiten, bis hin auf dein finales Galaxy-Schema und diese Views werden dann

Gast: quasi vom System selbst in so einer Art CDC-Prozess automatisiert im Hintergrund

Gast: geupdatet, wenn neue Daten da sind.

Wolfgang: Und Materialized Views bedeutet, dass die eben persistent sind und dass sie

Wolfgang: nicht in Echtzeit berechnet werden und dadurch halt eine bessere Performance hast.

Gast: Genau, dadurch sorgen die dafür, dass quasi, sag ich mal so,

Gast: 99% der Daten immer irgendwie relativ schnell vorhanden sind und,

Gast: sag ich mal, so die 1% der neuesten Updates vielleicht mit etwas Latenz reinlaufen.

Gast: Aber zum Beispiel Clickhouse sagt, für seine Zwecke, das sind die Use Cases, die sie abziehen.

Gast: Wenn du irgendwelche Zeitanalysen willst, hol dir Android.

Wolfgang: Und da kümmert sich dann quasi auch die Datenbank drum. Das heißt,

Wolfgang: du definierst einfach eine View ganz normal und die Datenbank sorgt dafür,

Wolfgang: dass das immer aktuell ist.

Gast: Genau, und wenn du es quasi Datenmarker genostisch haben willst,

Gast: kannst du es dann ganz mit DBT, also mit Data Build Tool machen,

Gast: wo du dann diese einzelnen Views entwirfst und dich dann quasi auch in dem Tool

Gast: über die Orchestration kümmerst, dass diese Workflows laufen.

Wolfgang: Okay, super spannend. Wir haben festgestellt, Data Warehouses sind auf jeden

Wolfgang: Fall für alle oder fast alle Unternehmen

Wolfgang: relevant, natürlich in einer ganz unterschiedlichen Ausprägung.

Wolfgang: Wenn ich jetzt einen Weltkonzern habe mit gigantischen Datenmengen,

Wolfgang: werde ich wahrscheinlich eine andere Lösung brauchen, als wenn ich jetzt den

Wolfgang: kleinen Fahrrad-Online-Shop habe.

Wolfgang: Und da frage ich mich natürlich, Marvin, was ist denn der beste Ansatz,

Wolfgang: um für sich selbst die beste oder die passendste Lösung zu finden,

Wolfgang: also im Sinne von, was für ein System, was selbst gehostet ist,

Wolfgang: irgendwas beim Hyperscaler, was es da von der Stange gibt oder vielleicht auch

Wolfgang: ein Clickhouse irgendwie oder ein Apache Druid.

Wolfgang: Ich meine, das hängt wahrscheinlich von vielen Faktoren ab, aber wenn du jetzt

Wolfgang: in deiner Rolle als Data Engineer mit einem Kunden sprechen würdest,

Wolfgang: dass der so in dem Punkt ist,

Wolfgang: wo der Kunde noch nicht sicher ist, was er genau braucht, aber er möchte in

Wolfgang: der Richtung was machen, weil er eben halt seine ganzen Daten hat und da Interessen

Wolfgang: einfach hat, was auszuwerten und Erkenntnisse rauszuziehen.

Wolfgang: Wie könnte denn so ein Findungsprozess aussehen?

Gast: Frage 1 ist für mich, und das überrascht jetzt vielleicht welche Leute im Publikum,

Gast: gar nicht so sehr die Frage nach Datenmenge, sondern erstmal die Frage nach Personal beim Kunden.

Gast: Habe ich eine Softwareabteilung oder auch ein IT-Team, das irgendwie Erinnerung

Gast: von Operations hat und auch irgendwie ein System darauf betreiben kann?

Gast: Oder ist das wirklich ein Unternehmen, das sich eigentlich auf andere Dinge

Gast: konzentrieren will, wo IT eher als Service betrachtet ist, dass man vielleicht

Gast: ein, zwei Atmen ins Zimmerhaus hat?

Gast: Weil dann beantworte ich erstmal die Frage, brauche ich eine Software-as-a-Service-Lösung

Gast: oder kann ich irgendwie Open-Source-Technologie selber hosten?

Gast: Und wenn die Antwort ganz klar ist, nee, wir wollen hier kein Hosting betreiben,

Gast: dann ist ja immer ganz klar, ich brauche Software-as-a-Service.

Gast: Und dann kann man jetzt erstmal gucken, welches man nimmt, dann ist das abhängig

Gast: ein bisschen von der Datengröße und davon, wie viel man auch Integration will,

Gast: wenn man dann wirklich eine einheitliche Plattform will und auch sagen will, okay, mir ist,

Gast: bewusst, dass ich ein bisschen Vendor-Login und ich will das aber vielleicht

Gast: auch und ich will auch vielleicht, dass die Daten irgendwie mit dem Rest zu

Gast: meiner Cloud gut funktionieren,

Gast: kann man schon sagen, mit Snowflake macht man ab einer gewissen Datenmenge schon

Gast: irgendwie nichts falsch.

Gast: Andere Alternative ist, wenn man vielleicht bereit ist, okay,

Gast: doch so ein bisschen drumherum zu bauen und vielleicht auch zu gucken,

Gast: dass man das Autodentifizierung und so doch selber machen kann,

Gast: der eine Atme, die man dann hat, dann würde ich vielleicht sagen,

Gast: selbst bei kleinen Datenmengen kann man die gehostete Variante von einem Blickhaus

Gast: ziemlich preiswert betreiben und es.

Gast: Braucht man halt ein bisschen Expertise, um die Schemata etc.

Gast: Korrekt darzustellen, aber da kommst du nie unter. Auf meinem Snowflake müssen deine Schemas stimmen.

Gast: Das heißt, einen Data Engineer wirst du immer brauchen, der zumindest mal,

Gast: sei es auch Data Engineer und BI Dude in Personalunion, sich darum kümmert,

Gast: dass die Daten da richtig reinlaufen. Aber dadurch spaßt dir zumindest das ganze Operations.

Gast: Oder einen großen Teil von Operations. Alles spaßt dir nie, um das mal so deutlich zu sagen.

Gast: Genau, das wäre so die erste Entscheidung. Also buy or make.

Gast: Wenn ich aber gleichzeitig sage, okay, ich habe jetzt kein Problem damit,

Gast: habe ich schon Teams in-house, die das können, dann kann ich mir natürlich auch

Gast: die Lizenzgebühren für so eine Software-to-Service-Lösung sparen und wenn ich

Gast: eh schon ein Kubernetes-Cluster habe, um mir Zeug zu hosten,

Gast: dann kannst du auch jetzt tiefer ins Detail gucken und sagen,

Gast: okay, welcher Use-Gest will ich wirklich abbilden, wie viele Daten habe ich,

Gast: wenn ich jetzt eine kleinere Datenmenge habe, würde ich immer noch sagen,

Gast: top, nehmt ein Klick aus.

Gast: Oder vielleicht sogar, wenn ihr da eine Postgres rumstehen habt,

Gast: zieht eine zweite Postgres-Datenbank hoch, installiert Hydra,

Gast: damit lernt sie Columnar Storage und macht einfach auf der Hüte oder dann.

Gast: Wenn ich sage, ich habe relativ große Datenmenge und ich weiß auch schon,

Gast: dass eine Note mir von vornherein nicht ausreichen wird, würde ich sagen,

Gast: okay, greift vielleicht nicht zum Klick aus, sondern schaut euch an, ist Doris was für uns?

Gast: Haben wir auch politisch kein Problem damit, uns so ein bisschen Tencent ans Bein zu minden?

Gast: Wenn man da mutig genug ist, würde ich sagen, ja, greift zu Doris,

Gast: die ist frisch, die erinnert sich noch stark, aber die ist halt mega performant

Gast: und gerade bei einem jungen Open-Source-Projekt hast du auch immer noch so ein

Gast: bisschen die Chance, eine größere Stimme zu werden.

Gast: Auch wenn du Contribute ist und auch größerer Vendor oder größerer Kunde bist,

Gast: dass man vielleicht auch mal hier und da ein Feature für dich entwickelt.

Gast: Wenn ich jetzt JV Morgan Stanley bin und mein Orderbook,

Gast: automatisieren will und da Echtzeitinformationen brauche, dann sage ich ganz

Gast: klar, jo, um den Druid kommt der nicht herum.

Gast: Aber dann wird man auch die Teams dafür haben.

Wolfgang: Also es ist dann trotzdem aber eine sehr individuelle Entscheidung.

Wolfgang: Also man kann nicht einfach sagen, okay, X oder Y passt immer oder X ist für

Wolfgang: einen Einstieg immer super, sondern man wird nicht drumherum kommen,

Wolfgang: sich an den Tisch zu setzen, wahrscheinlich nicht nur einen Tag und mal die

Wolfgang: ganzen Punkte mal durchzuarbeiten.

Wolfgang: Und ich finde gerade, was du am Anfang gesagt hast mit den Leuten,

Wolfgang: die Operations machen oder überhaupt mit dem Personal, das man braucht,

Wolfgang: das finde ich ist eine super, super wichtige Frage.

Wolfgang: Ich habe das ab und an auch schon mal erlebt, dass das eine Frage ist,

Wolfgang: die gar nicht so intensiv diskutiert wurde, weil man sehr lösungsorientiert

Wolfgang: war und dass man dann aber irgendwann an einen Punkt kam,

Wolfgang: wo man gemerkt hat, oh, jetzt bräuchten wir ja noch Leute, die die Expertise haben.

Wolfgang: Und ich weiß nicht, wie es bei den ganzen Lösungen ist, aber ich vermute,

Wolfgang: da wird so die Zwei-Tage-Schulung wahrscheinlich auch nicht ausreichen,

Wolfgang: um dann wirklich ein Profi drin zu sein, sowas zu betreiben.

Gast: Genau. Das Ganze ist eine Software-Architektur-Entscheidung und deswegen muss

Gast: man es so behandeln wie jede andere Software-Architektur-Entscheidung.

Gast: Du musst deinen Kontext analysieren, du musst vor allem deine qualitativen Anforderungen

Gast: an das System erheben, also formulieren, wie viele Daten erwarte ich,

Gast: wie viele Daten müssen in welcher Geschwindigkeit abfragbar sein.

Gast: Und erst wenn du all diese Fragen beantworten kannst, dann kannst du die oberste

Gast: Regel der Softwarearchitektur anwenden, die lautet, it depends.

Wolfgang: Aber apropos it depends, war noch so eine ganz andere Frage.

Wolfgang: Jetzt kommt vielleicht ein Kunde um die Ecke mit dem großen Bedürfnis,

Wolfgang: ein Data Warehouse zu haben.

Wolfgang: Braucht jeder ein Data Warehouse? Ich meine, ich habe vorhin gesagt,

Wolfgang: ja, es ist relevant für jeden, aber stimmt das überhaupt?

Wolfgang: Braucht man unbedingt ein Data Warehouse oder gibt es vielleicht auch Situationen,

Wolfgang: wo man jetzt ein bisschen Analytics möchte, ein bisschen Insights möchte in seine Daten,

Wolfgang: wo aber vielleicht eine normale Datenbanklösung, die man sowieso hat,

Wolfgang: schon ausreicht oder völlig, völlig okay ist, dass man da vielleicht Daten rauszieht

Wolfgang: und ein bisschen, weiß nicht, Microsoft Power BI dran stöpselt,

Wolfgang: um da schöne Auswertungen zu haben.

Gast: Also mal gucken, dass du mit deinen analytischen Queries eben dein Business

Gast: System nicht interruptest, dass wenn du quasi auf einem Scale bist,

Gast: der so klein ist, dass du sagst, okay,

Gast: die analytischen Queries können nebenläufig zu den Online-Qeries laufen,

Gast: ohne dass du die Datenbank dabei,

Gast: Latenzprobleme kriegst, dann klar, dann brauchst du da kein zweites System,

Gast: sondern kannst auf deinem Online-System genauso gut auch die analytischen Queries

Gast: mit ein bisschen Schmerzen vielleicht bei den Queries, weil du FME und Jordan

Gast: brauchst in deiner dritten Normalform.

Gast: Aber klar, es gibt Punkte, da kommst du damit durch.

Gast: Vielleicht brauchst du auch kein komplettes Data Warehouse-System.

Gast: Vielleicht reicht es dir auch einfach, die Daten in deiner Datenbank,

Gast: wenn sie nicht so groß sind, dass dir dann einer anlöst, sich das einmal mit,

Gast: DuckDB abzieht, dann hat er sie lokal bei sich im Hauptspeicher und kann auch mit DuckDB arbeiten.

Gast: Das ist auch so ein zweiter Begriff, ne? Build your own Data Warehouse.

Gast: Vielleicht wirst du auch gar kein Data Warehouse an sich, sondern du sagst,

Gast: du wirst ein Data Lake haben, weil du vielleicht eh schon irgendwelche AI-Analysten

Gast: hast, dann hast du die Daten da eh schon rumliegen.

Gast: Dann kannst du an den ganzen Kopien von den tabellarischen Daten,

Gast: die du da drin hast, quasi auch so eine Art Data Ware aufbauen,

Gast: in dem du eine Query Engine drauf loslässt, wie zum Beispiel Trainer oder so,

Gast: die dann quasi auf dem Data Lake auch erstmal quasi noch die einzelnen tabellarischen

Gast: Dateien, jetzt Paketdateien oder Iceberg-Dateien oder whatever,

Gast: eben ein Sternschema erst bringt und dann dieses Sternschema ganz von alleine

Gast: eben in seinen eigenen Prozessen abfragt.

Wolfgang: Ja, super, super interessant. Ich merke schon wieder, das ist halt auch so ein

Wolfgang: roter Faden, der sich irgendwie durch alle IT-Projekte durchzieht.

Wolfgang: Es ist so super wichtig, sich am Anfang die Zeit zu nehmen, um so eine Fragestellung,

Wolfgang: so ein Problem ausführlich zu analysieren und dann die passende Lösung zu finden einfach.

Wolfgang: Weil ich glaube, man kann halt viel Geld investieren in eine Data Warehouse-Lösung

Wolfgang: und traurig ist es halt, wenn man das gemacht hat und es läuft alles und man

Wolfgang: merkt, oh, da ist gar keine Last drauf, wir hätten es vielleicht gar nicht gebraucht.

Wolfgang: Es hätte vielleicht auch anders funktioniert und wir hätten uns das Geld sparen

Wolfgang: können für eine andere Weiterentwicklung, wo wir was Wertvolleres für uns oder

Wolfgang: was Wertstiftenderes irgendwie hätten entwickeln können.

Gast: Ja, klar, drauflos, Ingenieren führt selten zu guten Lösungen.

Gast: Und deswegen ist, genau, am Anfang jedes Projekts sollte natürlich an der Bedarfsanalyse

Gast: stehen und eben, wie man es in der Softwarearchitektur lernt,

Gast: das Erheben von A, unseren fachlichen Anforderungen,

Gast: aber auch von unseren Qualitätsanforderungen beantworten zu können,

Gast: auf welche Art und Weise müssen wir unser System skalieren, wo wollen wir hin,

Gast: wo stehen wir vielleicht heute, wo stehen wir in zehn Jahren,

Gast: wie müssen wir wachsen können und all diese Fragen müssen halt am Anfang beantwortet

Gast: werden, bevor du halt irgendeine Form von Technologieentscheidungen treffen kannst, natürlich.

Gast: Zumindest, sage ich mal, sinnvoll treffen kannst. Kannst du dir auch aus dem

Gast: Bauch heraus sagen, okay, wir nehmen jetzt Snowflake, die Slides sehen gut aus.

Wolfgang: Was auch stimmt, die sehen sicherlich sehr, sehr gut aus.

Wolfgang: Da sind viele glücklich und zufriedene Menschen drauf und wahrscheinlich sind

Wolfgang: die vor allem wegen der Lösung so zufrieden und so glücklich.

Wolfgang: Aber Spaß beiseite, ich glaube, das darf man halt nicht vergessen.

Wolfgang: Sobald eine Lösung nicht mehr so super trivial und einfach ist,

Wolfgang: dass man die in zwei Tagen fertig hat, lohnt es sich, glaube ich,

Wolfgang: ausführlich darüber nachzudenken, weil sonst legst du am Ende halt irgendwie

Wolfgang: drauf oder hast am Ende vielleicht irgendwie eine tolle Lösung gebaut,

Wolfgang: die aber die falsche ist.

Gast: Und insbesondere hast du bei Data Warehouse ja häufig so das Pech,

Gast: dass du meistens businesskritische Lösungen baust, weil du ja das Decision Support

Gast: System für dein Management zum Beispiel irgendwie hochziehen willst.

Gast: Und da sind Überlegungen hier besonders angebracht.

Wolfgang: Und wenn es bei mir soweit ist, Marvin, dass ich für meinen Online-Fahrradladen

Wolfgang: mal ein vernünftiges Data Warehouse benötige,

Wolfgang: dann würde ich mich natürlich freuen, wenn du Zeit hast, um mich da mal ausführlich

Wolfgang: zu beraten und mir das vielleicht auch auszureden, weil aufgrund des geringen

Wolfgang: Bestellvolumens vielleicht eine Excel-Tabelle ausreicht. Aber Spaß beiseite.

Wolfgang: Ich fand es super interessant. Also du hast viele Lücken in meinem Kopf gefüllt

Wolfgang: mit Fachwissen, was ich natürlich in Zukunft hoffentlich mal einsetzen kann irgendwo.

Wolfgang: Aber ich fand es sehr spannend, weil gerade das Thema Data Warehouse ist halt

Wolfgang: echt ein altes Thema, weil es halt 40 Jahre alt ist, aber immer noch Bestand

Wolfgang: hat. und ich fand es spannend, diese ganzen Aspekte mal zu beleuchten.

Wolfgang: Also vielen, vielen Dank für deine Zeit und vielen Dank für deine spannenden

Wolfgang: Erfahrungen, die du mitgebracht hast.

Gast: War mir eine große Freude und vor allem eine große Ehre, hier in diese ehrwürdigste

Gast: Aller-InnowX-Einrichtung mal eingeladen zu werden und freut mich natürlich,

Gast: dass ich dir auch mal wieder helfen konnte.

Wolfgang: Sehr, sehr gerne. Und wer weiß, was das nächste spannende Datenthema ist,

Wolfgang: wo du genau der richtige Gesprächspartner für bist.

Wolfgang: Vielen Dank.

Voiceover: Das war das Gespräch mit Marvin. Ich hoffe, es hat euch Spaß gemacht.

Voiceover: Wenn ihr Feedback habt, dann erreicht ihr mich per E-Mail unter podcast.innervex.de.

Voiceover: Wir hören uns in der nächsten Folge wieder. Bis dahin wünsche ich euch viel Spaß und eine gute Zeit.

Neuer Kommentar

Dein Name oder Pseudonym (wird öffentlich angezeigt)
Mindestens 10 Zeichen
Durch das Abschicken des Formulars stimmst du zu, dass der Wert unter "Name oder Pseudonym" gespeichert wird und öffentlich angezeigt werden kann. Wir speichern keine IP-Adressen oder andere personenbezogene Daten. Die Nutzung deines echten Namens ist freiwillig.