Mit dem SAP Table Batch Source-Plug-in (SAP Table-Plug-in) können Sie Daten aus SAP-Standard- und benutzerdefinierten Tabellen oder Ansichten lesen. Ermöglicht die Bulk-Datenaufnahme aus SAP in BigQuery oder ein anderes unterstütztes Zielsystem mit der Cloud Data Fusion. Das Plug-in hat die folgenden Hauptfunktionen:
- SAP ECC, SAP S/4HANA oder SAP BW als Quellsystem verwendet
- Es wird kein SAP CDC (Change Data Capture) verwendet, um neue und Deltadaten in den Datenquellen zu erfassen und zu extrahieren.
- Batch-Extraktionsmodus verwendet
- Unterstützt SAP-Tabellen und ABAP-CDS-Ansichten als Datenquellen
- Zugriff auf SAP-Daten über die Anwendungsebene
Sie können Daten aus folgenden Quellen lesen:
- Transparente Tabellen
- Tabellen gruppieren
- Billardtische
- ABAP-CDS-Ansichten
- SAP BW-ADSO-Objekte
Unterstützte Softwareversionen
Software | Versionen |
---|---|
SAP S4/HANA | SAP S4/HANA 1909 und höher |
SAP ECC | SAP ERP6 NW 7.31 SP16 und höher |
SAP JCo | SAP JCo-Version 3.0.20 und höher |
Cloud Data Fusion | 6.3 und höher |
Weitere Informationen zu SAP in Google Cloud finden Sie in den Übersicht über SAP in Google Cloud
Hinweis
Richten Sie die folgenden Systeme und Dienste ein, die vom SAP Table-Plug-in verwendet werden:
- Konfigurieren Sie das SAP ERP-System.
Dieser Prozess umfasst die folgenden Schritte:
- Installieren Sie die SAP-Transportdateien.
- Richten Sie die erforderlichen SAP-Autorisierungen und -Rollen ein.
- Richten Sie den SAP Java-Connector ein.
Bereitstellen des Plug-ins in Cloud Data Fusion
- Wichtig: Wählen Sie eine Plug-in-Version, die mit dem Cloud Data Fusion-Version.
- Wenn Sie die Version von Cloud Data Fusion aktualisieren oder Plug-in die Auswirkungen der Änderungen auf den Funktionsbereich und Leistung der Pipeline prüfen.
RFC-Verbindung zwischen Cloud Data Fusion und SAP einrichten
- Stellen Sie sicher, dass die Kommunikation zwischen den Cloud Data Fusion-Instanz und den SAP-Server.
- Richten Sie für private Instanzen VPC-Netzwerk-Peering ein.
- Sowohl das SAP-System als auch die Cloud Data Fusion-Instanz müssen sich im selben Projekt befinden.
Plug-in konfigurieren
- Zur Weboberfläche von Cloud Data Fusion und klicke auf Studio.
- Achten Sie darauf, dass Datenpipeline – Batch ausgewählt ist (nicht Echtzeit).
- Klicken Sie im Menü Quelle auf SAP-Tabelle. Der SAP-Tabellenknoten wird in Ihrer Pipeline angezeigt.
- Klicken Sie zum Konfigurieren der Quelle auf den Knoten „SAP-Tabelle“ und dann auf Attribute.
Geben Sie die folgenden Properties ein. Eine vollständige Liste finden Sie unter Properties.
- Geben Sie ein Label für den SAP-Tabellenknoten ein –
Beispiel:
SAP tables
. Geben Sie die Verbindungsdetails ein. Sie können eine neue einmalige Verbindung oder eine vorhandene wiederverwendbare Verbindung einrichten.
Neue Verbindung
So fügen Sie eine einmalige Verbindung zu SAP hinzu:
- Lassen Sie die Option Verbindung verwenden deaktiviert.
Geben Sie im Abschnitt Verbindung die folgenden Informationen ein. aus dem SAP-Konto in die folgenden Felder ein:
- Geben Sie im Feld Referenzname einen Namen für die Verbindung ein, mit dem diese Quelle für die Herkunft identifiziert wird.
- Geben Sie im Feld SAP-Client den Namen des Clients einer bestimmten Instanz oder Umgebung in SAP ein. Ein SAP Administrator kann den Kundennamen angeben.
- Geben Sie im Feld SAP-Sprache eine SAP-Anmeldesprache ein. Der Standardwert ist EN (Englisch).
Wählen Sie einen der folgenden Verbindungstypen aus.
- Direkt (über SAP Application Server). Wenn Sie Standardtyp verwenden, geben Sie Informationen in das Felder: Host des SAP-Anwendungsservers, SAP-System Nummer und SAP-Router.
- Load Balancing (über SAP Message Server) Wenn Sie diesen Typ auswählen, geben Sie Informationen in die folgenden Felder ein: SAP Message Server-Host, SAP Message Server-Dienst oder Portnummer, SAP-System-ID (SID) und Name der SAP-Anmeldegruppe.
Geben Sie im Feld SAP-Tabellen-/Ansichtsname den Namen der Tabelle oder Ansicht aus Ihrem SAP-System ein.
SAP-Anmeldedaten angeben: Fragen Sie Ihren SAP-Administrator nach dem Nutzernamen für die SAP-Anmeldung und dem Passwort.
Geben Sie im Feld Cloud Storage-Pfad der JCo-Bibliothek die SAP- Java-Connector-Pfad (SAP JCo) in Cloud Storage, der die von Ihnen hochgeladenen SAP JCo-Bibliotheksdateien enthält.
Klicken Sie auf Schema abrufen, um ein Schema auf Basis der Metadaten von SAP zu generieren, das SAP-Datentypen den entsprechenden Cloud Data Fusion-Datentypen zuordnet. Weitere Informationen finden Sie unter Datentypzuordnungen.
Optional: Geben Sie zum Optimieren der Aufnahmelast von SAP Folgendes ein: in die folgenden Felder ein:
Mit den Filteroptionen können Sie Datensätze basierend auf Auswahlbedingungen extrahieren, z. B. Spalten mit einem definierten Satz von Werten. Definieren Sie die Bedingungen in der OpenSQL-Syntax in einer
WHERE
-Klausel. Mit dieser Abfrage werden beispielsweise alle Zeilen aus der TabelleRoster
zurückgegeben, in denen die SpalteSchoolID
den WertSchoolID > 52
enthält:SELECT * FROM Roster WHERE SchoolID > 52;
Weitere Informationen finden Sie unter Unterstützte Filter.
Im Feld Anzahl der abzurufenden Zeilen können Sie einen die Daten extrahiert werden, indem eine positive ganze Zahl angegeben wird von Zeilen.
Im Feld Anzahl der Aufteilungen können Sie Partitionen erstellen, um Datensätze parallel zu extrahieren. Dadurch wird die Leistung verbessert. Die Anzahl der Aufteilungen kann sich auf SAP-Arbeitsprozesse auswirken und muss daher sorgfältig ausgewählt werden.
Geben Sie im Feld Paketgröße die Anzahl der Datensätze an, die in einem einzelnen SAP-Netzwerkaufruf extrahiert werden sollen. Die Paketgröße wirkt sich auf die Leistung und die verfügbaren Ressourcen aus und muss daher sorgfältig ausgewählt werden.
Wiederverwendbare Verbindung
So verwenden Sie eine vorhandene Verbindung wieder:
- Aktivieren Sie Verbindung verwenden.
- Klicken Sie auf Verbindungen durchsuchen.
Klicken Sie auf den Namen der Verbindung.
Wenn keine Verbindung vorhanden ist, gehen Sie wie folgt vor, um eine wiederverwendbare Verbindung zu erstellen: diese Schritte:
- Klicken Sie auf Verbindung hinzufügen > SapTable.
- Geben Sie auf der Seite SapTable-Verbindung erstellen einen Namen und eine Beschreibung für die Verbindung ein.
- Geben Sie im Feld SAP-Client den Clientnamen eines eine bestimmte Instanz oder Umgebung in SAP ausführen. Ein SAP Administrator kann den Kundennamen angeben.
- Geben Sie im Feld SAP-Sprache eine SAP-Anmeldesprache ein. Der Standardwert ist EN (Englisch).
Wählen Sie einen der folgenden Verbindungstypen aus.
- Direkt (über SAP Application Server) Wenn Sie Standardtyp verwenden, geben Sie Informationen in das Felder: Host des SAP-Anwendungsservers, SAP-System Nummer und SAP-Router.
- Load Balancing (über SAP Message Server) Wenn Sie diesem Typ, geben Sie Informationen in die folgenden Felder ein: SAP Message Server-Host, SAP Message Server-Dienst oder Portnummer, SAP-System-ID (SID) und SAP-Anmeldung Gruppenname.
Geben Sie die SAP-Anmeldedaten an. Fragen Sie Ihren SAP-Administrator nach den Nutzernamen für SAP-Anmeldung und das Passwort.
Geben Sie im Feld JCo-Bibliothek – Cloud Storage-Pfad den Pfad zum SAP Java Connector (SAP JCo) in Cloud Storage ein, der die von Ihnen hochgeladenen SAP JCo-Bibliotheksdateien enthält.
Optional: unter Zusätzliche SAP-Verbindungsattribute Schlüssel/Wert-Paare eingeben, die die SAP JCo überschreiben müssen Standardeinstellungen.
Klicken Sie auf Erstellen.
- Geben Sie ein Label für den SAP-Tabellenknoten ein –
Beispiel:
Attribute
Attribut | Makro aktiviert | Erforderliche Property | Beschreibung |
---|---|---|---|
Label | Nein | Ja | Der Name des Knotens in Ihrer Datenpipeline. |
Verbindung verwenden | Nein | Nein | Wiederverwendbare Verbindung verwenden. Wenn eine Verbindung verwendet wird, müssen Sie die Anmeldedaten nicht angeben. Weitere Informationen finden Sie unter Verbindungen verwalten |
Referenzname | Nein | Ja | Wenn Verbindung verwenden nicht aktiviert ist, wird dieses Feld angezeigt. Der Name der Verbindung, die für die Herkunft verwendet werden soll. |
Name | Nein | Ja | Wenn Verbindung verwenden aktiviert ist, wird dieses Feld angezeigt. Der Name der wiederverwendbaren Verbindung. |
SAP-Client | Ja | Ja | Die Instanz oder Umgebung in einem SAP-System. |
Snapshot erstellen | Ja | Ja | Aktivieren Sie Snapshots von Daten in SAP. Zeitpunkt für das Aktivieren von Snapshots:
Wann Sie Snapshots deaktivieren sollten: Sie führen mehrere Datenextraktionen mit großem Volumen parallel aus. Snapshots verwenden Puffertabellen in SAP, was zu out of memory -Problemen in SAP führen kann. Nach Abschluss der Datenextraktion wird die Puffertabelle jedoch gelöscht. |
SAP-Sprache | Ja | Ja | Die Sprache, in der die SAP-Benutzeroberfläche und die Daten angezeigt werden verarbeitet werden. |
Verbindungstyp | Nein | Ja | Der SAP-Verbindungstyp: Direkt oder Load Balancing. |
SAP-Anwendungsserver-Host | Ja | Nein | Nur für den Verbindungstyp Direkt lautet dieser Hostname: vom SAP Application Server, der als Middleware-Schicht zwischen SAP-Clients (z. B. die SAP-Weboberfläche, Webbrowser oder mobile Apps) und der zugrunde liegenden Datenbank. |
SAP-Systemnummer | Ja | Nein | Nur für den Verbindungstyp Direkt ist diese Zahl der Wert
eindeutige Kennung, die jedem SAP-System zugewiesen ist. Beispiel:
00 |
SAP-Router | Ja | Nein | Nur beim Verbindungstyp Direkt: Der Router String für den Proxyserver, der einen sicheren Kanal für Kommunikation zwischen SAP-Systemen und externen Kunden oder Partnern. |
SAP Message Server-Host | Ja | Nein | Nur beim Verbindungstyp Load Balanced ist dies der Name des Hosts, der das Load Balancing auf mehrere Anwendungsserver in SAP ermöglicht. |
SAP Message Server-Dienst oder Portnummer | Ja | Nein | Nur beim Verbindungstyp Load-Balancing ist dies der Wert Netzwerkport, an dem der SAP Message Server eingehende Verbindungen empfängt von SAP-Clients und Anwendungsservern in SAP. |
SAP-System-ID (SID) | Ja | Nein | Nur beim Verbindungstyp Load-Balancing: die jedem SAP-System zugewiesen sind. |
SAP-Anmeldegruppenname | Ja | Nein | Der Name der logischen Gruppierung oder Konfiguration mehrerer SAP-Anwendungsserver. Der Standardwert ist PUBLIC . |
SAP-Tabellen-/Ansichtsname | Ja | Ja | Ein gültiger Tabellen- oder Ansichtsname, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird und aus dem alle Spalten extrahiert werden können. |
Nutzername für SAP-Anmeldung | Ja | Ja | Nutzername für SAP Empfohlen: Verwenden Sie ein Makro, wenn sich der Nutzername regelmäßig ändert. |
SAP-Anmeldepasswort | Ja | Ja | SAP-Passwort. Empfohlen: Verwenden Sie sichere Makros. |
GCP-Projekt-ID | Ja | Ja | Google Cloud-Projekt-ID |
GCS-Pfad der SAP JCo-Bibliothek | Ja | Ja | Der Pfad zu Cloud Storage, in den Sie die SAP JCo hochgeladen haben Bibliotheksdateien. |
Schema abrufen | – | – | Das Plug-in generiert ein Schema auf Basis der Metadaten von SAP, das SAP-Datentypen den entsprechenden Cloud Data Fusion-Datentypen zuordnet. Weitere Informationen finden Sie unter Datentypzuordnung. |
Zusätzliche SAP-Verbindungsattribute | Ja | Nein | Legen Sie zusätzliche SAP JCo-Attribute fest, um die SAP JCo-Standardeinstellungen zu überschreiben.
Wenn Sie beispielsweise jco.destination.pool_capacity = 10 festlegen, wird die Standardkapazität des Verbindungspools überschrieben. |
Filter | Ja | Nein | Bedingungen, die in der OpenSQL-Syntax angegeben sind und mit einer SQL-WHERE -Klausel gefiltert werden. Extrahieren Sie Datensätze basierend auf Bedingungen, z. B.
in Spalten mit einem definierten
Satz von Werten oder einem Wertebereich.
Weitere Informationen finden Sie unter Unterstützte Filter. |
Anzahl der abzurufenden Zeilen | Ja | Nein | Begrenzt die Anzahl der extrahierten Datensätze.
|
Anzahl der zu generierenden Aufteilungen | Ja | Nein | Erstellt Partitionen, um Datensätze parallel zu extrahieren. Die Laufzeit-Engine erstellt die angegebene Anzahl von Partitionen (und Verbindungen) beim Extrahieren der Datensätze. Seien Sie vorsichtig, wenn Sie diesen Wert erhöhen, da dadurch die Anzahl der gleichzeitigen Verbindungen mit SAP steigt. Empfohlen: Planen Sie SAP-Verbindungen für jede Pipeline und die Gesamtzahl der Pipelines, die gleichzeitig ausgeführt werden. Wenn der Wert 0 ist oder leer gelassen wird, wählt Cloud Data Fusion einen basierend auf der Anzahl der verfügbaren Executors, zu extrahierenden Datensätzen und die Paketgröße. |
Paketgröße | Ja | Nein | Die Anzahl der Datensätze, die in einem einzelnen SAP-Netzwerkaufruf extrahiert werden sollen. Es ist
Anzahl der Datensätze, die SAP während jedes Netzwerks im Arbeitsspeicher zwischenspeichert
Extract-Aufruf. Seien Sie vorsichtig, wenn Sie dieses Attribut festlegen. Mehrere Datenpipelines, die Daten extrahieren, können die Speicherauslastung erhöhen und zu Fehlfunktionen aufgrund von Out of memory -Fehlern führen.
|
Unterstützte Filter
Die folgenden Filterbedingungen werden unterstützt.
Filter mit einem Vergleichsoperator
Mit Vergleichsoperatoren können Sie komplexere Filteroptionen auf der Grundlage Vergleiche zwischen Werten.
Syntax
SELECT * FROM table_name WHERE column_name > value; \ SELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2;
Beispiel
AUDAT GT '20230914'
Filter mit einem LIKE
-Operator
Verwenden Sie LIKE
-Operatoren für den Musterabgleich. Übereinstimmung mit beliebigen
enthalten, verwenden Sie das Symbol %
als Platzhalter.
Syntax
SELECT * FROM table_name WHERE column_name LIKE 'pattern%';
Beispiel
ERNAM LIKE 'KIRAN%'
Filter mit einem IN
-Operator
Verwenden Sie IN
-Operatoren, um eine Liste von Werten anzugeben, mit denen abgeglichen werden soll.
Syntax
SELECT * FROM table_name WHERE column_name \ IN ('value1', 'value2', 'value3');
Beispiel
ERNAM IN ( 'LEE' , 'KIRAN' )
Filter mit einem Logikoperator
Verwenden Sie logische Operatoren, um eine Liste mit Werten anzugeben, mit denen abgeglichen werden soll.
Syntax
SELECT * FROM table_name WHERE condition1 AND condition2; \ SELECT * FROM table_name WHERE condition1 OR condition2; \ SELECT * FROM table_name WHERE NOT condition;
Beispiele
( AUDAT EQ '20220615' ) AND ( ERNAM LIKE 'LEE%' )
( AUDAT EQ '20220615' ) OR ( AUDAT EQ '20220617' )
Filter mit einem Zeitraum
Mithilfe von Zeiträumen können Sie Zeilen abrufen, deren Datum/Uhrzeit-Spalte in einen bestimmten Zeitraum fällt.
Syntax
SELECT * FROM table_name \ WHERE datetime_column >= 'start_date' AND datetime_column <= 'end_date';
Beispiel
AUDAT GE '20230910' AND AUDAT LE '20230914'
Filter mit einem Datumsvergleich
Verwenden Sie Datumsvergleiche, um Zeilen abzurufen, in denen Datum und Uhrzeit verwendet werden.
Syntax
SELECT * FROM table_name WHERE datetime_column > 'target_date';
Beispiel
AUDAT GE '20230910' AND AUDAT LE '20230914'
Filter, der Datum und Uhrzeit kombiniert
Wenn Ihre Datum/Uhrzeit-Spalte sowohl Datum als auch Uhrzeit enthält, können Sie entsprechend anpassen.
Syntax
SELECT * FROM table_name \ WHERE datetime_column >= 'target_datetime' \ AND datetime_column <= 'target_datetime';
Beispiel
TIMESTAMP GE '20210602144800' AND TIMESTAMP LE '20210624080836'
(Zeitstempelformat: JJJJMMTTHHMMSS)
Filter mit mehreren Bedingungen, die mit logischen Operatoren kombiniert werden
Sie können Zeilen, die mehrere Bedingungen erfüllen, mithilfe von logischen
wie AND
und OR
.
Syntax
SELECT * FROM table_name \ WHERE (column1 = 'value1' AND column2 > value2) \ OR (column3 = 'value3' AND column4 < value4);
Beispiel
( ERNAM EQ 'LEE' AND AUDAT GT '20220722' ) \ OR ( BSTNK EQ 'PO54321065' AND BSTDK LT '20220714' )
Filtern mit verschachtelten Bedingungen
Sie können Bedingungen verschachtelt kombinieren, um komplexe Filter.
Syntax
SELECT * FROM table_name \ WHERE (column1 = 'value1' OR (column2 = 'value2' AND column3 > value3)) \ AND column4 = 'value4';
Beispiel
( ERDAT EQ '20220722' OR ( ERNAM EQ 'LEE' AND VDATU GT '20210623' ) ) \ AND FMBDAT EQ '20220722'
Filter, der Unterabfragen verwendet
Mit untergeordneten Abfragen können Sie anhand der Ergebnisse einer anderen Abfrage filtern.
Syntax
SELECT * FROM table_name \ WHERE column1 IN (SELECT related_column FROM other_table WHERE condition);
Beispiel
VBELN IN ( SELECT VBELN FROM VBAK WHERE ERNAM = 'LEE' )
Kombinierte Datums- und Wertbedingungen filtern
Sie können datums- und wertbasierte Bedingungen in einem komplexen Filter kombinieren.
Syntax
SELECT * FROM table_name \ WHERE (column1 = 'value1' OR column2 = 'value2') \ AND datetime_column > 'target_datetime';
Beispiel
( ERDAT EQ '20220722' OR ERNAM EQ 'LEE' ) AND VDATU GT '20210623'
Filter mit Datumsformatierung
In SAP werden Datums- und Uhrzeitfelder immer ohne -
oder
:
auf Datenbankebene.
Syntax
SELECT * FROM table_name \ WHERE datetime_column >= 'YYYY-MM-DD HH:MM:SS' \ AND datetime_column <= 'YYYY-M
Nicht unterstützt: Filter mit Funktionen und Vergleichsoperatoren
In SAP werden Funktionen in der WHERE-Klausel der QUERY nicht unterstützt.
Nicht unterstützt: Filter mit Intervallen
In SAP wird die Funktion NOW()
nicht unterstützt.
Syntax
SELECT * FROM table_name \ WHERE datetime_column >= NOW() - INTERVAL X DAY;
Nicht unterstützt: Datumskomponente für Filterextraktion
In SAP wird die Offset-Filterung nicht unterstützt.
Beispiel
WHERE YEAR+0(4) = 2023
Datentypzuordnungen
Die folgende Tabelle enthält eine Liste der SAP-Datentypen mit den entsprechenden Cloud Data Fusion-Typen.
SAP-Datentyp | ABAP-Typ | SAP description | Cloud Data Fusion-Datentyp |
---|---|---|---|
INT1 (Numerisch) |
b | 1-Byte-Ganzzahl | int |
INT2 (numerisch) |
s | 2-Byte-Ganzzahl | int |
INT4 (Numerisch) |
i | 4-Byte-Ganzzahl | int |
INT8 (Numerisch) |
8 | 8-Byte-Ganzzahl | long |
DEC (Numerisch) |
p | Nummer des Pakets im BCD-Format (DEC) | decimal |
DF16_DEC , DF16_RAW (numerisch) |
a | Dezimales Gleitkomma, 8 Byte IEEE 754r | double |
DF34_DEC , DF34_RAW (numerisch) |
e | Dezimales Gleitkomma 16 Byte IEEE 754r | double |
FLTP (numerisch) |
f | Binäre Gleitkommazahl | double |
CHAR , LCHR (Zeichen) |
c | Zeichenstring | String |
SSTRING , GEOM_EWKB (Zeichen) |
String | Zeichenstring | String |
STRING (Zeichen) |
String | Zeichenstring CLOB | Byte |
NUMC , ACCP (Zeichen) |
n | Numerischer Text | String |
RAW , LRAW (Byte) |
x | Binärdaten | Byte |
RAWSTRING (Byte) |
Xstring | Bytestring BLOB | Byte |
DATS (Datum/Uhrzeit) |
d | Datum | Datum |
TIMS (Datum/Uhrzeit) |
t | Zeit | Zeit |
TIMS (Datum/Uhrzeit) |
utcl | (Utclong), Zeitstempel | timestamp |
Anwendungsfälle
Es werden zwei Extraktionskontexte unterstützt:
- Tabellen und Ansichten der SAP-Datenbank
- SAP ABAP-CDS
In jedem dieser Kontexte unterstützt das SAP-Tabellen-Plug-in Standard- und benutzerdefinierte Datenbanktabellen und ‑ansichten.
Beschränkungen
Das SAP-Tabellen-Plug-in hat die folgenden Einschränkungen:
- Das Zusammenführen von Tabellen wird nicht unterstützt.
- Sie unterstützt keine CDS-Ansichten mit Parametern.
- Ohne wichtige Felder wird sie nicht unterstützt.
- Wenn das Snapshot-Feature aktiviert ist, mit einer Paketgröße von mehr als 30.000 zu Pipelinefehlern führen. Diese Paketgröße kann je nach Anzahl der Spalten in der SAP-Tabelle variieren. Sie können die optimale Paketgröße für eine Tabelle mithilfe der folgenden Formel berechnen: Zeilengröße (in Zeichen) * 5.
- Mit Connection Manager können Sie maximal 1.000 SAP-Tabellennamen durchsuchen.
- Wenn ein Pipelinefehler auftritt, z. B. ein Fehler in der Senke, wird die SAP-Tabelle
versucht, alle aktiven SAP-Nebenprozesse im Zusammenhang
Extrahieren, indem Sie die für die Bereinigung vorgesehene benutzerdefinierte RFM aufrufen:
/GOOG/RFC_READ_TABLE_CLEANUP
Versionshinweise
Nächste Schritte
- Weitere Informationen zu SAP in Google Cloud.