Eine validierte Ausgabe nützt nur dort, wo jemand sie erreicht.

Das Ausliefern ist das unglamouröseste Drittel der Plattform und dasjenige, das am ehesten stillschweigend überverkauft wird. Manche Ziele sind einfach. Manche erzeugen Nebenwirkungen in einem System, das seine eigenen Vorstellungen hat. Wir behandeln das unterschiedlich, und wir sagen, was wovon gilt.

Ziele

Vier Formen, aufsteigend danach, wie viel schiefgehen kann.

Eine Tabelle in einem Warehouse

Die Ausgabe landet als Datensatz, den Ihre vorhandenen Werkzeuge ohnehin abfragen. Nichts Nachgelagertes muss wissen, dass es Beetl gibt.

Das ist der Standardfall, und für die meisten Projekte ist es auch die richtige Antwort.

Eine Datei oder ein Object-Storage-Batch

Für Übergaben an Systeme, die eine Ablage bevorzugen, oder an einen Partner, der eine Datei nach Zeitplan möchte.

Beim Schreiben gegen den Vertrag geprüft, damit ein fehlerhafter Batch hier scheitert und nicht im Importer von jemand anderem.

Ein Dashboard, oder eine Frage in normaler Sprache

Eingebettete Dashboards über der kuratierten Ausgabe, und Abfragen in natürlicher Sprache gegen validierte Datensätze, bei denen die Quelldatensätze an der Antwort hängen bleiben.

Berichte sind ein Ziel für integrierte Daten. Sie sind nicht das Produkt, und ein Dashboard auf einer Pipeline, für die sich niemand zuständig fühlt, ist nur Schuld mit hübscherer Oberfläche.

Eine Staging-Datenbank im Besitz des Kunden

Wenn das empfangende System seinen eigenen Import fahren möchte, bereiten wir die Daten auf, gleichen sie ab und übergeben sie an der Grenze.

Oft die sicherste Variante, wenn das Ziel ein ERP mit klaren Vorstellungen davon ist, wie Datensätze hineinkommen.

Kuratierte Ausgabe

Die Ausgabe ist abfragbar, und die Antwort trägt ihre Herkunft mit.

Sobald eine Pipeline einen validierten Datensatz erzeugt hat, lässt er sich direkt abfragen, in ein Diagramm bringen oder in normaler Sprache befragen. Der Punkt ist nicht das Diagramm. Der Punkt ist, dass sich die Zahl zurückverfolgen lässt.

1Abfragen laufen gegen den kuratierten Datensatz, nicht gegen das Quellsystem.
2Ergebnisse sind dauerhafte Artefakte und keine flüchtige Ansicht.
3Diagramme entstehen serverseitig, damit ein geteiltes Ergebnis dasselbe Ergebnis ist.
Beetls Abfrage-Editor mit einer SQL-Abfrage gegen einen kuratierten Datensatz, den zurückgegebenen Zeilen und einem daraus gebauten Diagramm.
Abfrage-Editor über einer validierten Ausgabe, mit serverseitigen Diagrammen.
Dashboards

Ein Dashboard ist ein Ziel, nicht das Produkt.

Wo eine wiederkehrende Ansicht das ist, was das Geschäft tatsächlich braucht, bauen wir sie auf der kuratierten Ausgabe statt auf einer direkten Verbindung zu einem Quellsystem. Der Unterschied zählt beim ersten Mal, wenn jemand fragt, woher eine Zahl kommt.

1Auf dem validierten Datensatz gebaut, damit Dashboard und Warehouse schon von der Konstruktion her übereinstimmen.
2Mandantentrennung, damit ein geteiltes Dashboard jedem Kunden nur die eigenen Zeilen zeigt.
Ein eingebettetes Dashboard auf einem kuratierten Beetl-Datensatz mit zwei Diagrammen zu Verschleißraten in der Fertigung.
Eingebettetes Dashboard über einer validierten Ausgabe.

Zurückschreiben in ein laufendes System

Das ist der ehrliche Teil. Wenn das Ziel ein Warehouse, eine Datei oder eine Staging-Tabelle ist, ist das Ausliefern ein gelöstes Problem, und wir behandeln es auch so. Wenn das Ziel eine laufende API oder ein ERP ist, ist es das nicht, und der Grund gehört klar gesagt.

Ein entferntes System kann in der Regel keine Transaktion über mehrere Aufrufe hinweg anbieten. Ein Aufruf gelingt, ein späterer scheitert, und ein Rollback existiert womöglich gar nicht. Das sicher zu handhaben braucht ein Auslieferungsjournal: eine stabile Kennung je Eingabedatensatz, festgehaltene Antwortwerte, Idempotenzschlüssel, Versuchszähler und einen sichtbaren Zustand für endgültiges Scheitern.

Wir haben das entworfen und wir haben es nicht ausgeliefert. Bis dahin bevorzugen wir Übergaben per Warehouse, Datei oder Staging, wo immer das Ziel es zulässt, und wir verringern das Risiko, indem wir gegen die quellgetreue Kopie abgleichen, statt darauf zu vertrauen, dass ein Ladelauf durchgegangen ist.

Was wir nicht tun werden, ist zustandsbehaftetes Ausliefern so zu beschreiben, als wäre es fertig. Es ist das mit Abstand am leichtesten zu überverkaufende Stück in dieser Kategorie, und der Schaden landet in Ihren Daten, nicht in unseren.

Sagen Sie uns, wo die Daten ankommen müssen.

Das Ziel entscheidet meistens darüber, wie schwierig ein Projekt wird. Es ist das Erste, was wir abstecken.