Replizieren von Daten mithilfe von Replikationsaufgaben

Objective

After completing this lesson, you will be able to replizieren Sie Daten mithilfe von Replikationsaufgaben.

Replikationsaufgaben

Nachdem Sie nun mit dem Basisprozess für die Replikation vertraut sind, implementieren wir die Replikation nachhaltiger.

Das Einrichten und Pflegen der Replikation ist durch die Ausführung von SQL-Anweisungen in der SQL-Konsole möglich. Dieser Ansatz bedeutet jedoch, dass die Objekte, die in der Datenbank angelegt werden, Ihrer Benutzer-ID gehören. Dies kann zu Problemen führen, wenn andere die Objekte übernehmen müssen. Außerdem ist der Transport der Datenbankobjekte nicht möglich.

Es wird empfohlen, die Objekte mithilfe von Quelldateien zu entwickeln und dann die Datenbankartefakte in einem HDI-Container zu erstellen/zu deployen.

Die Replikationsaufgabe

Diese Folie zeigt die verschiedenen Schritte beim Definieren einer Replikationsaufgabe.

Um Replikationen zu verwalten, legen Sie eine .hdbreptask-Datei an, um die Metadaten der Replikation zu definieren. Die Metadaten beschreiben Folgendes:

  • Remote-Quelle

    Name des Remote-Quellobjekts, das für den Zugriff auf die Quelldaten verwendet wird.

  • Remote-Quellobjekt

    Name der Tabelle, Sicht oder Datei, auf die Sie zugreifen möchten.

  • Zieltabelle

    Name der Tabelle, in der die replizierten Daten gespeichert werden

  • Replikationsverhalten

    Sie können alle Daten nur einmal replizieren. Dies wird in der Regel als Erstdatenübernahme bezeichnet. Dies ist nützlich, wenn Sie eine Momentaufnahme Ihrer Daten wünschen. Sie können auch die Echtzeitreplikation ohne Erstdatenübernahme wählen, wenn Sie nur zukünftige Daten benötigen. Dann können Sie auch Änderungen in der Struktur der Tabelle replizieren.

Folgende Optionen stehen zur Verfügung:

  • Keine Datenübernahme

    Wenn Sie nur eine Kopie der Quelldatenstruktur wünschen, jedoch ohne die Quelldaten. Dies entspricht einer CREATE TABLE <...(new table)> like <...(existing table)>Anweisung.

  • Nur Erstdatenübernahme

    Wenn Sie nur eine Kopie der aktuellen Daten, aber keine Replikation zukünftiger Daten wünschen. Dies wird als Snapshot bezeichnet.

  • Initial + Echtzeit

    Wahrscheinlich möchten Sie aktuelle Daten und zukünftige Änderungen.

  • Initial + Echtzeit mit Struktur

    Dies entspricht der vorherigen Option, repliziert jedoch auch die Änderungen in der Quelltabellenstruktur. Funktioniert nur für Tabellen.

  • Echtzeit

    Sie können nur zukünftige Daten, aber keine aktuellen Daten benötigen.

  • Echtzeit nur mit Struktur

    Wie die vorherige Option, jedoch mit Replikation der Tabellenstruktur.

Nach dem Build/Deployment generiert die Replikationsaufgabe die verschiedenen Objekte, die in der SAP-HANA-Datenbank benötigt werden. Dazu gehören:

  • Eine virtuelle Tabelle
  • Eine Zieltabelle
  • Eine Startprozedur (.START_REPLICATION) zum Einrichten der Replikation
  • Ein zweites Verfahren (.RS_SP) zum Ausführen einzelner Subskriptionsbefehle

Sie müssen die Hauptstartprozedur aufrufen, um die Remote-Subskription, Trigger usw. anzulegen. Die Replikationsaufgabe führt nur eine Erstdatenübernahme aus.

Die zweite Prozedur kann zur Pflege oder zum Ausführen einzelner Befehle wie Zurücksetzen, Löschen oder anderer Subskriptionsschritte aufgerufen werden.

Einrichtung des Projekts

Wenn es sich bei Ihrem Ziel um eine On-Premise-SAP-HANA-Datenbank handelt, verwenden Sie die Web IDE für SAP HANA.

Wenn Ihr Ziel eine SAP-HANA-Cloud-Datenbank ist, verwenden Sie SAP Business Application Studio.

Für beide Werkzeuge müssen Sie zunächst ein Projekt und ein HDB-Modul einrichten, um Ihre Entwicklungsobjekte zu verwalten.

Für den Zugriff auf die Remote-Quellen sind die folgenden Schritte erforderlich:

  • Legen Sie einen User-Provided Service (UPS) als Ressource in Ihrer Datei mta.yaml an, und fügen Sie ihn dann hinzu.
  • Fügen Sie Privilegien in einer .hdbgrants-Datei hinzu.

Sie können den vom Benutzer bereitgestellten Service direkt in SAP Business Application Studio anlegen, wie in der folgenden Bildaufnahme gezeigt:

Diese Folie zeigt, wie Sie einen vom Benutzer bereitgestellten Service in Business Application Studio anlegen.

Notiz

Der Schemaname wird automatisch eingetragen, wenn Sie den Benutzernamen eingeben. Sie können es jedoch in ein anderes Schema ändern oder gar kein Schema angeben.

Wenn Ihr Ziel eine On-Premise-Datenbank ist, können Sie den User-Provided Service im XSA Cockpit anlegen:

Diese Folie zeigt, wie Sie einen vom Benutzer bereitgestellten Service im XSA-Cockpit anlegen.

Notiz

Achten Sie darauf, das "hana"-Tag hinzuzufügen, wenn es nicht von der Vorlage bereitgestellt wird.

Die Vorlage stellt keinen Schemaparameter bereit, aber Sie können auch einen bestimmten Schemanamen angeben.

Die .hdbgrants-Datei muss die erforderlichen Berechtigungen sowohl für den Objekteigentümer als auch für den Anwendungsbenutzer enthalten, wie im folgenden Beispiel gezeigt:

Diese Folie zeigt den Inhalt der .hdbgrants-Datei.

Starten Sie das folgende Video, um zu erfahren, wie Sie das Projekt in Business Application Studio einrichten:

Starten Sie das folgende Video, um zu erfahren, wie Sie das Projekt in SAP Web IDE einrichten, wenn Ihr Ziel eine On-Premise-Datenbank ist:

Replikationsaufgabenerstellung

Sobald Ihr Projekt korrekt eingerichtet ist, können Sie die Replikationsaufgabe mit dem formularbasierten Editor anlegen:

Diese Folie zeigt den Editor für Replikationsaufgaben.

Die Schritte sind wie folgt:

  • Stellen Sie eine Verbindung zur Remote-Quelle her.
  • Wählen Sie das gewünschte Quellobjekt aus.
  • Replikationsverhaltenseigenschaft auswählen
  • Build/Deploy
  • Führen Sie im Datenbank-Explorer die generierte Startprozedur aus.
  • Quelldaten ändern
  • Zieltabelle prüfen

Starten Sie das folgende Video, um zu erfahren, wie Sie eine Replikationsaufgabe anlegen: