Daten aus SAP-Anwendungen über SAP Data Services und SAP LT Replication Server in BigQuery replizieren

In dieser Anleitung erfahren Sie, wie Sie mithilfe von SAP Landscape Transformation (LT) Replication Server und SAP Data Services (DS) eine Lösung einrichten, um Daten aus SAP-Anwendungen wie SAP S/4HANA oder SAP Business Suite in BigQuery zu replizieren.

Mit der Datenreplikation können Sie Ihre SAP-Daten nahezu in Echtzeit in BigQuery sichern oder Daten aus Ihren SAP-Systemen mit Kundendaten aus anderen Systemen in BigQuery konsolidieren, um Erkenntnisse mithilfe von maschinellem Lernen und Datenanalysen im Petabytebereich zu gewinnen.

Die Anleitung richtet sich an SAP-Systemadministratoren mit Grundkenntnissen in der Konfiguration von SAP Basis, SAP LT Replication Server, SAP DS und Google Cloud.

Architektur

Der Replikationsfluss beginnt bei der SAP-Anwendung und läuft über SAP LT Replication Server und SAP Data Services zu BigQuery.

SAP LT Replication Server kann als Datenanbieter für das Operational Data Provisioning-Framework (ODP) von SAP NetWeaver agieren. SAP LT Replication Server empfängt Daten von verbundenen SAP-Systemen und speichert sie im ODP-Framework in einer Operational Delta Queue (ODQ) des SAP LT Replication Server-Systems. Somit ist SAP LT Replication Server selbst auch das Ziel von SAP LT Replication Server-Konfigurationen. Das ODP-Framework stellt die Daten als ODP-Objekte bereit, die den Quellsystemtabellen entsprechen.

Das ODP-Framework unterstützt Extraktions- und Replikationsszenarios für verschiedene SAP-Zielanwendungen, die Abonnenten genannt werden. Die Abonnenten rufen die Daten aus der Delta Queue zur weiteren Verarbeitung ab.

Daten werden repliziert, sobald ein Abonnent die Daten aus einer Datenquelle über einen ODP-Kontext anfordert. Mehrere Abonnenten können dieselbe ODQ als Quelle verwenden.

SAP LT Replication Server nutzt die Changed Data Capture-Unterstützung (CDC) von SAP Data Services 4.2 SP1 oder höher, die Datenbereitstellung in Echtzeit und Deltafunktionen für alle Quelltabellen bietet.

Im folgenden Diagramm wird der Fluss der Daten durch die Systeme erläutert:

  • SAP-Anwendungen aktualisieren Daten im Quellsystem.
  • SAP LT Replication Server repliziert die Datenänderungen und speichert die Daten in der Operational Delta Queue.
  • SAP DS ist ein Abonnent der Operational Delta Queue und fragt die Queue regelmäßig auf Datenänderungen ab.
  • SAP DS ruft die Daten aus der Delta Queue ab, transformiert die Daten so, dass sie mit dem BigQuery-Format kompatibel sind, und initiiert den Ladejob, der die Daten in BigQuery verschiebt.
  • Die Daten stehen in BigQuery zur Analyse zur Verfügung.

In diesem Szenario können das SAP-Quellsystem, SAP LT Replication Server und SAP Data Services entweder in oder außerhalb von Google Cloud ausgeführt werden. Weitere Informationen von SAP finden Sie unter Betriebsdaten in Echtzeit mit SAP Landscape Transformation Replication Server bereitstellen.

Zwischen SAP LT Replication Server und dem SAP ABAP-System sowie SAP Data Services werden RFC-Verbindungen verwendet.

Kernkomponenten der Lösung

Die folgenden Komponenten sind erforderlich, um Daten aus SAP-Anwendungen mithilfe von SAP Landscape Transformation Replication Server und SAP Data Services in BigQuery zu replizieren:

Komponente Erforderliche Versionen Hinweise
SAP-Anwendungsserver-Stack Alle ABAP-basierten SAP-Systeme ab R/3 4.6C
SAP_Basis (Mindestanforderung):
  • 730 SP10 oder SP5-9 und Hinweis 1817467
  • 731 SP8 oder SP3-7 und Hinweis 1817467
  • 740 SP4 oder SP0-3 und Hinweis 1817467
PI_Basis (Mindestanforderung):
  • 730 SP10 oder SP8-9 und Hinweis 1848320
  • 731 SP9 oder SP5-8 und Hinweis 1848320
  • 740 SP4 oder SP2-3 und Hinweis 1848320
In dieser Anleitung werden der Anwendungsserver und der Datenbankserver zusammen als Quellsystem bezeichnet, selbst wenn sie auf unterschiedlichen Computern ausgeführt werden.
Definieren Sie den RFC-Nutzer mit entsprechender Berechtigung.
Optional: Definieren Sie einen separaten Tablespace für Logging-Tabellen.
Datenbanksystem Jede Datenbankversion, die in der SAP Product Availability Matrix (PAM) als unterstützt aufgeführt wird, vorbehaltlich etwaiger Einschränkungen des SAP NetWeaver-Stacks, die in der PAM aufgeführt sind. Siehe service.sap.com/pam.
Betriebssystem Jede Betriebssystemversion, die in der SAP PAM als unterstützt aufgeführt wird, vorbehaltlich etwaiger Einschränkungen des SAP NetWeaver-Stacks, die in der PAM aufgeführt sind. Siehe service.sap.com/pam.
SAP Data Migration Server (DMIS) DMIS:
  • DMIS 2011 SP6 oder höher
  • DMIS 2011 SP3/SP4/SP5 und Hinweis 1863476
  • DMIS 2010 SP8/SP9 und Hinweis 1863476
DMIS-Add-on:
  • Add-on für DMIS 2011 SP6 oder höher
SAP Landscape Transformation Replication Server SAP LT Replication Server 2.0 oder höher Erfordert eine RFC-Verbindung zum Quellsystem.
Die Skalierung des SAP LT Replication Server-Systems hängt stark von der Datenmenge, die in der ODQ gespeichert ist, und der geplanten Aufbewahrungsdauer ab.
SAP Data Services SAP Data Services 4.2 SP1 oder höher
BigQuery

Kosten

BigQuery ist eine kostenpflichtige Google Cloud-Komponente.

Sie können mithilfe des Preisrechners eine Kostenschätzung für Ihre voraussichtliche Nutzung erstellen.

Vorbereitung

In dieser Anleitung wird davon ausgegangen, dass der SAP-Anwendungsserver, Datenbankserver, SAP LT Replication Server und SAP Data Services bereits installiert und für den normalen Betrieb konfiguriert sind.

Sie benötigen ein Google Cloud-Projekt, um BigQuery verwenden zu können.

Google Cloud-Projekt in Google Cloud einrichten

Sie müssen die BigQuery API aktivieren und außerdem ein Google Cloud-Projekt erstellen, sofern nicht bereits geschehen.

Google Cloud-Projekt erstellen

  1. Öffnen Sie die Google Cloud Console und registrieren Sie sich anhand der Schritte im Einrichtungsassistenten.

    Zur Google Cloud Console

  2. Klicken Sie neben dem Google Cloud-Logo links oben auf das Drop-down-Menü und wählen Sie Projekt erstellen aus.

  3. Geben Sie Ihrem Projekt einen Namen und klicken Sie auf Erstellen.

  4. Aktualisieren Sie die Seite, nachdem das Projekt erstellt wurde (am Hinweis oben rechts zu erkennen).

APIs aktivieren

Aktivieren Sie die BigQuery API:

Zur BigQuery API

Dienstkonto erstellen

Mit dem Dienstkonto (insbesondere seiner Schlüsseldatei) wird SAP DS bei BigQuery authentifiziert. Sie benötigen die Schlüsseldatei später, wenn Sie den Zieldatenspeicher erstellen.

  1. Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf:

    Zur Seite "Dienstkonten"

  2. Wählen Sie Ihr Google Cloud-Projekt aus.

  3. Klicken Sie auf Dienstkonto erstellen.

  4. Geben Sie im Feld Name des Dienstkontos einen Namen ein.

  5. Klicken Sie auf Erstellen und fortfahren.

  6. Wählen Sie in der Liste Rolle auswählen die Option BigQuery > BigQuery-Datenbearbeiter aus.

  7. Klicken Sie auf Weitere Rolle hinzufügen.

  8. Wählen Sie in der Liste Rolle auswählen die Option BigQuery > BigQuery-Jobnutzer aus.

  9. Klicken Sie auf Weiter.

  10. Gewähren Sie Nutzern gegebenenfalls Zugriff auf das Dienstkonto.

  11. Klicken Sie auf Fertig.

  12. Klicken Sie in der Google Cloud Console auf der Seite Dienstkonten auf die E-Mail-Adresse des gerade erstellten Dienstkontos.

  13. Klicken Sie unter dem Namen des Dienstkontos auf den Tab Schlüssel.

  14. Klicken Sie auf das Drop-down-Menü Schlüssel hinzufügen und wählen Sie Neuen Schlüssel erstellen aus.

  15. Achten Sie darauf, dass der Schlüsseltyp JSON angegeben ist.

  16. Klicken Sie auf Erstellen.

  17. Speichern Sie die automatisch heruntergeladene Schlüsseldatei an einem sicheren Ort.

Replikation zwischen SAP-Anwendungen und BigQuery konfigurieren

Das Konfigurieren dieser Lösung umfasst im Allgemeinen folgende Schritte:

  • SAP LT Replication Server konfigurieren
  • SAP Data Services konfigurieren
  • Datenfluss zwischen SAP Data Services und BigQuery erstellen

SAP Landscape Transformation Replication Server konfigurieren

In den folgenden Schritten wird SAP LT Replication Server als Anbieter im Operational Data Provisioning-Framework konfiguriert und eine Operational Delta Queue erstellt. In dieser Konfiguration verwendet SAP LT Replication Server eine Replikation, die auf Triggern basiert, um die Daten aus dem SAP-Quellsystem in Tabellen in der Delta Queue zu kopieren. SAP Data Services agiert als Abonnent im ODP-Framework und ruft die Daten aus der Delta Queue ab, transformiert sie und lädt sie in BigQuery.

Operational Delta Queue (ODQ) konfigurieren

  1. Verwenden Sie in SAP LT Replication Server die Transaktion SM59, um ein RFC-Ziel für das SAP-Anwendungssystem zu erstellen, das die Datenquelle ist.
  2. Verwenden Sie in SAP LT Replication Server die Transaktion LTRC, um eine Konfiguration zu erstellen. Definieren Sie in der Konfiguration die Quelle und das Ziel von SAP LT Replication Server. Das Ziel für die Datenübertragung mithilfe von ODP ist SAP LT Replication Server selbst.
    1. Geben Sie zur Angabe der Quelle das RFC-Ziel für das SAP-Anwendungssystem ein, das als Datenquelle verwendet werden soll.
    2. Geben Sie das Ziel so an:
      1. Geben Sie NONE als RFC-Verbindung ein.
      2. Wählen Sie ODQ Replication Scenario (ODQ-Replikationsszenario) für die RFC-Kommunikation aus. Geben Sie bei Verwendung dieses Szenarios an, dass die Daten über die Operational Data Provisioning-Infrastruktur mit Operational Delta Queues übertragen werden.
      3. Weisen Sie einen Queue-Alias zu.

Der Queue-Alias wird in SAP Data Services für die Einstellung des ODP-Kontextes der Datenquelle verwendet.

SAP Data Services konfigurieren

Data Services-Projekt erstellen

  1. Öffnen Sie die Anwendung SAP Data Services Designer.
  2. Wählen Sie File > New > Project (Datei > Neu > Projekt) aus.
  3. Geben Sie im Feld Project name (Projektname) einen Namen an.
  4. Wählen Sie in Data Services Repository (Data Services-Repository) Ihr Data Services-Repository aus.
  5. Klicken Sie auf Finish (Fertigstellen). Ihr Projekt wird links im "Project Explorer" (Projektexplorer) angezeigt.

SAP Data Services stellt eine Verbindung zu den Quellsystemen her, um Metadaten zu erfassen, und dann zum SAP Replication Server-Agent, um die Konfiguration und die geänderten Daten abzurufen.

Quelldatenspeicher erstellen

In den folgenden Schritten wird eine Verbindung zu SAP LT Replication Server hergestellt und die Datentabellen werden dem jeweiligen Datenspeicherknoten in der Designer-Objektbibliothek hinzugefügt.

Damit Sie SAP LT Replication Server mit SAP Data Services verwenden können, müssen Sie SAP Data Services mit der richtigen Operational Delta Queue in ODP verbinden. Hierfür stellen Sie eine Verbindung zwischen einem Datenspeicher und der ODP-Infrastruktur her.

  1. Öffnen Sie die Anwendung SAP Data Services Designer.
  2. Klicken Sie im "Project Explorer" (Projektexplorer) mit der rechten Maustaste auf den Namen Ihres SAP Data Services-Projekts.
  3. Wählen Sie New > Datastore (Neu > Datenspeicher) aus.
  4. Geben Sie im Feld Datastore Name (Datenspeichername) einen Namen ein, beispielsweise DS_SLT.
  5. Wählen Sie im Feld Datastore type die Option SAP Applications aus.
  6. Geben Sie im Feld Application server name (Name des Anwendungsservers) den Instanznamen von SAP LT Replication Server an.
  7. Geben Sie die SAP LT Replication Server-Zugriffsanmeldedaten an.
  8. Öffnen Sie den Tab Advanced (Erweitert).
  9. Geben Sie im Feld ODP Context den Wert SLT~ALIAS ein, wobei ALIAS der Queue-Alias ist, den Sie unter Operational Delta Queue (ODQ) konfigurieren angegeben haben.
  10. Klicken Sie auf OK.

Der neue Datenspeicher wird auf dem Tab Datastore (Datenspeicher) in der lokalen Objektbibliothek von Designer angezeigt.

Zieldatenspeicher erstellen

Mit diesen Schritten wird ein BigQuery-Datenspeicher erstellt, der das Dienstkonto verwendet, das Sie zuvor im Abschnitt Dienstkonto erstellen angelegt haben. Das Dienstkonto ermöglicht SAP Data Services sicheren Zugriff auf BigQuery.

Weitere Informationen finden Sie in den Abschnitten zum Abrufen der E-Mail-Adresse Ihres Google-Dienstkontos und zum Abrufen einer Datei mit dem privaten Schlüssel des Google-Dienstkontos service account private key file in der SAP Data Services-Dokumentation.

  1. Öffnen Sie die Anwendung SAP Data Services Designer.
  2. Klicken Sie im "Project Explorer" (Projektexplorer) mit der rechten Maustaste auf den Namen Ihres SAP Data Services-Projekts.
  3. Wählen Sie New > Datastore (Neu > Datenspeicher) aus.
  4. Geben Sie im Feld Name einen Namen ein, beispielsweise BQ_DS.
  5. Klicken Sie auf Next (Weiter).
  6. Wählen Sie im Feld Datastore type (Datenspeichertyp) die Option Google BigQuery aus.
  7. Die Option Web Service URL (Webdienst-URL) wird angezeigt. Die Software trägt für die Option automatisch die standardmäßige BigQuery-Webdienst-URL ein.
  8. Wählen Sie Advanced (Erweitert) aus.
  9. Legen Sie die Optionen unter "Advanced" (Erweitert) anhand der Beschreibungen der Datenspeicheroptionen für BigQuery in der SAP Data Services-Dokumentation fest.
  10. Klicken Sie auf OK.

Der neue Datenspeicher wird auf dem Tab Datastore (Datenspeicher) in der lokalen Objektbibliothek von Designer angezeigt.

ODP-Quellobjekt(e) für die Replikation importieren

Mit diesen Schritten werden ODP-Objekte aus dem Quelldatenspeicher für den anfänglichen Ladevorgang und die Deltaladevorgänge importiert und in SAP Data Services zur Verfügung gestellt.

  1. Öffnen Sie die Anwendung SAP Data Services Designer.
  2. Maximieren Sie im "Project Explorer" (Projektexplorer) den Quelldatenspeicher für den Replikationsladevorgang.
  3. Wählen Sie im oberen Teil des rechten Steuerfeldes die Option External Metadata (Externe Metadaten) aus. Die Liste der Knoten mit verfügbaren Tabellen und ODP-Objekten wird angezeigt.
  4. Klicken Sie auf den ODP-Objektknoten, um die Liste der verfügbaren ODP-Objekte abzurufen. Es kann lang dauern, bis die Liste angezeigt wird.
  5. Klicken Sie auf die Schaltfläche Search (Suchen).
  6. Wählen Sie im Dialogfeld im Menü Look in (Suchen in) die Option External data (Externe Daten) und im Menü Object type (Objekttyp) die Option ODP object (ODP-Objekt) aus.
  7. Wählen Sie im Dialogfeld "Search" (Suchen) die Suchkriterien zum Filtern der Liste von ODP-Quellobjekten aus.
  8. Wählen Sie das zu importierende ODP-Objekt aus der Liste aus.
  9. Klicken Sie mit der rechten Maustaste und wählen Sie die Option Import (Importieren) aus.
  10. Geben Sie im Feld Name of Consumer (Name des Konsumenten) einen Namen ein.
  11. Geben Sie im Feld Name of project (Name des Projekts) einen Namen ein.
  12. Wählen Sie in Extraction mode (Extraktionsmodus) die Option Changed-data capture (CDC) aus.
  13. Klicken Sie auf Import (Importieren). Damit wird der Import des ODP-Objekts in Data Services gestartet. Das ODP-Objekt steht jetzt in der Objektbibliothek unter dem Knoten DS_SLT zur Verfügung.

Weitere Informationen finden Sie im Abschnitt zum Importieren von ODP-Quellmetadaten in der SAP Data Services-Dokumentation.

Schemadatei erstellen

Mit diesen Schritten wird ein Datenfluss in SAP Data Services zum Generieren einer Schemadatei erstellt, die die Struktur der Quelltabellen widerspiegelt. Sie verwenden die Schemadatei später, um eine BigQuery-Tabelle zu erstellen.

Das Schema sorgt dafür, dass der BigQuery-Loader-Datenfluss die neue BigQuery-Tabelle erfolgreich füllt.

Datenfluss erstellen
  1. Öffnen Sie die Anwendung SAP Data Services Designer.
  2. Klicken Sie im "Project Explorer" (Projektexplorer) mit der rechten Maustaste auf den Namen Ihres SAP Data Services-Projekts.
  3. Wählen Sie Project > New > Data flow (Projekt > Neu > Datenfluss) aus.
  4. Geben Sie im Feld Name einen Namen ein, beispielsweise DF_BQ.
  5. Klicken Sie auf Finish (Fertigstellen).
Objektbibliothek aktualisieren
  • Klicken Sie im "Project Explorer" (Projektexplorer) mit der rechten Maustaste auf den Quelldatenspeicher für den anfänglichen Ladevorgang und wählen Sie die Option Refresh Object Library (Objektbibliothek aktualisieren) aus. Damit wird die Liste der Datenbanktabellen der Datenquelle aktualisiert, die Sie im Datenfluss verwenden können.
Datenfluss erstellen
  1. Ziehen Sie zum Erstellen des Datenflusses die Quelltabellen per Drag-and-drop zum Arbeitsbereich des Datenflusses und wählen Sie bei entsprechender Aufforderung Import as Source (Als Quelle importieren) aus.
  2. Ziehen Sie auf dem Tab Transforms (Transformationen) der Objektbibliothek eine Transformation vom Typ XML_Map (XML-Zuordnung) aus dem Knoten Platform (Plattform) zum Datenfluss und wählen Sie bei entsprechender Aufforderung die Option Batch Load (Batchladevorgang) aus.
  3. Verbinden Sie alle Quelltabellen im Arbeitsbereich mit der Transformation "XML_Map" (XML-Zuordnung).
  4. Öffnen Sie die Transformation XML_Map (XML-Zuordnung) und legen Sie die Abschnitte für das Eingabe- und Ausgabeschema anhand der Daten fest, die Sie in die BigQuery-Tabelle aufnehmen.
  5. Klicken Sie mit der rechten Maustaste auf den Knoten XML_Map (XML-Zuordnung) in der Spalte Schema Out (Ausgabeschema) und wählen Sie Generate Google BigQuery Schema (Google BigQuery-Schema generieren) aus dem Drop-down-Menü aus.
  6. Geben Sie einen Namen und einen Speicherort für das Schema ein.
  7. Klicken Sie auf Save (Speichern).
  8. Klicken Sie im "Project Explorer" (Projektexplorer) mit der rechten Maustaste auf den Datenfluss und wählen Sie Remove (Entfernen) aus.

SAP Data Services generiert eine Schemadatei mit der .json-Dateierweiterung.

BigQuery-Tabellen erstellen

Sie müssen sowohl für den anfänglichen Ladevorgang als auch für die Deltaladevorgänge Tabellen in Ihrem BigQuery-Dataset in Google Cloud erstellen. Die Tabellen erstellen Sie mithilfe der Schemas, die Sie in SAP Data Services erstellt haben.

Die Tabelle für den anfänglichen Ladevorgang wird für die anfängliche Replikation des gesamten Quell-Datasets verwendet. Die Tabelle für Deltaladevorgänge wird für die Replikation der Änderungen im Quell-Dataset verwendet, die nach dem anfänglichen Ladevorgang erfolgt sind. Die Tabellen basieren auf dem Schema, das Sie im vorherigen Schritt generiert haben. Die Tabelle für die Deltaladevorgänge enthält ein zusätzliches Zeitstempelfeld, das die Zeit eines jeden Deltaladevorgangs angibt.

BigQuery-Tabelle für den anfänglichen Ladevorgang erstellen

Mit diesen Schritten wird eine Tabelle für den anfänglichen Ladevorgang in Ihr BigQuery-Dataset erstellt.

  1. Rufen Sie in der Google Cloud Console Ihr Google Cloud-Projekt auf.
  2. Wählen Sie BigQuery aus.
  3. Klicken Sie auf das jeweilige Dataset.
  4. Klicken Sie auf Tabelle erstellen.
  5. Geben Sie einen Tabellennamen ein, beispielsweise BQ_INIT_LOAD.
  6. Schalten Sie unter Schema die Einstellung um, sodass der Modus Als Text bearbeiten aktiviert wird.
  7. Legen Sie das Schema der neuen Tabelle in BigQuery fest. Kopieren Sie hierzu den Inhalt der Schemadatei, die Sie unter Schemadatei erstellen angelegt haben, und fügen Sie ihn ein.
  8. Klicken Sie auf Tabelle erstellen.
BigQuery-Tabelle für die Deltaladevorgänge erstellen

Mit diesen Schritten wird eine Tabelle für die Deltaladevorgänge Ihres BigQuery-Datasets erstellt.

  1. Rufen Sie in der Google Cloud Console Ihr Google Cloud-Projekt auf.
  2. Wählen Sie BigQuery aus.
  3. Klicken Sie auf das jeweilige Dataset.
  4. Klicken Sie auf Tabelle erstellen.
  5. Geben Sie einen Tabellennamen ein, beispielsweise BQ_DELTA_LOAD.
  6. Schalten Sie unter Schema die Einstellung um, sodass der Modus Als Text bearbeiten aktiviert wird.
  7. Legen Sie das Schema der neuen Tabelle in BigQuery fest. Kopieren Sie hierzu den Inhalt der Schemadatei, die Sie unter Schemadatei erstellen angelegt haben, und fügen Sie ihn ein.
  8. Fügen Sie in der JSON-Liste in der Schemadatei direkt vor der Felddefinition des Feldes DI_SEQUENCE_NUMBER die folgende Definition für das Feld DL_TIMESTAMP ein. In diesem Feld wird der Zeitstempel von jeder Ausführung eines Deltaladevorgangs gespeichert:

    {
       "name": "DL_TIMESTAMP",
       "type": "TIMESTAMP",
       "mode": "REQUIRED",
       "description": "Delta load timestamp"
     },
  9. Klicken Sie auf Tabelle erstellen.

Datenfluss zwischen SAP Data Services und BigQuery einrichten

Zum Einrichten des Datenflusses müssen Sie die BigQuery-Tabellen als externe Metadaten in SAP Data Services importieren und den Replikationsjob sowie den BigQuery-Loader-Datenfluss erstellen.

BigQuery-Tabellen importieren

Mit diesen Schritten werden die BigQuery-Tabellen, die Sie im vorherigen Schritt erstellt haben, importiert und in SAP Data Services zur Verfügung gestellt.

  1. Öffnen Sie in der Objektbibliothek von SAP Data Services Designer den BigQuery-Datenspeicher, den Sie zuvor erstellt haben.
  2. Klicken Sie im oberen Bereich des rechten Steuerfeldes auf External Metadata (Externe Metadaten). Die von Ihnen erstellten BigQuery-Tabellen werden angezeigt.
  3. Klicken Sie mit der rechten Maustaste auf den jeweiligen BigQuery-Tabellennamen und wählen Sie Import (Importieren) aus.
  4. Der Import der ausgewählten Tabelle in SAP Data Services wird gestartet. Die Tabelle ist jetzt in der Objektbibliothek unter dem Knoten des Zieldatenspeichers verfügbar.

Replikationsjob und den BigQuery-Loader-Datenfluss erstellen

Mit diesen Schritten werden ein Replikationsjob und der Datenfluss in SAP Data Services erstellt, mit dem die Daten aus SAP LT Replication Server in die BigQuery-Tabelle geladen werden.

Der Datenfluss besteht aus zwei Teilen. Der erste führt den anfänglichen Datenladevorgang aus den ODP-Quellobjekten in die BigQuery-Tabelle aus und der zweite aktiviert die nachfolgenden Deltaladevorgänge.

Globale Variable erstellen

Damit der Replikationsjob bestimmen kann, ob ein anfänglicher Ladevorgang oder ein Deltaladevorgang auszuführen ist, müssen Sie eine globale Variable zum Verfolgen des Ladetyps in der Datenflusslogik erstellen.

  1. Wählen Sie im Menü der Anwendung SAP Data Services Designer die Option Tools > Variables (Tools > Variablen) aus.
  2. Klicken Sie mit der rechten Maustaste auf Global Variables (Globale Variablen) und wählen Sie Insert (Einfügen) aus.
  3. Klicken Sie mit der rechten Maustaste auf Name für die Variable und wählen Sie Properties (Attribute) aus.
  4. Geben Sie im Feld Name für die Variable den Namen $INITLOAD ein.
  5. Wählen Sie im Feld Data Type (Datentyp) die Option Int (Ganzzahl) aus.
  6. Geben Sie im Feld Value (Wert) 0 ein.
  7. Klicken Sie auf OK.
Replikationsjob erstellen
  1. Klicken Sie im "Project Explorer" (Projektexplorer) mit der rechten Maustaste auf Ihren Projektnamen.
  2. Wählen Sie New > Batch Job (Neu > Batchjob) aus.
  3. Geben Sie im Feld Name einen Namen ein, beispielsweise JOB_SRS_DS_BQ_REPLICATION.
  4. Klicken Sie auf Finish (Fertigstellen).
Datenflusslogik für den anfänglichen Ladevorgang erstellen
Bedingung erstellen
  1. Klicken Sie mit der rechten Maustaste auf Job Name (Jobname) und wählen Sie die Option Add New > Conditional (Neu hinzufügen > Bedingung) aus.
  2. Klicken Sie mit der rechten Maustaste auf das Symbol "Conditional" (Bedingt) und wählen Sie Rename (Umbenennen) aus.
  3. Ändern Sie den Namen in InitialOrDelta.

    Screenshot des Symbols "Conditional" mit der Bezeichnung "InitialOrDelta".

  4. Öffnen Sie den "Conditional Editor". Klicken Sie dazu doppelt auf das Symbol "Conditional".

  5. Geben Sie im Feld If statement (If-Anweisung) den Wert "$INITLOAD = 1" ein, der die Bedingung zum Ausführen des anfänglichen Ladevorgangs festlegt.

  6. Klicken Sie mit der rechten Maustaste auf den Bereich Then (Dann) und wählen Sie Add New > Script (Neu hinzufügen > Skript) aus.

  7. Klicken Sie mit der rechten Maustaste auf das Symbol Script (Skript) und wählen Sie Rename (Umbenennen) aus.

  8. Ändern Sie den Namen. In dieser Anleitung wird beispielsweise "InitialLoadCDCMarker" verwendet.

  9. Klicken Sie doppelt auf das Symbol Script (Skript), um den "Function Editor" (Funktionseditor) zu öffnen.

  10. Geben Sie print('Beginning Initial Load'); ein

  11. Geben Sie begin_initial_load(); ein

    Screenshot des "Function Editor" mit den eingegebenen Anweisungen.

  12. Klicken Sie in der Symbolleiste der Anwendung auf das Symbol "Back", um den Function Editor zu beenden.

Datenfluss für den anfänglichen Ladevorgang erstellen
  1. Klicken Sie mit der rechten Maustaste in den Bereich Then (Dann) und wählen Sie Add New > Data Flow (Neu hinzufügen > Datenfluss) aus.
  2. Benennen Sie den Datenfluss um, beispielsweise in "DF_SRS_DS_InitialLoad".
  3. Verbinden Sie "InitialLoadCDCMarker" mit "DF_SRS_DS_InitialLoad". Klicken Sie dazu auf das Verbindungsausgabesymbol von "InitialLoadCDCMarker" und ziehen Sie dann die Verbindungslinie zum Eingabesymbol von "DF_SRS_DS_InitialLoad".
  4. Klicken Sie doppelt auf den Datenfluss "DF_SRS_DS_InitialLoad".
Datenfluss importieren und mit den Quellobjekten des Datenspeichers verbinden
  1. Ziehen Sie die ODP-Quellobjekte per Drag-and-drop aus dem Datenspeicher zum Arbeitsbereich des Datenflusses. In dieser Anleitung lautet der Datenspeicher DS_SLT. Der Name Ihres Datenspeichers kann abweichen.
  2. Ziehen Sie die Transformation Query aus dem Knoten Platform auf dem Tab Transforms der Objektbibliothek zum Datenfluss.
  3. Klicken Sie doppelt auf die ODP-Objekte und legen Sie auf dem Tab Source die Option Initial Load auf Yes fest.

    Screenshot des SAP Data Services Designer-Fensters, auf dem "Schema Out" zu sehen ist.
  4. Verbinden Sie alle ODP-Quellobjekte im Arbeitsbereich mit der Transformation Query.

  5. Klicken Sie doppelt auf die Transformation Query (Abfrage).

  6. Wählen Sie alle Tabellenfelder unter Schema In (Eingabeschema) auf der linken Seite aus und ziehen Sie sie zu Schema Out (Ausgabeschema) auf der rechten Seite.

    So fügen Sie eine Konvertierungsfunktion für ein Datetime-Feld hinzu:

    1. Wählen Sie rechts in der Liste Schema Out (Ausgabeschema) das Datetime-Feld aus.
    2. Wählen Sie unter den Schemalisten den Tab Mapping (Zuordnung) aus.
    3. Ersetzen Sie den Feldnamen durch die folgende Funktion:

      to_date(to_char(FIELDNAME,'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss')
      

      Dabei ist FIELDNAME der Name des Feldes, das Sie ausgewählt haben.

    Screenshot, der die Ersetzung des Feldes "date" auf dem Tab für die Schemazuordnung zeigt.
  7. Klicken Sie in der Symbolleiste der Anwendung auf das Symbol "Back" (Zurück), um wieder zum Datenfluss zu gelangen.

Datenfluss importieren und mit den Zielobjekten des Datenspeichers verbinden
  1. Ziehen Sie die importierte BigQuery-Tabelle für den anfänglichen Ladevorgang aus dem Datenspeicher in der Objektbibliothek zum Datenfluss. Der Name des Datenspeichers in dieser Anleitung lautet BQ_DS. Der Name Ihres Datenspeichers kann abweichen.
  2. Ziehen Sie eine Transformation vom Typ XML_Map aus dem Knoten Platform auf dem Tab Transforms der Objektbibliothek zum Datenfluss.
  3. Wählen Sie im Dialogfeld die Option Batch mode (Batchmodus) aus.
  4. Verbinden Sie die Transformation Query (Abfrage) mit der Transformation XML_Map (XML-Zuordnung).
  5. Verbinden Sie die Transformation XML_Map mit der importierten BigQuery-Tabelle.

    Screenshot des anfänglichen Ladeflusses von "Schema Out" über die Transformationen "Query" und "XML_Map" zur BigQuery-Tabelle.

  6. Öffnen Sie die Transformation XML_Map und legen Sie die Abschnitte für die Ein- und Ausgabeschemas anhand der Daten fest, die Sie in die BigQuery-Tabelle aufnehmen.

  7. Klicken Sie im Arbeitsbereich doppelt auf die BigQuery-Tabelle, um sie zu öffnen und die Optionen auf dem Tab Target (Ziel) wie in der folgenden Tabelle angegeben festzulegen:

Option Description (Beschreibung)
Make Port (Als Port verwenden) Geben Sie No an. Dies ist die Standardeinstellung.

Wenn Sie Yes angeben, wird eine Quell- oder Zieldatei als eingebetteter Datenflussport verwendet.
Mode Geben Sie für den anfänglichen Ladevorgang Truncate (Kürzen) an, um eventuell vorhandene Datensätze in der BigQuery-Tabelle durch die von SAP Data Services geladenen Daten zu ersetzen. Truncate ist die Standardeinstellung.
Number of loaders Geben Sie eine positive Ganzzahl ein, um die Anzahl der Loader (Threads) festzulegen, die für die Verarbeitung zu verwenden ist. Der Standardwert ist 4.
Jeder Loader startet einen fortsetzbaren Ladejob in BigQuery. Sie können eine beliebige Anzahl von Loadern angeben.
Hilfe beim Bestimmen einer angemessenen Anzahl von Loadern erhalten Sie unter anderem in folgenden SAP-Dokumentationen:
Maximum failed records per loader Geben Sie 0 oder eine positive Ganzzahl an, um die maximale Anzahl von Datensätzen festzulegen, die pro Ladejob fehlschlagen kann, bevor BigQuery das Laden der Datensätze beendet. Die Standardeinstellung ist null (0).
  1. Klicken Sie in der oberen Symbolleiste auf das Symbol "Validate" (Validieren).
  2. Klicken Sie in der Symbolleiste der Anwendung auf das Symbol "Back" (Zurück), um zum Conditional Editor (Bedingungseditor) zurückzukehren.
Datenfluss für den Deltaladevorgang erstellen

Sie müssen einen Datenfluss erstellen, um die Changed Data Capture-Datensätze zu replizieren, die sich nach dem anfänglichen Ladevorgang ansammeln.

Bedingten Deltafluss erstellen:
  1. Klicken Sie doppelt auf die Bedingung InitialOrDelta.
  2. Klicken Sie mit der rechten Maustaste in den Abschnitt Else (Sonst) und wählen Sie Add New > Script (Neu hinzufügen > Skript) aus.
  3. Benennen Sie das Skript um, beispielsweise in "MarkBeginCDCLoad".
  4. Klicken Sie doppelt auf das Symbol "Script" (Skript), um den "Function Editor" (Funktionseditor) zu öffnen.
  5. Geben Sie "print('Beginning Delta Load');" ein.

    Screenshot des "Function Editor" mit der eingegebenen Ausgabeanweisung.

  6. Klicken Sie in der Symbolleiste der Anwendung auf das Symbol "Back", um zum "Conditional Editor" zurückzukehren.

Datenfluss für den Deltaladevorgang erstellen
  1. Klicken Sie im "Conditional Editor" mit der rechten Maustaste und wählen Sie Add New > Data Flow aus.
  2. Benennen Sie den Datenfluss um, beispielsweise in "DF_SRS_DS_DeltaLoad".
  3. Verbinden Sie MarkBeginCDCLoad mit DF_SRS_DS_DeltaLoad, wie im folgenden Diagramm gezeigt.
  4. Klicken Sie doppelt auf den Datenfluss DF_SRS_DS_DeltaLoad.

    Screenshot, der das if-then-else-Konstrukt für die globale Variable, den anfänglichen Ladefluss und den Deltaladefluss zeigt.
Datenfluss importieren und mit den Quellobjekten des Datenspeichers verbinden
  1. Ziehen Sie die ODP-Quellobjekte per Drag-and-drop aus dem Datenspeicher zum Arbeitsbereich des Datenflusses. Der Datenspeicher in dieser Anleitung lautet DS_SLT. Der Name Ihres Datenspeichers kann abweichen.
  2. Ziehen Sie die Transformation Query aus dem Knoten Platform auf dem Tab Transforms der Objektbibliothek zum Datenfluss.
  3. Klicken Sie doppelt auf die ODP-Objekte und legen Sie auf dem Tab Source (Quelle) die Option Initial Load (Anfänglicher Ladevorgang) auf No (Nein) fest.
  4. Verbinden Sie alle ODP-Quellobjekte im Arbeitsbereich mit der Transformation Query (Abfrage).
  5. Klicken Sie doppelt auf die Transformation Query (Abfrage).
  6. Wählen Sie alle Tabellenfelder in der Liste "Schema In" (Eingabeschema) auf der linken Seite aus und ziehen Sie sie in die Liste "Schema Out" (Ausgabeschema) auf der rechten Seite.
Zeitstempel für die Deltaladevorgänge aktivieren

Mit den folgenden Schritten wird ermöglicht, dass SAP Data Services den Zeitstempel eines jeden ausgeführten Deltaladevorgangs automatisch in einem Feld in der Deltaladetabelle erfasst.

  1. Klicken Sie mit der rechten Maustaste auf den Knoten Query (Abfrage) im Bereich "Schema Out" (Ausgabeschema) auf der rechten Seite.
  2. Wählen Sie New Output Column (Neue Ausgabespalte) aus.
  3. Geben Sie im Feld Name den Namen DL_TIMESTAMP ein.
  4. Wählen Sie im Feld Data type (Datentyp) den Eintrag "datetime" aus.
  5. Klicken Sie auf OK.
  6. Klicken Sie auf das neu erstellte Feld DL_TIMESTAMP.
  7. Öffnen Sie unten den Tab Mapping (Zuordnung).
  8. Geben Sie die folgende Funktion ein:

    • to_date(to_char(sysdate(),'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss')
    Screenshot, der die Definition des Feldes "timestamp" des Deltaladevorgangs auf dem Tab "Mapping" (Zuordnung) für die Deltaladeschemas zeigt.
Datenfluss importieren und mit den Zielobjekten des Datenspeichers verbinden
  1. Ziehen Sie die importierte BigQuery-Tabelle für den Deltaladevorgang aus dem Datenspeicher in der Objektbibliothek zum Arbeitsbereich des Datenflusses und legen Sie sie nach der Transformation XML_Map ab. In dieser Anleitung wird als Name für den Beispieldatenspeicher BQ_DS verwendet. Der Name Ihres Datenspeichers kann abweichen.
  2. Ziehen Sie eine Transformation vom Typ XML_Map aus dem Knoten Platform auf dem Tab Transforms der Objektbibliothek zum Datenfluss.
  3. Verbinden Sie die Transformation Query (Abfrage) mit der Transformation XML_Map (XML-Zuordnung).
  4. Verbinden Sie die Transformation XML_Map mit der importierten BigQuery-Tabelle.

    Screenshot des Deltaladeflusses von "Schema Out" über die Transformationen "Query" und "XML_Map" zur BigQuery-Tabelle.

  5. Öffnen Sie die Transformation XML_Map und legen Sie die Abschnitte für die Ein- und Ausgabeschemas anhand der Daten fest, die Sie in die BigQuery-Tabelle aufnehmen.

    Screenshot des Fensters "Transform Editor" mit den Ein- und Ausgabeschemas.
  6. Klicken Sie im Arbeitsbereich doppelt auf die BigQuery-Tabelle, um sie zu öffnen und die Optionen auf dem Tab Target wie in der folgenden Tabelle angegeben festzulegen:

Option Description (Beschreibung)
Make Port (Als Port verwenden) Geben Sie No an. Dies ist die Standardeinstellung.

Wenn Sie Yes angeben, wird eine Quell- oder Zieldatei als eingebetteter Datenflussport verwendet.
Mode Geben Sie für die Deltaladevorgänge Append (Anhängen) an, um die vorhandenen Datensätze in der BigQuery-Tabelle beizubehalten, wenn neue Datensätze aus SAP Data Services geladen werden.
Number of loaders (Anzahl der Loader) Geben Sie eine positive Ganzzahl ein, um die Anzahl der Loader (Threads) festzulegen, die für die Verarbeitung zu verwenden ist.

Jeder Loader startet einen fortsetzbaren Ladejob in BigQuery. Sie können eine beliebige Anzahl von Loadern angeben. Deltaladevorgänge erfordern generell weniger Loader als der anfängliche Ladevorgang.

Hilfe beim Bestimmen einer angemessenen Anzahl von Loadern erhalten Sie unter anderem in folgenden SAP-Dokumentationen:

Maximum failed records per loader (Maximale Anzahl von fehlgeschlagenen Datensätzen pro Loader) Geben Sie 0 oder eine positive Ganzzahl an, um die maximale Anzahl von Datensätzen festzulegen, die pro Ladejob fehlschlagen kann, bevor BigQuery das Laden der Datensätze beendet. Die Standardeinstellung ist null (0).
  1. Klicken Sie in der oberen Symbolleiste auf das Symbol "Validate" (Validieren).
  2. Klicken Sie in der Symbolleiste der Anwendung auf das Symbol "Back", um zum Conditional Editor zurückzukehren.
Screenshot des "Target Table Editor" (Zieltabelleneditors).

Daten in BigQuery laden

Die Schritte für einen anfänglichen Ladevorgang und einen Deltaladevorgang sind ähnlich. Bei beiden starten Sie den Replikationsjob und führen den Datenfluss in SAP Data Services aus, um die Daten aus SAP LT Replication Server in BigQuery zu laden. Ein wichtiger Unterschied zwischen den beiden Ladeprozeduren besteht im Wert der globalen Variablen $INITLOAD. Bei einem anfänglichen Ladevorgang muss $INITLOAD auf "1" festgelegt werden. Bei einem Deltaladevorgang muss $INITLOAD auf "0" festgelegt sein.

Anfänglichen Ladevorgang ausführen

Wenn Sie einen anfänglichen Ladevorgang ausführen, werden alle Daten im Quell-Dataset in die BigQuery-Zieltabelle repliziert, die mit dem Datenfluss des anfänglichen Ladevorgangs verbunden ist. Alle Daten in der Zieltabelle werden überschrieben.

  1. Öffnen Sie in SAP Data Services Designer den "Project Explorer" (Projektexplorer).
  2. Klicken Sie mit der rechten Maustaste auf den Namen des Replikationsjobs und wählen Sie Execute (Ausführen) aus. Ein Dialogfeld wird angezeigt.
  3. Öffnen Sie im Dialogfeld den Tab Globale Variable und ändern Sie den Wert von $INITLOAD auf 1, sodass der anfängliche Ladevorgang zuerst ausgeführt wird.
  4. Klicken Sie auf OK. Der Ladevorgang wird gestartet und im SAP Data Services-Log werden jetzt Debug-Meldungen angezeigt. Die Daten werden in die Tabelle geladen, die Sie in BigQuery für anfängliche Ladevorgänge erstellt haben. Der Name der anfänglichen Ladetabelle in dieser Anleitung lautet BQ_INIT_LOAD. Der Name Ihrer Tabelle kann abweichen.
  5. Um festzustellen, ob der Ladevorgang abgeschlossen ist, rufen Sie die Google Cloud Console auf und öffnen Sie das BigQuery-Dataset, das die Tabelle enthält. Wenn die Daten noch geladen werden, sehen Sie Wird geladen neben dem Tabellennamen.

Nachdem die Daten geladen wurden, können sie in BigQuery verarbeitet werden.

Von diesem Punkt an werden alle Änderungen in der Quelltabelle in der Delta Queue von SAP LT Replication Server aufgezeichnet. Zum Laden der Daten aus der Delta Queue in BigQuery führen Sie einen Deltaladejob aus.

Deltaladevorgang ausführen

Wenn Sie einen Deltaladevorgang ausführen, werden nur die Änderungen aus den Quelldaten, die seit dem letzten Ladevorgang vorgenommen wurden, in die BigQuery-Zieltabelle repliziert, die mit dem Datenfluss des Deltaladevorgangs verbunden ist.

  1. Klicken Sie mit der rechten Maustaste auf den Jobnamen und wählen Sie Execute aus.
  2. Klicken Sie auf OK. Der Ladevorgang wird gestartet und im SAP Data Services-Log werden jetzt Debug-Meldungen angezeigt. Die Daten werden in die Tabelle geladen, die Sie in BigQuery für die Deltaladevorgänge erstellt haben. In dieser Anleitung lautet der Name der Deltaladetabelle BQ_DELTA_LOAD. Der Name Ihrer Tabelle kann abweichen.
  3. Wenn Sie feststellen möchten, ob der Ladevorgang abgeschlossen ist, rufen Sie die Google Cloud Console auf und öffnen Sie das BigQuery-Dataset, das die Tabelle enthält. Wenn die Daten noch geladen werden, sehen Sie Wird geladen neben dem Tabellennamen.
  4. Nachdem die Daten geladen wurden, können sie in BigQuery verarbeitet werden.

Zum Verfolgen der Änderungen an den Quelldaten zeichnet SAP LT Replication Server die Reihenfolge der Datenänderungsvorgänge in der Spalte DI_SEQUENCE_NUMBER und den Typ der Datenänderungsvorgänge in der Spalte DI_OPERATION_TYPE auf (D = Delete (Löschen), U = Update (Aktualisieren), I = Insert (Einfügen)). SAP LT Replication Server speichert die Daten in den Spalten der Delta Queue-Tabellen, aus denen sie in BigQuery repliziert werden.

Deltaladevorgänge planen

Mit der SAP Data Services Management Console können Sie einen Deltaladejob zur Ausführung in regelmäßigen Abständen planen.

  1. Öffnen Sie die Anwendung SAP Data Services Management Console.
  2. Klicken Sie auf Administrator.
  3. Maximieren Sie in der Menüstruktur auf der linken Seite den Knoten Batch.
  4. Klicken Sie auf den Namen Ihres SAP Data Services-Repositorys.
  5. Klicken Sie auf den Tab Batch Job Configuration (Batchjobkonfiguration).
  6. Klicken Sie auf Add Schedule (Zeitplan hinzufügen).
  7. Geben Sie im Feld Schedule name (Zeitplanname) einen Namen ein.
  8. Aktivieren Sie Active (Aktiv).
  9. Geben Sie im Abschnitt Select scheduled time for executing the jobs die Häufigkeit für die Ausführung Ihrer Deltaladevorgänge an.
    1. Wichtig: In Google Cloud ist die Anzahl der BigQuery-Ladejobs begrenzt, die Sie pro Tag ausführen können. Achten Sie darauf, dass Ihr Zeitplan dieses Limit nicht überschreitet, da es nicht erhöht werden kann. Weitere Informationen zum Limit für BigQuery-Ladejobs finden Sie unter Kontingente und Limits in der BigQuery-Dokumentation.
  10. Maximieren Sie Global Variables (Globale Variablen) und prüfen Sie, ob $INITLOAD auf 0 festgelegt ist.
  11. Klicken Sie auf Apply.
Screenshot der SAP Data Services Management Console.

Nächste Schritte

Replizierte Daten in BigQuery abfragen und analysieren

Mehr zu Abfragen finden Sie unter:

Einige Ideen dazu, wie Sie große Datenmengen aus dem anfänglichen Ladevorgang und den Deltaladevorgängen in BigQuery konsolidieren, finden Sie unter:

Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center