Skip to content
NextLytics
Megamenü_2023_Über-uns

Shaping Business Intelligence

Ob clevere Zusatzprodukte für SAP BI, Entwicklung aussagekräftiger Dashboards oder Implementierung KI-basierter Anwendungen - wir gestalten zusammen mit Ihnen die Zukunft von Business Intelligence. 

Megamenü_2023_Über-uns_1

Über uns

Als Partner mit tiefem Prozess-Know-how, Wissen der neuesten SAP-Technologien sowie hoher sozialer Kompetenz und langjähriger Projekterfahrung gestalten wir die Zukunft von Business Intelligence auch in Ihrem Unternehmen.

Megamenü_2023_Methodik

Unsere Methodik

Die Mischung aus klassischem Wasserfallmodell und agiler Methodik garantiert unseren Projekten eine hohe Effizienz und Zufriedenheit auf beiden Seiten. Erfahren Sie mehr über unsere Vorgehensweise.

Produkte
Megamenü_2023_NextTables

NextTables

Daten in SAP BW out of the Box bearbeiten: Mit NextTables wird das Editieren von Tabellen einfacher, schneller und intuitiver, egal ob Sie SAP BW on HANA, SAP S/4HANA oder SAP BW 4/HANA nutzen.

Megamenü_2023_Connector

NextLytics Connectoren

Die zunehmende Automatisierung von Prozessen erfordert die Konnektivität von IT-Systemen. Die NextLytics Connectoren ermöglichen eine Verbindung Ihres SAP Ökosystems mit diversen open-source Technologien.

IT-Services
Megamenü_2023_Data-Science

Data Science & Engineering

Bereit für die Zukunft? Als starker Partner stehen wir Ihnen bei der Konzeption, Umsetzung und Optimierung Ihrer KI-Anwendung zur Seite.

Megamenü_2023_Planning

SAP Planning

Wir gestalten neue Planungsanwendungen mithilfe von SAP BPC Embedded, IP oder  SAC Planning, die einen Mehrwert für Ihr Unternehmen schaffen.

Megamenü_2023_Dashboarding

Dashboarding

Mit unserer Expertise verhelfen wir Ihnen auf Basis von Tableau, Power BI, SAP Analytics Cloud oder SAP Lumira zu aussagekräftigen Dashboards. 

Megamenü_2023_Data-Warehouse-1

SAP Data Warehouse

Planen Sie eine Migration auf SAP HANA? Wir zeigen Ihnen, welche Herausforderungen zu beachten sind und welche Vorteile eine Migration bringt.

Business Analytics
Megamenü_2023_Procurement

Procurement Analytics

Transparente und valide Zahlen sind vor allem in Unternehmen mit dezentraler Struktur wichtig. SAP Procurement Analytics ermöglicht die Auswertung von SAP ERP-Daten in SAP BI.

Megamenü_2023_Reporting

SAP HR Reporting & Analytics

Mit unserem Standardmodell für Reporting von SAP HCM mit SAP BW beschleunigen Sie administrative Tätigkeiten und stellen Daten aus verschiedenen Systemen zentral und valide zur Verfügung.

Megamenü_2023_Dataquality

Data Quality Management

In Zeiten von Big Data und IoT kommt der Vorhaltung einer hohen Datenqualität eine enorm wichtige Bedeutung zu. Mit unserer Lösung für Datenqualitätsmanagement (DQM) behalten Sie stets den Überblick.

Karriere
Megamenü_2023_Karriere-2b

Arbeiten bei NextLytics

Wenn Du mit Freude zur Arbeit gehen möchtest und dabei Deine berufliche und persönliche Weiterentwicklung nicht zu kurz kommen soll, dann bist Du bei uns genau richtig! 

Megamenü_2023_Karriere-1

Berufserfahrene

Zeit für etwas Neues? Gehe Deinen nächsten beruflichen Schritt und gestalte Innovation und Wachstum in einem spannenden Umfeld zusammen mit uns!

Megamenü_2023_Karriere-5

Berufseinsteigende

Schluss mit grauer Theorie - Zeit, die farbenfrohe Praxis kennenzulernen! Gestalte bei uns Deinen Einstieg ins Berufsleben mit lehrreichen Projekten und Freude an der Arbeit.

Megamenü_2023_Karriere-4-1

Studierende

Du möchtest nicht bloß die Theorie studieren, sondern Dich gleichzeitig auch praktisch von ihr überzeugen? Teste mit uns Theorie und Praxis und erlebe wo sich Unterschiede zeigen.

Megamenü_2023_Karriere-3

Offene Stellen

Hier findest Du alle offenen Stellenangebote. Schau Dich um und bewirb Dich - wir freuen uns! Falls keine passende Stelle dabei ist, sende uns gerne Deine Initiativbewerbung zu.

Blog
NextLytics Newsletter Teaser
Hier für unseren monatlichen Newsletter anmelden!
Newsletter abonnieren
 

Apache Airflow für Erfassung von SAP BW/4HANA Änderungsdaten verwenden

Wenn Ihr Unternehmen wächst, wächst auch die Menge der Daten, die Sie anhäufen. Die Analyse der immer größer werdenden Datenmengen und die Gewinnung wertvoller Erkenntnisse daraus stellt jedes Datenteam vor große Herausforderungen: Die Verarbeitungszeiten und die Systemlast müssen so gering wie möglich gehalten werden und es muss sichergestellt werden, dass Ihre Data Pipelines sowohl planmäßig als auch fehlerfrei laufen. Die Verwendung von "Delta Loading" als Designprinzip für Data Pipelines kann dazu beitragen, Aktualität, Gültigkeit und Effizienz zu gewährleisten, sofern die Quellsysteme und Frameworks zur Datenverarbeitung diesen Ansatz unterstützen.

In diesem Beispiel wollen wir untersuchen, wie man mittels der Open-Source-Plattform für Workflow-Orchestrierung Apache Airflow eine Delta-Teilmenge von SAP BW-Daten, die über einen OData-Dienst bereitgestellt werden, verarbeiten kann. Während sich dieses Beispiel auf SAP BW konzentriert, sollte dieser Prozess in ähnlicher Weise auch für OData-Schnittstellen funktionieren, die von anderen SAP Systemen bereitgestellt werden.

Apache Airflow ist ein Open-Source-Orchestrierungsdienst, der häufig zur Erstellung, Planung und Überwachung von Data Pipelines verwendet wird. Mit ihm können Sie diese DAGs (Directional Acyclic Graphs) genannten Workflows mit der Programmiersprache Python erstellen.

Ein paar Worte zu OData

Die Bezeichnung OData steht für das Open Data Protocol, ein standardisiertes Protokoll zur Bereitstellung und Nutzung relationaler Daten als RESTful API, das ursprünglich von Microsoft im Jahr 2007 entwickelt wurde. Heutzutage ist die Version 4.0 bei OASIS standardisiert und als internationaler Standard anerkannt.

SAP BW ermöglicht die Nutzung des OData-Protokolls, um InfoProvider wie InfoCubes, DataStore-Objekte oder InfoObjects als OData-Dienste für Clients außerhalb von SAP bereitzustellen. Diese OData-Dienste können auf verschiedene Weise konfiguriert werden, unter anderem auch so, dass sie die Extraktion eines Deltas der angeschlossenen Datenquelle ermöglichen, wodurch der Benutzer die Änderungen in den Daten seit der letzten Datenextraktion abrufen kann. Dies ist eine große Hilfe bei der Arbeit mit Datenquellen, die große Datenmengen enthalten, da es dazu beiträgt, die Ausführungszeiten von Data Pipelines so gering wie möglich zu halten.

Verwendung des OData-Protokolls zur Extraktion von SAP BW-Daten

In diesem Artikel werden wir einen Airflow-DAG entwerfen, um den Inhalt eines SAP BW DataStore über den oben erwähnten OData-Provider zu extrahieren. Dieser DAG extrahiert den gesamten Inhalt des DataStore bei der ersten Ausführung, wobei alle vorhandenen Daten kopiert werden. In jedem weiteren Durchlauf wird anschließend nur das Delta geladen. In diesem Beispiel werden die extrahierten Daten in einer separaten Postgres-Datenbank gespeichert, mit einer zusätzlichen Tabelle, in der Metadaten über das Laden der Daten sowie der API-Endpunkt zum Extrahieren des Deltas für die nächste Prozessausführung gespeichert werden.

Wir werden die TaskFlow API von Airflow verwenden, um die DAG zu definieren und zu strukturieren, sowie die Python-Bibliotheken "Pandas" für die Verarbeitung von Datenobjekten, "SQLAlchemy" für die Verbindung mit der Postgres-Datenbank und "requests" für die Kommunikation mit dem OData-Dienst.

Der DAG selbst ist wie folgt strukturiert:

bild1_SAP Änderungsdaten

bild2_SAP Änderungsdaten

Bei der Initialisierung des DAG werden die Anmeldeinformationen für die Verbindungen sowohl mit dem OData-Dienst als auch mit der Postgres-Instanz aus den zuvor konfigurierten Airflow-Verbindungsobjekten geladen.

bild3_SAP Änderungsdaten

Im ersten Task wird die Struktur für die Metadatentabelle erstellt, in der die Pipeline-Ausführungen dokumentiert und die wichtigsten Metriken gespeichert werden.

Im zweiten Task werden wir diese Metadatentabelle mit SQL abfragen und das Feld "delta_url" aus der letzten Ausführung der Pipeline für diese OData-Quelle extrahieren. Dies wiederum ermöglicht es uns, das entsprechende Delta von unserem OData-Dienst zu erhalten. Wird diese Pipeline zum ersten Mal ausgeführt, ist dieser Wert nicht vorhanden, was den weiteren Prozessschritt darüber informiert, dass wir eine initiale Datenladung durchführen müssen.

bild4_SAP Änderungsdaten

Jetzt können wir mit der eigentlichen Datenextraktion beginnen.


Effektives Workflowmanagement mit
Apache Airflow 2.0 

NextLyitcs Whitepaper Apache Airflow DE


Interaktion mit der SAP BW OData API

Die OData-API eines SAP-Datenproviders ist als RESTful-API implementiert und stellt die Inhalte der HTTP-Antworten im JSON-Format bereit. Dies ermöglicht es uns, die Daten einfach einzulesen und die relevanten Felder für unseren Anwendungsfall zu extrahieren.

Um die Größe der Antwortmengen überschaubar zu halten, stellt diese API die Daten in einem paginierten Format bereit. Das heißt, wenn eine große Menge an Daten angefordert wird, enthält die erste Antwort nur eine Teilmenge dieser Daten sowie ein Feld mit einem anderen API-Endpunkt namens "__next", der die nächste Teilmenge an Daten enthält. Dies gilt auch für die erneute Abfrage des genannten Endpunkts, bis alle Daten übertragen wurden. In diesem Fall enthält die Antwort ein Feld namens "__delta", das den API-Endpunkt für die Abfrage des Deltas für die nächste Pipeline-Ausführung enthält.

Dieser Mechanismus ist für das Verständnis der Funktionsweise des nächsten Schritts der Data Pipeline relevant, da nur durch die iterative Abfrage der OData-API sichergestellt werden kann, dass alle abzufragenden Daten extrahiert werden, ohne die Systemleistung zu beeinträchtigen oder Datenverluste aufgrund von HTTP-Anfrage-Timeouts zu riskieren.

Der folgende Task führt die Datenextraktion aus, wobei dieser Vorgang geringfügig variiert, abhängig davon, ob der Datenprovider zum ersten Mal extrahiert wird oder nur ein Delta der Daten verarbeitet wird.

In beiden Fällen liefert dieser Vorgang sowohl einen Pandas-Dataframe, in dem die Daten enthalten sind, als auch den API-Endpunkt zur Abfrage des Deltas bei der nächsten Pipeline-Ausführung.

Die Interaktion mit dem OData-Dienst selbst funktioniert wie folgt:

bild5_SAP Änderungsdaten

Dadurch wird die Antwort auf die ursprüngliche Anfrage als Dataframe geladen, und wir können mit dem Verarbeiten der Daten fortfahren.

bild6_SAP Änderungsdaten

Dieser Teil des Codes extrahiert iterativ die paginierten Daten und fügt sie an einen Datenframe an. Außerdem wird eine separate Metadatenspalte hinzugefügt, in welcher der Abrufzeitpunkt der Daten dokumentiert wird.

Diese Daten können dann in unsere Zieldatentabelle geschrieben werden. Im Falle einer initialen Datenübertragung müssen lediglich alle Daten eingefügt werden. Wird dagegen ein Delta-Load ausgeführt, muss ein Upsert*-Mechanismus vorhanden sein, der das Schreiben der Datenbank für neu eingefügte Daten sowie für die seit der letzten Pipeline-Ausführung aktualisierten oder gelöschten Zeilen übernimmt.
(*Der Begriff "Upsert" ist ein Kofferwort aus der Kombination der Wörter "Update" und "Insert".)

Um korrekt zu ermitteln, zu welcher Kategorie die Daten gehören, können wir das Feld "ODQ_CHANGEMODE" nutzen, das Teil der Delta-Load-Antwort ist, die wir vom OData-Dienst erhalten haben. Diese Werte können "D" für gelöschte Zeilen, "C" für neu erstellte Zeilen und "U" für aktualisierte bestehende Zeilen sein.

bild7_SAP Änderungsdaten

Jetzt müssen nur noch die voneinander getrennten Dataframe-Objekte in die Zieldatenbank geschrieben werden, wobei die jeweils auszuführende Operation zu berücksichtigen ist.

Dokumentieren von Datenverarbeitungsprozessen mit relevanten Metadaten

Nachdem unsere Daten nun geschrieben wurden, besteht der letzte Schritt darin, einen Eintrag in der Metadatentabelle zu erstellen, die wir zu Beginn dieses DAGs angelegt haben. Zu diesem Zweck haben wir die Anzahl der eingefügten, aktualisierten und gelöschten Zeilen sowie den API-Endpunkt für den nächsten Delta-Load erfasst.

Apache Airflow für die Erfassung von SAP Änderungsdaten - Unser Fazit

In diesem Beispiel haben wir die Leistungsfähigkeit des OData-Standards sowie die Möglichkeiten untersucht, wie Sie Apache Airflow verwenden können, um Ihre Data Pipelines zu strukturieren. Dieser Prozess gilt nicht allein für die OData-Dienste von SAP BW und kann auf ähnliche Weise auch für andere SAP-Produkte wie SAP S/4HANA eingesetzt werden.

Die mit dieser Pipeline gesammelten Daten können nun verwendet werden, um weitere betriebswirtschaftliche Erkenntnisse zu gewinnen. Wir könnten zum Beispiel Verkaufsdaten für ein bestimmtes Produkt verwenden, um ein optisch ansprechendes Dashboard mit Apache Superset zu gestalten.

Den gesamten Code für diese DAG finden Sie hier. Wenn Sie Fragen zu dieser Implementierung haben oder wenn Sie sich fragen, wie Sie Apache Airflow nutzen können, um Ihr datengetriebenes Geschäft zu optimieren, helfen wir Ihnen gerne. Kontaktieren Sie das Data Science and Engineering Team bei Nextlytics noch heute.

Erfahren Sie mehr über Apache Airflow

, ,

avatar

Robin Brandt

Robin Brandt ist Berater für Machine Learning und Data Engineering. Durch langjährige Erfahrung im Software und Data Engineering bringt er Expertise in den Bereichen Automatisierung, Datentransformation und Datenbankmanagement mit - speziell im Bereich der Open Source Lösungen. Seine Freizeit verbringt er mit Musizieren oder dem Kreieren scharfer Gerichte.

Sie haben eine Frage zum Blog?
Fragen Sie Robin Brandt

Gender Hinweis Aufgrund der besseren Lesbarkeit wird im Text das generische Maskulinum verwendet. Gemeint sind jedoch immer alle Menschen.

Blog - NextLytics AG 

Welcome to our blog. In this section we regularly report on news and background information on topics such as SAP Business Intelligence (BI), SAP Dashboarding with Lumira Designer or SAP Analytics Cloud, Machine Learning with SAP BW, Data Science and Planning with SAP Business Planning and Consolidation (BPC), SAP Integrated Planning (IP) and SAC Planning and much more.

Informieren Sie mich über Neuigkeiten

Verwandte Beiträge

Letzte Beiträge