Über einen weniger bekannten Weg, die Qualität von ETL-Prozessen zu erhöhen

etl-title

Qualitätssicherungsmaßnahmen

Testen ist ein wesentlicher Aspekt des Lebenszyklus eines jeden Softwareproduktes. Klassischerweise wird die Qualität von Software durch Software- und Integrationstests überprüft. Im Umfeld des Data Warehouse sind häufig Entwicklertests, Fachtests und Abnahmetests vorzufinden. In der Anwendungsentwicklung, z.B. im Java-Umfeld, sind auch Modultests und die Analyse der Codequalität vorzufinden.

Policies können die Grundlage von qualitativer Software bilden, da gemeinsame Programmstandards die Softwarequalität erhöhen. Eine statische Codeanalyse ermöglicht die Wiederverwendung von Analysen, unabhängig vom fachlichen Rahmen. Dies ermöglicht die automatisierte Analyse bereits zu einem frühen Zeitpunkt der Entwicklung. Mit der Einführung einer kontinuierlichen, automatischen Validierung können „Technische Schulden" durch eine transparente Darstellung vermieden werden.

Dieser Artikel beschreibt ein Vorgehen, mit dem zu jedem Zeitpunkt der Entwicklung einer Datenverarbeitungstrecke die Entwicklungsqualität standardisiert überprüft werden kann. Dabei können sowohl unternehmensinterne Policies, allgemeine Fehler, sowie Best Practices automatisiert analysiert werden.
In den meisten Fällen ist die Entwicklungsumgebung im Vergleich zur Integrations- und Produktionsumgebung weniger gut ausgestattet. Aus diesem Grund ist es für die Entwicklung nicht möglich, auf einer Datenbasis zu arbeiten, die in Umfang und Komplexität mit dem Produktionsdatensatz vergleichbar ist. Eine Analyse der Softwarequalität bietet daher eine gute Ergänzung zum klassischen Vorgehen.

Abbildung 1: Effiziente Qualitätssicherung im DWH
Bei der Qualitätssicherung ist das strategische Ziel, die Gesamtkosten zu minimieren. Um das Optimum der Gesamtkosten zu erreichen, ist der Aufwand, der in die Qualitätssicherung fließt, im richtigen Maß anzuwenden (siehe Abbildung 1). Dadurch können die Gesamtkosten in langfristiger Betrachtung reduziert werden.

Es wird empfohlen, die Qualitätssicherung unmittelbar an der Quelle der möglichen Fehler durchzuführen. Neben dem Einsatz von Tests gibt es zahlreiche weitere Möglichkeiten von Qualitätssicherungsmaßnahmen, die eingesetzt werden können. Im Folgenden werden Qualitätssicherungsmaßnahmen durch die automatisierte Überprüfung von unternehmensinternen Policies behandelt. Das Ziel ist es, Fehler bereits frühzeitig zu entdecken, also bereits vor klassischen Tests oder Regressionstests. Eine Automatisierung ist hierbei unabhängig vom Vorgehensmodell.

Die Vorteile dieses Vorgehens sind:
  • Ein standardisiertes Verfahren zur Validierung von ETL-Jobs
  • Validierungen sind unabhängig vom fachlichen Kontext wiederverwendbar, wodurch der Aufwand im Vergleich zu fachlichen Tests kleiner ist
  • Eine qualitätsüberwachte Entwicklung von Anfang an
  • Alle Verarbeitungen können zu jedem Entwicklungszeitpunkt analysiert werden

RisikEN

Welche Risiken existieren in einem Unternehmen, bevor eine softwaregestützte Policy-Überprüfung durchgeführt wird? Aus einer nicht repräsentativen Umfrage lässt sich schließen, dass das Risiko von Softwarefehlern und Verstößen von Policies zwar hoch, jedoch abhängig vom spezifischen Umfeld ist. Das Risiko, welches durch die Validierung vermindert werden soll, wird als hoch bis extrem bewertet [1]. Daraus folgt, dass eine API zur Qualitätsanalyse und Überprüfung von unternehmensinternen Policies im Fall der untersuchten Fehlerbilder sinnvoll ist [2]. Es zeigte sich, dass der Mehrwert für ein einzelnes Unternehmen sehr unterschiedlich ausfällt.

Die folgenden Softwarefehler fallen in Abhängigkeit des Umfelds mehr oder minder gravierend aus. Eine spezifische Betrachtung im eigenen Projekt kann den individuellen Mehrwert der Verwendung einer Qualitätsanalyse in Datenverarbeitungsprozessen ergeben.

Arten von Validierungen und Policies  

Es gibt verschiedene Arten von Richtlinien, allgemeinen Fehlern und Policies, die mittels Qualitätsanalysen in Datenverarbeitungsprozessen analysiert werden können. Diese lassen sich generalisiert in die Kategorien „Standardprozesse und Vereinheitlichung" sowie „Erkennung von typischen Fehlerbildern" gliedern. Eine sinnvolle Fokussierung kann hier im Bereich „typische Fehlerbilder" durchgeführt werden, da dieser eine indirekte Vereinheitlichung folgen kann. Eine Analyse zur Überprüfung der Einhaltung von Standardprozessen und Vereinheitlichungen ist sinnvoll aufbauend auf den zuvor erstellten Validierungen zu konzeptionieren und zu entwerfen.

Kategorien:

  1. Standardprozesse und Vereinheitlichung
  2. Abbilden von typischen Fehlerbildern
     a) Abbildung und Fehlererkennung vollständig möglich
     b) Abbildung und Fehlererkennung gut möglich
     c) Abbildung und Fehlererkennung teilweise möglich
     d) Abbildung und Fehlererkennung nicht möglich

Der Aufwand der Fehlererkennung, kann sehr unterschiedlich ausfallen. Eine Implementierung ist jeweils vom Nutzen individuell abhängig zu machen. Die Fälle, die unter Kategorie d) fallen, sind generell auch implementierbar, jedoch ist das Verhältnis von Nutzen und Aufwand im Allgemeinen schlechter, da sie nur mit Prämissen umsetzbar sind. Eine Implementierung ist daher nur sinnvoll, wenn das Fehlerbild mit einem hohen oder sehr hohen Risiko einher geht.

Mit softwaregestützter Analyse von ETL-Verarbeitungen zur Überprüfung wird festgestellt, ob derartige Policies eingehalten werden. Das Ziel ist es, dem Unternehmen eine Möglichkeit zu geben, ETL-Verarbeitungen zu testen und zu verbessern.

API

Ein Vorteil einer API zur Qualitätsanalyse und Überprüfung von Policies von ETL-Verarbeitungen ist die Möglichkeit der vielfältigen Integration in andere Services. Die Konzeption der API sollte darauf ausgelegt sein, möglichst generalisierte Aspekte zu berücksichtigen, mit dem Ziel, neue Policies möglichst einfach umzusetzen. Eine Implementierung einer solchen API stelle ich in meinem Artikel „GraphlQL API zur kontinuierliche Qualitäesanalyse von Datenverarbeitungsprozessen" vor.

An dieser Stelle lässt sich fragen: Inwieweit kann eine API die Qualität von ETL Verarbeitungen erhöhen und das Risiko von Softwarefehlern reduzieren?
Zunächst einmal ist festzustellen, dass eine API die Qualität von Datenverarbeitungsprozessen verbessern kann und infolgedessen das Risiko von Softwarefehlern reduziert werden kann. Besonders die Möglichkeit, zu einem früheren Zeitpunkt der Entwicklung die Qualität von Softwareentwicklungen zu verbessern, wirkt sich langfristig positiv aus. Am Ende ist jedoch entscheidend, wie mit der API oder der Analysesoftware umgegangen wird, denn davon ist der Mehrwert letztlich abhängig.

Qualitätsanalyse von Datenverarbeitungsprozessen  

Bei der softwaregestützten Qualitätsanalyse werden die Meta-Daten eines Datenverarbeitungsprozesses analysiert. Abhängig vom eingesetzten ETL-Tool können die Meta-Daten auf verschiedenen Wegen der Analysesoftware bereitgestellt werden. Hierbei ist wichtig, dass die Meta-Daten sich in einem konsistenten Zustand befinden.

Im Validierungsvorgang wird zwischen dem sequenziellen Abarbeiten der Validierungsregeln, in dem für jede Regel Meta-Daten neu geladen werden, und dem Laden der Meta-Daten in ein logisches Modell auf Seite der Analysesoftware unterschieden. Letzteres hat besonders bei einer hohen Anzahl an Prüfungen Performance-Vorteile.

Bei der Integration in eine (vorhandene) CI/CD-Pipeline kann eine kontinuierliche Qualitätsanalyse von ETL-Verarbeitungen die Qualität der Verarbeitungen signifikant verbessern. Ebenfalls wird durch die automatische Erkennung möglicher Fehler das Risiko von Softwarefehlern im Endprodukt gemindert.

Unterstützungspotenzial in der Praxis  

Im Folgenden wird das Unterstützungspotenzial für die Praxis betrachtet. Eine Implementierung ermöglicht eine Reduzierung des Risikos. Im Artikel „GraphlQL API zur kontinuierliche Qualitäesanalyse von Datenverarbeitungsprozessen" wird eine Implementierung für ETL-Verarbeitungen mit „IBM DataStage" exemplarisch dargestellt. Für untersuchte Policies und Prüfungen ist das Risiko ohne weitere Gegenmaßnahmen im inakzeptablen Bereich. Eine Reduzierung der Fehler ist mittels einer automatisierten Validierung von ETL-Jobs möglich, was die Qualität dieser erhöht, und dadurch das Unternehmensrisiko senkt. Die befragten ETL-Entwickler gaben an, dass sie die automatisierte Validierung von ETL-Verarbeitung für sinnvoll halten. Die Praxis zeigte, dass eine API zur Qualitätsanalyse und zur Überprüfung von Policies sinnvoll ist.

Umfrage: Halten Sie eine automatisierte Validierung von ETL-Jobs für sinnvoll?


Eine derartige API kann an verschiedenen Stellen im Softwarelebenszyklus einer ETL-Verarbeitung angewendet werden. Die Ergebnisse der Überprüfung dienen dem Entwickler als direktes Feedback; sowohl bei der Erstentwicklung der Verarbeitung als auch bei Weiterentwicklungen. Ebenfalls ist es möglich, regelmäßige Überprüfungen der Verarbeitungen durchzuführen, wenn neue Prüfungen implementiert oder konfiguriert wurden, oder bestehende Prüfungen angepasst werden. Als Ergebnis sieht der Anwender sofort, ob eine bestehende Verarbeitung Policy-Verletzungen aufweist. Dadurch profitieren auch vorhandene Verarbeitungen durch aktualisierte Prüfungen.

Fazit

Zusammenfassend kann festgestellt werden, dass eine API zur Qualitätsanalyse und zur Überprüfung von Policies sinnvoll ist. Die Einsatzgebiete sind sehr flexibel und können auf die jeweiligen Bedürfnisse angepasst werden. Wenn diese kontinuierlich verwendet wird, beispielsweise in einer CI/CD-Pipeline, können die Vorteile besonders gut zum Tragen kommen und damit die Verarbeitungsqualität überwacht und verbessert werden.

QuelleN

[1] Cossijns M. (2020): Konzeption und Implementierung einer API zur Qualitätsanalyse und Überprüfung von unternehmensinternen Policies von ETL-Jobs; S. 53

[2] Cossijns M. (2020): Konzeption und Implementierung einer API zur Qualitätsanalyse und Überprüfung von unternehmensinternen Policies von ETL-Jobs; S. 64

By accepting you will be accessing a service provided by a third-party external to https://blog.ordix.de/