Beschreiben der Datenbereitstellung

Objective

After completing this lesson, you will be able to erläutern Sie die wichtigsten Konzepte der Datenbereitstellung.

Datenbereit- stellung

Einführung

Die Datenbereitstellung ist ein sehr weiter gefasster Begriff und bezieht sich auf den Import von Daten aus einem Quellsystem in ein Zielsystem. Die Worterfassung wird bevorzugt und nicht das Laden von Daten, da Daten importiert werden können, ohne sie physisch in ein Zielsystem laden zu müssen. Mit technologischen Fortschritten wird das Verschieben von Daten in einem Unternehmen immer seltener. Es ist oft viel einfacher, die Daten remote zu lesen.

Es gibt viele Gründe, warum eine Datenbereitstellung erforderlich ist. Dazu gehören:

  • Daten aus Geschäftsanwendungen extrahieren und in ein zentrales Data Warehouse laden
  • Echtzeitzugriff auf Datenquellen für Analysen
  • Daten aus einem zentralen System in regionale Systeme verteilen
  • Daten aus mehreren Systemen in einem zentralen System konsolidieren
  • Systeme synchron halten
  • Daten aus einem Altsystem in ein neues System migrieren

In den einfachsten Datenbereitstellungsszenarien sind nur zwei Systeme beteiligt: die Quelle und das Ziel. Oft sind jedoch mehrere Systeme beteiligt. Sie möchten beispielsweise Daten aus mehreren Quellsystemen in einem einzigen Zielsystem kombinieren. Es könnte auch umgekehrt sein: ein einzelnes Quellsystem, das seine Daten an mehrere Zielsysteme verteilt. Und schließlich können wir sogar eine Kombination aus beidem haben: mehrere Quellsysteme, die Daten konsolidieren und an mehrere Zielsysteme verteilen.

Starten Sie das folgende Video, um mehr über die grundlegenden Konzepte der Datenbereitstellung zu erfahren:

Anwendungs- oder Datenbanksteuerung der Datenbereitstellung

Die Datenbereitstellung kann von eigenständigen, spezialisierten Anwendungen oder mithilfe der integrierten Werkzeuge einer Datenbank gesteuert werden. Betrachten wir jeden Ansatz.

Anwendungsgesteuerte Datenbereitstellung ist, wenn eine dedizierte Anwendung den Datenfluss steuert. Diese Anwendungen stellen Werkzeuge bereit, um eine Verbindung zu Datenquellen und Datenzielen herzustellen und Datenflussregeln zu definieren, die bestimmen, wie Daten zwischen Systemen verschoben werden. Beispiele für dedizierte Datenbereitstellungsanwendungen sind SAP Data Services, SAP Landscape Transformation und SAP Datasphere.

Bei diesem anwendungsgesteuerten Ansatz extrahiert die Anwendung Daten aus einer Quelldatenbank und lädt sie in eine Zieldatenbank. Die Extraktionsregeln, die Ablauflogik und die Lademethoden werden von der Anwendung verwaltet. Stellen Sie sich die Datenbereitstellungsanwendung als Orchestrierer der Datenbewegung zwischen Systemen vor. In einigen Fällen extrahiert die Datenbereitstellungsanwendung die Quelldaten und speichert sie temporär, bevor sie sie an das Zielsystem senden. Dies tritt häufig in Fällen auf, in denen mehrere Datenquellen kombiniert werden müssen und ein Staging-Bereich benötigt wird, um die Daten zu synchronisieren, die zu unterschiedlichen Zeiten ankommen können.

Einer der Hauptgründe für die Verwendung einer dedizierten Datenbereitstellungsanwendung ist, wenn Sie mit mehreren Datenquellen arbeiten, die unterschiedliche Technologien verwenden oder von verschiedenen Anbietern stammen. Diese dedizierten Anwendungen können in der Regel Daten aus beliebigen Quellen verarbeiten, z.B. Datenbanken, CSV-Dateien, JSON-Dateien und Webservices. Einige können sogar direkt eine Verbindung zu Geschäftsanwendungen herstellen, z.B. extrahiert SAP BW/4HANA aus SAP S/4HANA auf Anwendungsebene und nicht aus den Datenbanktabellen. In diesem Fall wird die Datenflusslogik auf einer höheren Ebene als die physische Speichertechnologie aufgebaut.

Diese Folie zeigt, wie die anwendungsgesteuerte Datenbereitstellung funktioniert.

Sehen wir uns nun die datenbankgesteuerte Datenbereitstellung an.

Grundvoraussetzung ist, dass die Datenbank die Datenbereitstellungswerkzeuge bereitstellt. Die einfachste Art des Datenbereitstellungswerkzeugs könnte ein Export- und Importwerkzeug sein, um Daten von einer Datenbank in eine andere zu verschieben. Einige Datenbanken, einschließlich SAP HANA, bieten jedoch ausgefeilte Werkzeuge für die Abwicklung komplexer Datenbereitstellungsszenarien, z.B. für die Kombination von Daten, die Validierung von Daten und die Anreicherung von Daten. Wenn Sie die integrierten Werkzeuge einer Datenbank verwenden, um die Datenbereitstellung zu verwalten, müssen Sie keine separaten Datenbereitstellungsanwendungen implementieren, wie oben beschrieben. Dieser Ansatz unterstützt eine einfachere Landschaft.

Mit datenbankgestützten Tools arbeiten wir mit datenbankgesteuerter Datenbereitstellung. Der Datenfluss wird über Werkzeuge gesteuert, die Teil der Datenbank sind.

Diese Folie zeigt, wie die datenbankgesteuerte Datenbereitstellung verwendet werden kann.

Dieser Kurs behandelt die integrierten Datenbereitstellungswerkzeuge von SAP HANA On-Premise und SAP HANA Cloud.

Erfassen von Datenänderungen

Betrachten Sie folgendes Szenario: Sie haben eine Reporting-Anwendung implementiert, die auf einer SAP-HANA-Datenbank ausgeführt wird. Die Berichtsanwendung wird vom Management verwendet, um Unternehmensausgaben zu analysieren. Sie beschließen, die Bestelltransaktionen täglich aus Ihrer Beschaffungsanwendung in die SAP-HANA-Zieldatenbank zu laden. Zunächst extrahieren Sie den gesamten Satz der Bestellauftragsdatensätze aus der Bestellabwicklungsanwendung und laden diese in die SAP-HANA-Zieldatenbank. Die Quelldaten und die Zieldaten sind nun synchron. Aber nur für eine Weile. Dies liegt daran, dass am nächsten Tag neue Beschaffungsdatensätze zur Quelldatenbank hinzugefügt, einige vorhandene Datensätze geändert und einige Datensätze gelöscht werden.

Was sollten wir also beim nächsten Mal aus der Quelldatenbank in laden, um sicherzustellen, dass die Quell- und Zieldatenbanken synchron bleiben? Erneut den gesamten Datensatz oder nur die Änderungen?

Natürlich können Sie alle Daten in der Zieldatenbank löschen und alle Datensätze neu laden. Dies würde bedeuten, dass Sie wieder synchron sind. Dieser Ansatz wäre jedoch eher verschwenderisch, insbesondere wenn sich in einer sehr großen Datenmenge nur ein oder zwei Datensätze geändert hätten. Stellen Sie sich vor, es hätten sich keine Datensätze geändert. Das Löschen von Tabelleninhalten und das anschließende Neuladen von Tabellen ist nicht sehr intelligent und vergeudet Systemressourcen. Außerdem ist es riskant, ganze Datensätze zu löschen, da Sie möglicherweise keine Daten erhalten, wenn beim Neuladen ein Fehler auftritt.

Ein effizienterer Ansatz besteht darin, nur die Änderungen an den Datensätzen zu erfassen und die Zieldatenbank nur mit den Änderungen zu aktualisieren. Die Erfassung der Änderungen an Datensätzen wird häufig als Deltadatenübernahme bezeichnet. Sie wird auch als Änderungsdatenerfassung (Change Data Capture, CDC) bezeichnet.

Diese Folie zeigt, wie das Erfassen von Datenänderungen funktioniert.

Wie ermitteln wir also die Datensätze, die sich in der Quellanwendung geändert haben?

Einige Datenquellen bieten integrierte Funktionen zur Änderungsdatenerfassung (Change Data Capture, CDC). Das bedeutet, dass die Verantwortung für die Identifizierung der geänderten Datensätze beim Quellsystem liegt. Ihr Datenextraktionsmechanismus fordert die Deltadaten einfach vom Mechanismus zur Änderungsdatenerfassung anstelle einer vollständigen Datenübernahme an. Aber nicht alle Quellen stellen eine CDC-Funktion bereit. Daher müssen Sie eine andere Möglichkeit finden, die Datensätze auszuwählen, die sich aus den Datensätzen geändert haben, die nicht geändert wurden.

Es stehen verschiedene Techniken zur Verfügung, darunter:

  • Lesen Sie das Redo-Log des Quellsystems (falls vorhanden). Hier werden Änderungen an der Datenbank gesammelt.
  • Richten Sie Trigger für Tabellen im Quellsystem ein, die ausgelöst werden, wenn ein Datensatz geändert wird, damit er an das Zielsystem gesendet werden kann.
  • Geben Sie ein Feld im Quelldatensatz an, z.B. einen Zeitstempel, das die Zeit der Datensatzänderung erfasst, sodass wir die Datensätze identifizieren können, die kürzlich geändert wurden, und die Datensätze herausfiltern können, die wir nicht möchten. Viele Anwendungen umfassen bereits ein solches Feld.
  • Verwenden Sie Datenvergleichstools, die häufig von der Datenbereitstellungssoftware bereitgestellt werden, um die Quell- und Zieltabellen zu vergleichen. Das Werkzeug kann dann die Unterschiede isolieren, sodass nur diese Datensätze im Zielsystem aktualisiert werden.

Schließlich sollten Sie im Zusammenhang mit der Änderungsdatenerfassung den Begriff Snapshot beachten. Dieser Begriff wird häufig bei der Beschreibung der Datenbereitstellung verwendet.

Ein Snapshot ist eine vollständige Erfassung aller Daten aus dem Quellsystem zu einem genauen Zeitpunkt. Einer der Gründe, warum wir Snapshots verwenden, besteht darin, einen Datensatz für einen bestimmten Zeitraum beizubehalten, bevor er mit neuen Daten überschrieben wird. Beispielsweise können wir einen Daten-Snapshot am Ende des Monats laden, um die Position unserer Aufträge zu erfassen. Der Snapshot kann dann am Ende des Folgemonats wiederholt werden. Snapshots geben uns einen stabilen Datensatz, an dem wir arbeiten können. Manchmal behalten wir sogar die Snapshots bei, um eine Geschichte aufzubauen. Wenn wir jedoch entscheiden, unsere Snapshots zu behalten, muss das Datenwachstum berücksichtigt werden, insbesondere wenn der Snapshot Ihren gesamten Datensatz enthält.

In diesem Kurs lernen Sie die Funktionen von SAP HANA in Bezug auf die Änderungsdatenerfassung kennen.

Arten der Datenbereitstellung

Datenvirtualisierung

Wie bereits erwähnt, bedeutet die Datenbereitstellung nicht immer, dass Daten in ein Zielsystem geladen werden müssen. Daten können aus einem Quellsystem gelesen und einem Zielsystem zu dem Zeitpunkt bereitgestellt werden, zu dem die Daten benötigt werden. Wenn das Zielsystem das Lesen der Daten beendet hat, wird die Verbindung beendet und es werden keine Daten verschoben. Dies wird als Datenvirtualisierung bezeichnet. Sie kann auch als Datenföderation bezeichnet werden, insbesondere wenn Sie über ein Netzwerk von Systemen verfügen, die mit dieser Technik verbunden sind.

Auf dieser Folie wird die Datenvisualisierung erläutert.

Einer der Hauptgründe für diesen Ansatz ist, wenn sich Daten häufig ändern und Sie sicherstellen möchten, dass nur die neueste Version der Daten gelesen wird. Außerdem kann es sein, dass die Quelldaten nur sehr gelegentlich gelesen werden, sodass es nicht sinnvoll ist, eine Kopie davon zu erstellen, indem Sie sie kontinuierlich laden und ein Zielsystem füllen.

Eine der Bedenken bei der Datenvirtualisierung besteht darin, dass die Performance möglicherweise nicht zufriedenstellend ist, da Daten jedes Mal, wenn sie von einer Zielanwendung benötigt werden, über das Netzwerk übertragen werden müssen. Dies ist möglicherweise kein Problem, während das Datenvolumen gering ist, aber wie wir wissen, nehmen die Datenmengen in der Regel mit der Zeit zu, sodass das, was als praktikable Lösung beginnen könnte, schnell unbrauchbar wird. Die Datenvirtualisierung sollte jedoch immer berücksichtigt werden, bevor die Entscheidung getroffen wird, die Daten in ein Zielsystem zu verschieben.

Datenreplikation

Wenn Daten zwischen Systemen synchron gehalten werden sollen, ist dies der Fall, wenn Sie die Datenreplikation implementieren. Daten werden von einem System in ein anderes kopiert, in der Regel ohne Änderungen. Die Idee ist, dass das Zielsystem Daten erfasst, wenn es sich im Quellsystem ändert, sodass Anwendungen, die im Zielsystem ausgeführt werden, immer die neuesten Daten verwenden. Die Replikation erfolgt in Echtzeit (synchron) oder nahezu in Echtzeit (asynchron).

Auf dieser Folie wird die Datenreplikation erläutert.

Die Replikation ist eine beliebte Option, wenn Virtualisierung keine gute Wahl ist und wenn Daten keine Transformation oder Aggregation erfordern, bevor sie in ein Zielsystem geladen werden.

Wenn Sie Daten replizieren, müssen Sie die Datenmengen sorgfältig überwachen. Dies liegt daran, dass beim Replizieren aus Systemen, die viele Daten erzeugen, das Zielsystem sehr schnell gefüllt werden kann. Dies gilt insbesondere dann, wenn die Quelldaten sehr detailliert sind, da die Replikation die Daten in der Regel eins zu eins extrahiert, ohne Datensätze zu filtern oder zu aggregieren.

Datentransformation

Wenn Sie Änderungen an den extrahierten Daten vornehmen müssen, bevor sie in ein Zielsystem geladen werden, wird dies als Datentransformation bezeichnet. Transformation ist ein sehr breiter Begriff und kann so einfach sein, wie das Anwenden von Filtern auf die Daten, sodass Sie nur das laden, was Sie benötigen. Dies kann auch bedeuten, dass neue Werte aus Quelldaten generiert werden. Zum Beispiel die Berechnung des Gewinns aus jedem Datensatz, der den Verkaufspreis und die Kosten liefert. Die Transformation kann sich auch auf das Ausfüllen fehlender Felder und das Prüfen von Werten beziehen. Mit der Transformation können Sie Daten aus mehreren Systemen zusammenführen. Sie können auch Regeln definieren, um festzulegen, wie Daten aufgeteilt und in mehrere Zielsysteme verteilt werden sollen.

Diese Folie erläutert die Datentransformation.

Wie bei der Replikation übernimmt die Datentransformation Daten aus einem oder mehreren Quellsystemen und lädt sie in ein Zielsystem. Der Hauptunterschied besteht darin, dass die Replikation in der Regel keine Änderungen an den Daten vornimmt, während die Transformation dies tut.

Einer der Vorteile der Transformation gegenüber der Replikation besteht darin, dass Sie Aggregationsregeln anwenden können, um Daten zu verdichten, anstatt eine große Anzahl einzelner Transaktionen zu laden. Das Datenwachstum kann also kontrolliert werden. Transformationen können jedoch schnell komplex und schwierig zu warten sein, wenn sich die Datenlandschaft ändert.