Ich wünsche allen ein Frohes Neues Jahr!

Dieser Post stellt meine Meinung zum Thema Echtzeitfähigkeit dar, ich bin mir darüber bewusst, dass nicht jeder der gleichen Meinung sein kann. Bestimmt gibt es auch Bereiche, die derzeit keinen Bedarf an Echtzeit-Daten haben. Allerdings kann ich mich auch noch daran erinnern, wie vor vielen Jahren viele Menschen bezweifelt haben jemals einen Computer oder das Internet zu brauchen. Ich bin der Meinung, das echtzeitfähige Systeme einfach der Stand der Technik werden müssen.

Doch zuallerst, was meine ich eigentlich mit echtzeitfähig? Aus meiner Sicht ist es das Gegenteil von Batchorientiert. Während bei einem Batchsystem die Daten in bestimmten Zyklen aktualisiert werden, typischerweise täglich oder monatlich, wird ein Echtzeitsystem aktualisiert, sobald sich an der Quelle Änderungen ergeben. Es sollte allen unmittelbar einleuchten, dass Übertragungs- und Verarbeitungszeiten trotzdem zu Verzögerungen führen, Echtzeit also nicht Gleichzeitig bedeutet. Aber Echtzeit bedeutet zumindest, dass man als Anwender den Aktualisierungen der Daten ‘zuschauen’ kann. Man muss nicht darauf warten das die Verarbeitung abgeschlossen wurde um dann z.Bsp. den Report erneut anzustoßen. Auch die Frage ‘Welchen Stand haben die Daten denn?’ sollte sich bei einem echtzeitfähigem System erübrigen. Ich gehe später darauf ein, dass es im Detail etwas komplizierter ist.

Ob man Daten als das neue Öl, oder das neue Gold bezeichnen will oder der Meinung ist Vertrauen ist die neue Währung, ist für die Forderung nach Echtzeitfähigkeit übrigens völlig egal. Die Daten verlieren mit der Zeit an Wert, es handelt sich um verderbliche Ware. Und auch das Vertrauen von Kunden gewinnt man nicht mit veralteten Daten. Stellt euch einmal vor die Amazon Einkaufsempfehlungen würden immer erst nach 1 Monat die bereits getätigten Einkäufe berücksichtigen. Schnelle bzw. kurzlebige Trends könnten möglicherweise gar nicht für die Empfehlungen berücksichtigt werden. Es ist sicherlich kein Zufall, dass kein einziges der Unternehmen, die heute Datengiganten sind (Google, Facebook, Twitter, etc…) für die Implementierung auf ein klassisches batchorientiertes DWH gesetzt hat.

Darüber hinaus steigt die Erwartung von Kunden immer mehr in Richtung Echtzeit, eben auch weil einige Konzerne das bereits umgesetzt haben. Im Bereich der Finanzwirtschaft ist auch deutlich zu bemerken, dass Aufseher/Regulator immer mehr dahin kommen die Daten von ‘Jetzt’ sehen zu wollen. Überweisungen werden nicht mehr nur über Nacht ausgeführt, trotzdem muss die Geldwäscheerkennung und die Betrugsprävention funktionieren um größere Schadenssummen zu vermeiden.

Ich habe allerdings schon sehr viele Argumente gehört, warum man keine Echtzeitfähigkeit benötigt.

“Das wurde vom Kunden nicht angefordert”: Das stimmt wahrscheinlich sogar, aber wurde denn der Batchbetrieb vom Kunden angefordert? Fordert der Kunde denn eine zukunftsfähige Architektur überhaupt explizit an? Oft steckt in den Anforderungen auch eine Verquickung von echten fachlichen Anforderungen und bekannten technischen Restriktionen. D.h. es ist sogar möglich, dass der Batchbetrieb wie ein unumstößliches Ding betrachtet wird, und Dinge die einen Echtzeitbetrieb erfordern gar nicht erst angefordert werden. Und mir ist es noch nie passiert, dass ein Kunde die Daten nicht so ‘aktuell wie möglich’ haben will. Batchsysteme sind in der Vergangenheit ein Kompromiss aus Kosten und Nutzen gewesen. Echtzeitfähigkeit um jeden Preis ist natürlich kein Erfolgskonzept. Das Ganze muss wirtschaftlich bleiben.

“Alle unsere DWHs sind batchorientiert, und das ist bis jetzt auch gut”: Das klingt in meinen Ohren nicht nach Innovation. Wenn es aber die Strategie des Unternehmens ist, bei der Digital Transformation mit zu machen, dann ist die Erhaltung des Status Quo nicht genug. Ich bin auch davon überzeugt, dass wenn sich Anwender an die Echtzeitfähigkeit ihrer Datenplattform gewöhnt haben, der alte Batchbetrieb praktisch unmittelbar in Vergessenheit gerät.

“Manche Aufgaben sind vom Typ her Batch”: Hier wird gerne als Beispiel der Bilanzabschluß genannt. Aber das ist aus meiner Sicht ein Trugschluss, denn keine Aufgabe ist vom Typ her nur für Batch geeignet. Aber es gibt Aufgaben, die sind auf einen bestimmten Stand der Daten angewiesen und darauf dass der Stand konsistent ist. Doch wenn ich jederzeit später in der Lage bin, die Daten wie sie am 01.01.2020 um 00:00:00 an der Quelle vorgelegen haben wieder abzufragen und für einen Report zu nutzen, dann ist es auch kein Problem wenn schon am 01.01.2020 00:02:00 die erste Aktualisierung verarbeitet wird. Ich brauche immer auch den Zeitpunkt wann die Änderung in der Quelle passiert, dann kann ich Zeitreihen auf der Datenplattform vorhalten. Aber ein Batchbetrieb ist dafür nicht notwendig.

“Die Quellsysteme schicken die Daten aber im Batchbetrieb”: Das ist meist richtig, und auch wenn es etliche Lösungen gibt, die Daten von praktisch allen Platformen ‘Online’ auf die Datenplatform zu replizieren, ist es unwahrscheinlich, dass nur weil die Datenplatform jetzt echtzeitfähig ist, direkt auch alle Quellsysteme umgestellt oder umgebaut werden. Eine echtzeitfähige Datenplattform muss entsprechend auch mit eine Batchbelieferung klar kommen.

“Wir haben niemanden der das designen oder entwickeln kann”: Auch hier ist ein valides Argument, aber das sollte nicht das entscheidende Argument sein. Hier kann man auch externes Know-How einkaufen (etwas wovon auch ich lebe als IT Berater), oder in Training für die Mitarbeiter investieren, oder beides. Ein Unternehmen, bei dem sich die Mitarbeiter nicht weiterentwickeln, kann nicht (dauerhaft) innovativ sein. Die sog. Unternehmenskultur ist hier wichtig.