SAP Data Services erläutern
Zugriff auf Daten
Entwickeln von Jobs und Datenflüssen
Fehlerbehebung bei Batch-Jobs
Verwenden von Funktionen, Skripten und Variablen
Abfragen von Daten mit Plattformtransformationen
Teilen und Kombinieren von Daten mit Plattformtransformationen
Beheben von Fehlern und Wiederherstellen von Fehlern
Zum Verbuchen von Daten
Entwickeln erweiterter ETL-Szenarien mit SAP-Data-Services -Integrator-Transformationen
Optimierung der Performance

Optimierung von Datenflüssen mit der Datentransfer-Transformation

Objective

After completing this lesson, you will be able to datenflüsse mit der Datentransfer-Transformation optimieren

Pushdown-Operationen

Bei der Verarbeitung von Datenbankdaten kann SAP Data Services die Leistungsfähigkeit der Datenbank-Engine nutzen. Dies kann aus Performancegründen sehr wichtig sein. Der angewandte Mechanismus heißt SQL-Pushdown: Ein Teil der Transformation wird in Form generierter SQL-Anweisungen in die Datenbank "verlagert". Datenbanken sind oft in der Lage, Daten viel schneller zu verarbeiten. Durch die interne Verarbeitung innerhalb der Datenbankschicht werden zeitaufwendige Datenübertragungen zwischen Datenbankserverspeicher und Data-Services-Speicher vermieden oder erheblich reduziert und umgekehrt.

Data Services untersucht die Datenbank und ihre Umgebung, wenn ermittelt wird, welche Vorgänge an die Datenbank übergeben werden sollen. Es gibt zwei Arten von Push-down-Operationen:

  • Vollständig: Stellt alle Transformationsoperationen an die Datenbankserver und die Datenströme direkt von der Quelldatenbank in die Zieldatenbank herunter.
  • Teilweise: Stellt die SELECT-Anweisungen auf den Quelldatenbankserver herunter.

Vollständige Pushdown-Operationen

Der Data-Services -Optimierer versucht immer, einen vollständigen Push-Down-Vorgang durchzuführen. Vollständige Push-Down-Vorgänge können direkt von der Quelldatenbank an die Datenbanken und an die Datenströme an die Zieldatenbank übergeben werden.

Data Services sendet beispielsweise SQL INSERT INTO... SELECT-ANWEISUNGEN an die Zieldatenbank senden SELECT, um Daten aus der Quelle abzurufen.

Vollständige Pushdown-Bedingungen

Vorgänge mit vollständigem Pushdown an die Quell- und Zieldatenbank sind nur möglich, wenn die folgenden Bedingungen erfüllt sind:

  • Alle Vorgänge zwischen der Quelltabelle und der Zieltabelle können übergeben werden.
  • Die Quell- und Zieltabellen stammen aus demselben Datastore oder befinden sich in Datastores, zwischen denen eine Datenbankverknüpfung definiert ist.

Teilweise Push-Down-Operationen

Wenn ein vollständiger Push-Down-Vorgang nicht möglich ist, versucht Data Services, einen Teil-Pushdown mit einer SELECT-ANWEISUNG an die Quelldatenbank weiterzugeben.

SELECT-Anweisungsoperationen, die verlagert werden können

Die Tabelle listet Operationen innerhalb der SELECT-ANWEISUNG auf, die an die Datenbank gepusht werden können:

OperationBeschreibung
AggregationenWird mit einer GROUP BY-ANWEISUNG verwendet, um ein Dataset zu erzeugen, das kleiner oder gleich der Größe des ursprünglichen Datasets ist.
Eindeutige ZeilenData Services gibt eindeutige Zeilen nur aus, wenn Sie eindeutige Zeilen verwenden.
FilterungErstellen Sie ein Datenset, das kleiner oder gleich dem ursprünglichen Datenset ist.
JoinsErstellen Sie ein Dataset, das kleiner oder ähnlich groß ist wie die Originaltabellen.
BestellenDie Reihenfolge wirkt sich nicht auf die Größe des Datensets aus. Data Services kann Datensätze, die in den Arbeitsspeicher passen, effizient sortieren. Da Data Services kein Paging durchführt, indem Zwischenergebnisse auf die Festplatte geschrieben werden, verwenden Sie das DBMS selbst, um große Datensätze anzuordnen.
ProjektionenEs wird ein kleineres Dataset erstellt, da sie nur Spalten zurückgeben, die von einem Datenfluss referenziert werden.
FunktionenDie meisten Data-Services -Funktionen, die Äquivalente in der zugrunde liegenden Datenbank haben, werden entsprechend übersetzt.

Vorgänge, die nicht verdrängt werden können

Data Services kann einige Transformationsoperationen nicht an die Datenbank senden, z.B.:

  • Ausdrücke, die Data-Services -Funktionen ohne Datenbankkorrespondenten enthalten.
  • Ladevorgänge, die Trigger enthalten.
  • Transformationen, bei denen es sich nicht um die Query-Transformation handelt.
  • Joins zwischen Quellen, die sich auf verschiedenen Datenbankservern ohne definierte Datenbankverknüpfungen befinden.

Notiz

Eine vollständige Liste der Operatoren, Funktionen und Transformationen, die Sie als Pushdown-Funktionen mit SAP Data Services verwenden können, finden Sie im SAP-Hinweis 2212730, Pushdown-Operatoren, Funktionen und Transformationen von SAP Data Services.

Die Funktion Optimiertes SQL anzeigen

Sie können die vom Datenfluss generierte SQL anzeigen, bevor Sie einen Job ausführen. Anschließend können Sie Ihr Design anpassen, um die SQL zu maximieren, die übergeben wird, um die Performance zu verbessern und den Datenfluss bei Bedarf zu verbessern.

Data Services zeigt nur die für Tabellenquellen generierte SQL an. Data Services zeigt die für SQL-Quellen generierte SQL nicht an, die keine Tabellenquellen sind, z.B. die Lookup-Funktion, die Schlüsselgenerierungstransformation, die key_generation-Funktion, die Tabellenvergleichstransformation und die Zieltabellen.

Die folgende Abbildung zeigt das Dialogfenster Optimiertes SQL.

Die Datentransfertransformation

Die Datentransfer-Transformation ermöglicht es einem Datenfluss, ressourcenverbrauchende Vorgänge an den Datenbankserver zu übergeben.

Die Datentransfer-Transformation verschiebt Daten aus einer Quelle oder aus der Ausgabe einer anderen Transformation in ein Transferobjekt. Anschließend werden die Daten aus dem Transferobjekt gelesen.

Verwenden Sie die Datentransfer-Transformation, um ressourcenintensive Datenbankoperationen, die an beliebiger Stelle im Datenfluss stattfinden, zu übergeben.

Verwendung der Datenübertragung

  • Übertragen Sie eine Datei oder Tabelle aus einer anderen Datenbank, um einen vollständigen Pushdown-Vorgang in Ihrem Datenfluss zu erhalten.
  • Ressourcenverbrauchende Operationen wie Joins, GROUP BY und Sortierungen werden verdrängt.

Die folgende Abbildung zeigt die Schnittstelle, an die Sie Vorgänge weitergeben können.

Übertragungsart

Wählen Sie eine der folgenden Übertragungsarten, um die Daten temporär zu speichern:

  • Tabelle: Datenbanktabelle aus einem vorhandenen Datastore.

    Geben Sie die Tabellenoptionen unter Tabellenname, Datenbanktyp und Array-Fetch-Größe an.

  • Datei: Eine flache Datei.

    Geben Sie die Dateioptionen im Root-Verzeichnis und im Dateinamen an.

  • Automatisch: Der Optimierer wählt die Übertragungsart aus:
    • Ihre Datastores, für die das Kontrollkästchen Automatische Datenübertragung aktivieren aktiviert ist.
    • Das auslagerbare Cacheverzeichnis, das Sie im Servermanager angeben.

Anforderungen an die Dateneingabe und -ausgabe

Anforderungen an die Dateneingabe

  • Wenn das Eingabe-Dataset für die Datentransfer-Transformation eine Tabelle oder ein Dateiübertragungstyp ist, müssen die Zeilen mit dem NORMAL-Operationscode gekennzeichnet werden.
  • Das Eingabe-Dataset darf keine hierarchischen oder verschachtelten Daten enthalten.

Anforderungen an die Datenausgabe

Ausgabe-Datasets haben dasselbe Schema und denselben Operationscode wie die Eingabe-Datasets.

  • Die Ausgabezeilen befinden sich in der Sortier- oder GROUP BY-REIHENFOLGE.
  • Data Services teilt den Datenfluss automatisch in sekundäre Datenflüsse auf und führt sie seriell aus. Die Namen der sekundären Datenflüsse verwenden das folgende Format: dataflowname_n

    Die Variable <n> ist die Nummer des sekundären Datenflusses.

Probieren wir es aus

Ich möchte Sie durch die Verwendung der Datentransfertransformation führen: