Als IT-Spezialist und Open-Source-Enthusiast brenne ich für innovative Lösungen, die wirklich etwas bewegen. Heute möchte ich euch von einem spannenden Projekt berichten, bei dem wir unsere Leidenschaft für effiziente Datenverarbeitung und -migration mit Dagster entfesseln konnten.
Die Herausforderung: Migration von Altdaten
Für Wormatia Worms, einem traditionsreichen Fußballverein, stand eine signifikante Transformation an. Die alte Admin-Tool-Infrastruktur musste aktualisiert und die Daten in ein modernes System überführt werden: Pimcore. Das Ziel war es, eine zuverlässige, wiederholbare und kontinuierliche Migration zu gewährleisten, die den Ansprüchen an Aktualität und Korrektheit gerecht wird. Das alte Admin-Tool wurde jetzt viele Jahre genutzt und der Vereinsarchivar Christian Bub hatte viele Zausend Datensätze in das aus heutiger Sicht nicht mehr so zeitgemäße System eingepflegt. Die Daten sollten nun in ein modernes System überführt werden, um sie für die Zukunft zu sichern und besser zugänglich zu machen. Bei der Migration sollten im Besten Fall auch noch die Datenqualität verbessert und die Daten in ein einheitliches Format gebracht werden. Auf keinen Fall sollten wichtige Daten verloren gehen da das Wormatia Archiv eine wichtige Quelle für die Historie des Vereins ist und in Deutschland mit zu den Besten seiner Art gehört.
Der innovative Ansatz: Die Dagster Asset Pipeline
Um die Migration der Daten zu ermöglichen, entschieden wir uns für Dagster. Eine Asset-Pipeline erschien als optimaler Ansatz, um die erforderliche Kontrollierbarkeit und Transparenz zu erreichen. Die Datenreise begann mit dem Abrufen der Informationen aus der Legacy-API mittels einer REST-Schnittstelle. Daraufhin übernahm Dagster und transformierte die Daten.
Auch die Abhängigkeiten der Daten haben wir in der Pipeline berücksichtigt. So mussten z. B. erst Vereinsdaten und Saisoninformationen importiert werden, bevor die Spielerdaten importiert werden konnten. Insgesamt gab es einen ganzen Baum an Abhängigkeiten. Hier half Dagster uns, die Daten in der richtigen Reihenfolge zu importieren und dies auch zu visualisieren.
Ein Problem war auch die Datenqualität, da die Datenbank des alten Systems nicht immer konsistent war. Inkonsistent waren teilweise auch die Encodings der Daten. Hier halfen uns die Möglichkeiten von Dagster, die Daten zu bereinigen und zu validieren. Die Daten wurden über bestimmt 15 Jahre in verschiedenen Systemen und MySQL-Versionen gespeichert.
Früher hatte man auch gerne PHP-Hacks wie mehrfache utf8_decode / utf8_encode
-Funktionen
Datenvalidierung und Transformation
In der Dagster Asset Pipeline wurden die Daten nicht nur transformiert. Ein kritischer Teil des Prozesses war die Validierung der Datenintegrität – ein entscheidender Aspekt bei Migrationen, der schnell übersehen wird, aber enorm wichtig für fehlerfreie Datenstrukturen ist.
Dadurch, dass Dagster die Daten materialisiert, konnten wir die Datenqualität in jedem Schritt überprüfen und sicherstellen, dass die Daten korrekt und konsistent sind. Dies war besonders wichtig, da die Daten aus verschiedenen Quellen stammten und in einem neuen System zusammengeführt wurden. Das Tolle an dem Konzept der Datenmaterialisierung ist, dass wir die Daten nicht immer von der Legacy-API abrufen mussten, aber trotzdem neue Prüfungen (auch nachträglich) hinzufügen konnten. So konnten wir z. B. Dubletten erkennen und bereinigen. Auch die falsch kodierten Daten konnten wir so sukzessive bereinigen.
Zur Transformation der Daten haben wir auch auf externe Bibliotheken zurückgegriffen. So haben wir z. B. die Daten in ein einheitliches Format gebracht, indem wir soweit wie möglich Pandas verwendet haben. Pandas ist eine Python-Bibliothek, die Datenstrukturen und -analysewerkzeuge bereitstellt, aber auch einfache Transformationen ermöglicht.
Nach der Transformation und Bewertung in der Asset Pipeline wurden die Daten über eine GraphQL-Schnittstelle an Pimcore übermittelt. Hier lag der Fokus auf einer kontinuierlichen und wartbaren Bereitstellung. Dank unseres Pipelinesystems konnten wir den Prozess nicht nur schrittweise, sondern auch kontinuierlich im Hintergrund, etwa durch einen Cronjob, aktualisieren.
Aber auch der Beste Prozess ist nur so gut wie die Daten, die er verarbeitet. Daher haben wir auch die Datenqualität in Pimcore überprüft und sicher gestellt, dass die Daten auch in Pimcore korrekt und konsistent sind. Hier war Christian Bub eine große Hilfe, da er die Daten sehr gut kennt und mich bei der Validierung und Transformation super unterstützt hat.
WordPress-Integration
Sobald die Daten in Pimcore bereitgestellt waren, war der nächste Schritt die Integration auf der Webseite von Wormatia Worms, die auf WordPress basiert. Dazu entwickelten wir ein Plugin, das die GraphQL-Daten direkt einbindet – ein echtes Highlight, das die Flexibilität von WordPress mit der Leistungsfähigkeit von Pimcore vereint. Die Daten können über einen WordPress-Shortcode oder visuell über ein Gutenberg-Element direkt integriert werden.
Ein weiteres Ziel war es, die GraphQL-Schnittstelle so zu erweitern, dass sie voraggregierte Statistiken und Daten bereitstellt. Dies optimierte die Effizienz erheblich und ermöglichte es, auch den Wormatia-Liveticker, eine Eigenentwicklung, nahtlos mit Pimcore zu verbinden.
Fazit: Ein iterativer und skalierbarer Migrationsprozess
Dieses Projekt hat gezeigt, wie wir durch modernen Technikeinsatz nicht nur bestehende Prozesse verbessern, sondern ganz neue Möglichkeiten der Datenintegration schaffen können. Die Kombination aus Dagster und Pimcore stellt sicher, dass Wormatia Worms für die Zukunft gerüstet ist, und bringt zugleich die Innovationskraft, die für nachhaltigen Erfolg nötig ist.
Benötigt ihr ähnliche Lösungen oder habt Fragen zu Dagster und integrativen Plattformen? Lasst es uns wissen – wir teilen gern unsere Erfahrungen!