Der folgende Abschnitt behandelt das Laden der SAP-Extraktionsdaten in Hadoop.
Verbindung #
Eine Destination hinzufügen #
- Navigieren Sie im Hauptfenster des Designers zu Server > Manage Destinations. Das Fenster “Manage Destination” wird geöffnet.
- Klicken Sie auf [Add], um eine neue Destination hinzufügen. Das Fenster “Destination Details” wird geöffnet.
- Geben Sie einen Namen für die Destination ein.
- Wählen Sie den Destinationstyp aus dem Dropdown-Menü aus.
Destination Details #
Hadoop Settings #
HDFS Web API
Web Hdfs URL
Geben Sie die URL der REST API an. Die URL enthält das Präfix /webhdfs/v1/
und das folgende Format:
http://[host]:[port]/webhdfs/v1/[path]
Für nähere Informationen zu Hdfs URLs, siehe WebHDFS REST API: FileSystem URIs vs HTTP URLs.
User name
Geben Sie einen Hadoop-Benutzer mit Schreibrechten an.
Wenn kein Benutzer eingetragen wird, wird der Standard-Benutzer dr.who verwendet.
Connect
Klicken Sie auf [Connect], nachdem Sie die URL der Web API und den Benutzer eingetragen haben, um zu prüfen ob eine Verbindung hergestellt werden kann.
File Format #
File type
Wählen Sie das gewünschte Dateiformat zwischen CSV, Parquet und Json.
CVS Settings - Einstellungen
Um Daten im csv-Format zu schreiben, sind keine weiteren Einstellungen nötig.
Parquet Settings - Einstellungen
Um Daten im parquet-Format zu schreiben, sind keine weiteren Einstellungen nötig.
Json Settings - Einstellungen
Um Daten im json-Format zu schreiben, sind keine weiteren Einstellungen nötig.
Einstellungen #
Destination Settings öffnen #
- Eine bestehende Extraktion anlegen oder auswählen (siehe auch Erste Schritte mit Xtract Universal).
- Klicken Sie auf [Destination]. Das Fenster “Destination Settings” wird geöffnet.
Die folgenden Einstellungen können für die Destination definiert werden.
Destination Settings - Destinationseinstellungen #
File Name #
File Name bestimmt den Namen der Zieltabelle. Sie haben die folgenden Optionen:
- Same as name of SAP object: Name des SAP-Objekts übernehmen
- Same as name of extraction: Name der Extraktion übernehmen
- Custom: Hier können Sie einen eigenen Namen definieren
- Append timestamp: fügt den Zeitstempel im UTC-Format (_YYYY_MM_DD_hh_mm_ss_fff) dem Dateinamen der Extraktion hinzu.
Hinweis: Wenn der Name eines Objekts nicht mit einem Buchstaben beginnt, wird ‘x’ als Präfix ergänzt, z.B. wird das Objekt _namespace_tabname.csv
zu x_namespace_tabname.csv
, wenn es auf die Destination hochgeladen wird.
Damit wird die Kompatibilität zu Azure Data Factory, Hadoop und Spark sichergestellt, die mit Buchstaben beginnende Objektnamen voraussetzen oder die nicht alphabetischen Zeichen besondere Bedeutungen zuweisen.
Skript-Ausdrücke als dynamische Dateinamen
Skript-Ausdrücke können für die Generierung eines dynamischen Dateinamens verwendet werden. Dadurch kann ein Name generiert werden, der sich aus den Eigenschaften einer Extraktion zusammensetzt, z.B. Extraktionsname, SAP-Quellobjekt. Unterstützt werden Skript-Ausdrücke, die auf .NET basieren, sowie folgende XU-spezifische Skript-Ausdrücke:
Eingabe | Beschreibung |
---|---|
#{Source.Name}# |
Name der SAP Quelle. |
#{Extraction.ExtractionName}# |
Name der Extraktion. |
#{Extraction.Type}# |
Extraktionstyp (Table, ODP, DeltaQ, etc.). |
#{Extraction.SapObjectName}# |
Name des SAP Objekts, von dem die Extraktion Daten extrahiert. |
#{Extraction.Timestamp}# |
Zeitstempel der Extraktion. |
#{Extraction.SapObjectName.TrimStart("/".ToCharArray())}# |
Entfernt einen führenden Schrägstrich, z.B. wird aus /BIO/TMATERIAL dann BIO/TMATERIAL, damit kein leeres Verzeichnis angelegt wird. |
#{Extraction.SapObjectName.Replace('/', '_')}# |
Entfernt alle Schrägstriche eines SAP Objekts, z.B. wird aus /BIO/TMATERIAL dann _BIO_TMATERIAL. Dadurch wird verhindert, dass die Schrägstriche innerhalb des Namens des SAP Objekts, nicht als Verzeichnistrenner interpretiert werden. |
#{Extraction.Context}# |
Nur für ODP Extraktionen: Kontext des ODP Objekts (SAPI, ABAP_CDS, etc.). |
#{Extraction.Fields["[NameSelectionFiels]"].Selections[0].Value}# |
Nur für ODP Extraktionen: Eingabewert einer definierten Selektion / eines Filter. |
#{TableExtraction.WhereClause}# |
Nur für Table Extraktionen: WHERE-Bedingung der Extraktion. |
Für mehr Informationen zu Skript-Ausdrücken, siehe Skript-Ausdrücke.
Date conversion #
Convert date strings
Konvertiert die Zeichenabfolge des SAP-Datums (YYYYMMDD, z.B. 19900101) zu einem formatierten Datum (YYYY-MM-DD, z.B. 1990-01-01). Im Datenziel hat das SAP-Datum keinen String-Datentyp sondern einen echten Datumstyp.
Convert invalid dates to
Falls ein SAP-Datum nicht in ein gültiges Datumsformat konvertiert werden kann, wird das ungültige Datum zu dem eingegebenen Wert konvertiert. NULL wird als Wert unterstützt.
Bei der Konvertierung eines ungültigen SAP-Datums werden zuerst die beiden Sonderfälle 00000000 und 9999XXXX überprüft.
Convert 00000000 to
Konvertiert das SAP-Datum 00000000 zu dem eingegebenen Wert.
Convert 9999XXXX to
Konvertiert das SAP-Datum 9999XXXX zu dem eingegebenen Wert.
Existing files #
Replace file: eine vorhandene Zieldatei wird überschrieben.
Append results: Daten werden an eine bereits bestehende Zieldatei angehängt.
Abort extraction: Der Prozess wird abgebrochen, falls eine Zeildatei bereits existiert.
Hinweis: Die Operation Append results, bei der Daten in einer Zieldatei ergänzt werden, funktioniert nur für csv-Dateien.
Hadoop Remote Folder #
Geben Sie den Namen des Ordners an, in den die Daten geschrieben werden sollen.
Unterordner werden ebenfalls unterstützt und können wie folgt eingegeben werden:Ordner/Unterordner1/Unterordner2/
.
Falls nicht vorhanden, wird ein neuer Ordner erstellt.
Wenn kein Ordner angegeben wird, werden die Daten in das root-Verzeichnis geschrieben.
Skript-Ausdrücke als dynamische Ordnerpfade
Skript-Ausdrücke können für die Generierung eines dynamischen Ordnerpfads verwendet werden. Dadurch kann ein Ordnerpfad generiert werden, der sich aus den Eigenschaften einer Extraktion zusammensetzt, z.B. Extraktionsname, SAP-Quellobjekt. Unterstützt werden Skript-Ausdrücke, die auf .NET basieren, sowie folgende XU-spezifische Skript-Ausdrücke:
Eingabe | Beschreibung |
---|---|
#{Source.Name}# |
Name der SAP Quelle. |
#{Extraction.ExtractionName}# |
Name der Extraktion. |
#{Extraction.Type}# |
Extraktionstyp (Table, ODP, DeltaQ, etc.). |
#{Extraction.SapObjectName}# |
Name des SAP Objekts, von dem die Extraktion Daten extrahiert. |
#{Extraction.Timestamp}# |
Zeitstempel der Extraktion. |
#{Extraction.SapObjectName.TrimStart("/".ToCharArray())}# |
Entfernt einen führenden Schrägstrich, z.B. wird aus /BIO/TMATERIAL dann BIO/TMATERIAL, damit kein leeres Verzeichnis angelegt wird. |
#{Extraction.SapObjectName.Replace('/', '_')}# |
Entfernt alle Schrägstriche eines SAP Objekts, z.B. wird aus /BIO/TMATERIAL dann _BIO_TMATERIAL. Dadurch wird verhindert, dass die Schrägstriche innerhalb des Namens des SAP Objekts, nicht als Verzeichnistrenner interpretiert werden. |
#{Extraction.Context}# |
Nur für ODP Extraktionen: Kontext des ODP Objekts (SAPI, ABAP_CDS, etc.). |
#{Extraction.Fields["[NameSelectionFiels]"].Selections[0].Value}# |
Nur für ODP Extraktionen: Eingabewert einer definierten Selektion / eines Filter. |
#{TableExtraction.WhereClause}# |
Nur für Table Extraktionen: WHERE-Bedingung der Extraktion. |
Für mehr Informationen zu Skript-Ausdrücken, siehe Skript-Ausdrücke.