Anlegen von Datenflüssen

Objective

After completing this lesson, you will be able to legen Sie einen Basisdatenfluss an.

Data-Services-Datenflüsse

Datenflüsse enthalten die Quell-, Transformations- und Zielobjekte, die die Schlüsselaktivitäten in Datenintegrations- und Datenqualitätsprozessen darstellen.

Datenflussverwendung

Datenflüsse bestimmen, wie Informationen aus Quellen extrahiert, transformiert und in Ziele geladen werden. Die Linien, die Objekte in einem Datenfluss verbinden, stellen den Datenfluss mit Datenintegrations- und Datenqualitätsprozessen dar.

Datenflüsse:

  • Extrahieren, transformieren und laden Sie Daten.
  • Bestimmen Sie den Datenfluss.
  • Sind abgeschlossene Vorgänge.
  • Werden in der lokalen Objektbibliothek oder in der Toolpalette angelegt.

Jedes Symbol, das Sie im Datenflussdiagramm platzieren, wird zu einem Schritt im Datenfluss, wie in der Abbildung dargestellt.

Sie können Quell- und Zielobjekte und Transformationen als Schritte in einem Datenfluss verwenden. Stellen Sie Verbindungen zwischen den Symbolen her, um die Reihenfolge festzulegen, in der Data Services die Schritte abschließt.

Datenflussschritte

Jeder Schritt in einem Datenfluss bis zur Zieldefinition erzeugt ein Zwischenergebnis. Das Zwischenergebnis wird als Datenset bezeichnet.

Das Zwischenergebnis ist eine Menge von Zeilen aus der vorherigen Operation und das Schema, in dem die Zeilen angeordnet sind. Dieser Datensatz kann weiterverarbeitet und in einen anderen Datensatz geleitet werden. Ein Dataset könnte beispielsweise die Ergebnisse einer Abfrage sein, die eine WHERE-KLAUSEL enthält, um einige Zeilen zu filtern, die zum nächsten Schritt im Datenfluss fließen, der diese Zeilen bereinigt.

Datenflüsse sind geschlossene Vorgänge, auch wenn es sich um Schritte in einem Workflow handelt. Ein innerhalb eines Datenflusses angelegtes Datenset ist für andere Schritte im Workflow oder Job nicht verfügbar. Die einzige Möglichkeit für einen Datenfluss, Daten zu generieren, die weiterverarbeitet werden könnten, besteht darin, die Daten in eine Tabelle oder Datei zu laden.

Quellobjekte

Ein Quellobjekt wird aus Objektmetadaten in einem Datastore oder aus einem Dateiformat generiert, wenn Sie es per Drag&Drop in den Datenfluss-Arbeitsbereich ziehen.

Datastore-Quellobjekte

Wenn Sie Daten aus einer Tabelle oder einem anderen Objekt in einem Datastore lesen möchten, müssen Sie zuerst die Metadaten für dieses Objekt importiert haben. Er ist dann in der Objektbibliothek verfügbar, und Sie können ihn per Drag&Drop als Quelle in Ihren Workflow verschieben.

Data Services analysiert die Metadaten, um die Struktur (das Schema) der Eingabedaten zu definieren. Dieses Schema ist das einzige, was für den Aufbau des Datenflusses erforderlich ist. Bei der Ausführung werden natürlich auch die Datastore-Informationen verwendet, um eine Verbindung mit der Quelle herzustellen und die tatsächlichen Daten abzurufen.

Dateiformat-Quellobjekte

Für Dateiformate gilt dasselbe Prinzip, aber nachdem Sie das Quellobjekt im Datenfluss angelegt haben, stehen einige Eigenschaften zur Änderung zur Verfügung. Zum Beispiel Dateispeicherort oder Fehlerbehandlungsoptionen.

Ein Dateiformat, das mit einer lokalen Beispieldatei erstellt wurde, kann dann für den Zugriff auf Dateien vom Jobserver erstellt werden. Dies ist die einzige Option, die funktionieren würde, da der Job Server den Job ausführt.

Sie können auch mehrere Quellobjekte aus demselben Dateiformat im selben Datenfluss anlegen, aber z.B. verschiedene Dateien (mit derselben Struktur) abrufen, um sie zu verknüpfen.

Probieren wir es aus

Definieren wir nun Quellobjekte in Ihren Datenflüssen:

Wenn Sie es selbst testen möchten, gehen Sie wie folgt vor:

Die Query-Transformation

Die Query-Transformation, eine der Plattform-Transformationen, ist die am häufigsten verwendete Transformation und in den meisten Datenflüssen enthalten. Aus diesem Grund ist sie zusammen mit anderen Standardobjekten in der Toolpalette enthalten.

Mit der Query-Transformation können Sie Daten aus einer Quelle auswählen und filtern oder beim Verschieben in das Ziel neu formatieren. Die Abbildung zeigt ein Beispiel für eine Query-Transformation, die einen Filter zwischen der Quelle und dem Ziel anwendet.

Query-Transformationsoperationen

Die Query-Transformation kann folgende Vorgänge ausführen:
  • Filtern von aus Quellen extrahierten Daten
  • Verknüpfen von Daten aus mehreren Quellen
  • Zuordnen von Spalten von Eingabe- zu Ausgabeschemas
  • Durchführen von Transformationen und Funktionen für die Daten
  • Datenschachtelung und Entschachtelung durchführen
  • Hinzufügen neuer Spalten, verschachtelter Schemas und Funktionsergebnisse zum Ausgabeschema
  • Zuweisen von Primärschlüsseln zu Ausgabespalten

Um die benötigten Operationen zu definieren, verwenden Sie den Transformationseditor. Es handelt sich um eine grafische Oberfläche zum Definieren der Eigenschaften von Transformationen. Der Arbeitsbereich enthält folgende Bereiche:

  • Eingabeschema
  • Ausgabeschema
  • optionen

Eingabe- und Ausgabeschemata

Die folgende Abbildung zeigt die Eingabe- und Ausgabeschemabereiche.

Im Eingabeschemabereich wird das Schema des Eingabe-Datasets angezeigt. Im Bereich "Ausgabeschema" wird das Schema des Ausgabe-Datasets einschließlich aller Funktionen angezeigt.

Sie müssen eine Beziehung zwischen den Eingabe- und Ausgabeschemas definieren, um Daten aus der Quelle in das Ziel zu verschieben. Um dies zu erreichen, müssen Sie jede Eingabespalte der entsprechenden Ausgabespalte zuordnen.

Eingabespalten zu Ausgabespalten zuordnen

Führen Sie eine der folgenden Aktionen im Transformationseditor aus, um Eingabespalten zu Ausgabespalten zuzuordnen:

  • Ziehen Sie eine einzelne Spalte aus dem Eingabeschemabereich in den Ausgabeschemabereich.
  • Ziehen Sie eine einzelne Eingabespalte über die entsprechende Ausgabespalte, lassen Sie den Cursor los, und wählen Sie im Menü Spalte neu zuordnen.
  • Wählen Sie mehrere Eingabespalten aus, indem Sie Strg+Klicken oder Umschalt+Klicken auf Ihrer Tastatur verwenden, und ziehen Sie sie zur automatischen Zuordnung in das Abfrageausgabeschema.
  • Wählen Sie die Ausgabespalte aus, und geben Sie die Zuordnung manuell auf der Registerkarte Zuordnung im Optionsbereich ein. Sie können den Spaltennamen in den Optionsbereich eingeben oder die Spalte aus dem Eingabeschemabereich ziehen.
  • Wählen Sie die Ausgabespalte aus, markieren und löschen Sie die Zuordnung auf der Registerkarte Zuordnung im Optionsbereich.

Bereich Optionen

Der Bereich Optionen befindet sich unter den Eingabe- und Ausgabeschemabereichen im Abfrage-Transformationseditor.

Registerkarten des Optionsbereichs

RegisterkarteBeschreibung
Mapping

Geben Sie an, wie die ausgewählte Ausgabespalte abgeleitet wird.

Auswählen

Wählen Sie nur eindeutige Zeilen aus, und verwerfen Sie doppelte Zeilen.

Von

Geben Sie die im aktuellen Ausgabeschema verwendeten Eingabeschemas an.

Outer Join

Geben Sie eine innere Tabelle und eine äußere Tabelle für Joins an, die als Outer-Joins behandelt werden sollen.

Wo

Legen Sie Bedingungen fest, um festzulegen, welche Zeilen ausgegeben werden.

Group by

Geben Sie eine Liste von Spalten an, um die Ausgabe zu kombinieren.

Sortieren nach

Geben Sie Spalten an, um das Ausgabe-Dataset zu sortieren.

Advanced

Erstellen Sie separate Subflows, um ressourcenintensive Abfrageklauseln zu verarbeiten.

Fehlende

Suchen Sie im Eingabeschema oder im Ausgabeschema nach einer bestimmten Position.

Abfragetransformationseditor für Joins

Sie definieren Joins auf dem Tab Von des Transformationseditors. Die Registerkarte Von wird in der folgenden Abbildung angezeigt.

Notiz

Auf dem Tab WHERE gibt es eine ältere Form des Joins, die aber zu restriktiv ist. Es wird empfohlen, die Join-Funktion auf der Registerkarte Von zu verwenden.

Probieren wir es aus

Beginnen wir mit einer Query-Transformation, die Daten filtert:

Wenn Sie es selbst testen möchten, gehen Sie wie folgt vor:

Ich kann Ihnen auch zeigen, wie Sie eine Query-Transformation anlegen, die zwei Quellen verbindet:

Zielobjekte

Das Zielobjekt für Ihren Datenfluss kann eine physische Tabelle oder eine Datei sein, und Sie fügen sie Ihrem Datenfluss hinzu, indem Sie sie per Drag&Drop aus den Metadaten des Datastores oder aus einem Dateiformat wie für die Quellobjekte hinzufügen.

Wenn Ihr Zielobjekt eine physische Tabelle in einer Datenbank ist, wird der Zieltabelleneditor im Arbeitsbereich geöffnet. Der Editor enthält Tabs für Datenbanktypeigenschaften, Tabellenladeoptionen und Tuning-Techniken zum Laden eines Jobs.

Notiz

Die meisten Tabs im Zieltabelleneditor konzentrieren sich auf die Migration oder auf Performance-Tuning-Techniken. Wir konzentrieren uns nur auf die Registerkarte Optionen.

Optionen des Zieltabelleneditors

OptionBeschreibung
Spaltenvergleich

Geben Sie an, wie die Eingabespalten den Ausgabespalten zugeordnet werden. Validierungsfehler treten auf, wenn die Datentypen der Spalten nicht übereinstimmen.

Daten vor dem Laden aus einer Tabelle löschen

Verwenden Sie diese Option, um eine TRUNCATE-Anweisung zu senden, um den Inhalt einer Tabelle vor dem Laden während Batch-Jobs zu löschen. Die Option ist standardmäßig auf Nicht ausgewählt gesetzt.

Spalten mit Wert ignorieren

Geben Sie in einer Quellspalte einen Wert an, der in der Zieltabelle nicht aktualisiert werden soll.

Eingabeschlüssel verwenden

Aktivieren Sie Data Services, um die Primärschlüssel aus der Quelltabelle zu verwenden. Standardmäßig wird der Primärschlüssel der Zieltabelle verwendet.

Schlüsselspalten aktualisieren

Aktualisieren Sie die Schlüsselspaltenwerte beim Laden von Daten in das Ziel.

Dateiformat als Ziel

Wenn Sie ein Dateiformat als Ziel verwenden, können Sie den Dateispeicherort wie für das Quellobjekt ändern.

Sie haben auch die Möglichkeit, den Inhalt der Datei zu löschen, bevor Sie sie mit neuen Daten laden.

Je nachdem, was Sie im Dateiformat definiert haben und dies im Zielobjekt nicht bearbeitbar ist, können Sie eine Kopfzeile schreiben oder nicht.

Vorlagentabellen

Sie können Vorlagentabellen in der frühen Anwendungsentwicklung verwenden, wenn Sie ein Projekt entwerfen und testen.

Vorlagentabellen haben folgende Funktionen:

  • Sie ermöglichen Schemaänderungen, ohne zum relationalen Datenbankmanagementsystem (RDMS) zu wechseln.
  • Sie sind erst in der zugrunde liegenden Datenbank vorhanden, wenn der Datenfluss einmal erfolgreich ausgeführt wurde.
  • Nach der Ausführung werden sie zu tatsächlichen Tabellen in der zugrunde liegenden Datenbank.
  • Sie werden nur in den Metadaten im Data-Services -Repository als Vorlagentabellen identifiziert.
  • Der Zieltabelleneditor verfügt über eine Option zum Löschen und Neuanlegen von Tabellen für Vorlagentabellen.
  • Die Option Tabelle importieren konvertiert eine Template-Tabelle in eine normale Tabelle.

Bei Vorlagentabellen müssen Sie keine neue Tabelle in Ihrem Datastore anlegen und die Metadaten in Data Services importieren. Data Services legt die Tabelle in der Datenbank automatisch mit dem vom Datenfluss definierten Schema an, wenn Sie den Job ausführen.

Wenn Sie eine Vorlagentabelle als Ziel in einem Datenfluss anlegen, können Sie sie als Quelle in anderen Datenflüssen verwenden.

Sie müssen Vorlagentabellen in normale Tabellen konvertieren, damit Sie die neue Tabelle in Ausdrücken, Funktionen und Transformationsoptionen verwenden können. Wenn Sie die Template-Tabelle konvertieren, können Sie das Schema nicht mehr ändern.

Probieren wir es aus

Fügen wir im ersten Job eine Zieltabelle hinzu und sehen wir uns an, wie eine Vorlagentabelle im zweiten Job verwendet wird:

Wenn Sie es selbst testen möchten, gehen Sie wie folgt vor:

Jobausführung

Wenn Sie Ihr Projekt, Ihre Jobs und die zugehörigen Datenflüsse anlegen, können Sie den Job in Data Services ausführen, um die Daten aus der Quelle in das Ziel zu verschieben.

Sofortjobs und eingeplante Jobs

Sie können Jobs auf zwei Arten ausführen:

  • Sofortige Jobs

    Data Services initiiert Batch- und Echtzeitjobs und führt sie sofort aus dem Designer heraus aus. Der Designer und der designierte Jobserver müssen ausgeführt werden, um den Job auszuführen. Führen Sie sofortige Jobs nur während des Entwicklungszyklus aus.

  • Eingeplante Jobs

    Batch-Jobs sind eingeplant. Verwenden Sie die Data Services Management Console oder einen Scheduler eines Drittanbieters, um den Job einzuplanen. Der Jobserver muss ausgeführt werden, um einen eingeplanten Job auszuführen.

Notiz

Ein Job wird nicht ausgeführt, wenn er Syntaxfehler aufweist.

Ausführungsoptionen verwalten

Bevor Sie Ihren Job ausführen, können Sie einige Optionen bearbeiten:

  • Indem Sie die Jobeigenschaften so ändern, dass jede Ausführung dieselben Einstellungen hat.
  • Durch Ändern der Ausführungseigenschaften, sodass die Optionen nur für diese bestimmte Ausführung gültig sind.

Freigegebene Ausführungseigenschaften

OptionBeschreibung
Alle Trace-Meldungen drucken

Zeichnen Sie alle Trace-Meldungen im Protokoll auf.

Statistiken für die Optimierung sammeln

Sammeln Sie Statistiken, damit der Data-Services -Optimierer einen optimalen In-Memory- oder auslagerbaren Cachetyp auswählen kann.

Statistiken für das Monitoring sammeln

Zeigen Sie Cache-Statistiken im Systemmonitor im Administrator an.

Gesammelte Statistiken verwenden

Verwenden Sie die Cache-Statistiken, die bei einer vorherigen Ausführung des Jobs gesammelt wurden.

Ausführungseigenschaften nicht als Jobeigenschaften verfügbar

OptionBeschreibung
Systemkonfiguration

Geben Sie die Systemkonfiguration an, die beim Ausführen des Jobs verwendet werden soll. Eine Systemkonfiguration definiert eine Reihe von Datastore-Konfigurationen, die die Datastore-Verbindungen definieren.

Jobserver oder Servergruppe

Geben Sie den Jobserver oder die Servergruppe an, um den Job auszuführen.

Data Services kann fehlgeschlagene Anforderungsinformationen in eine Protokolldatei einfügen. Data Services protokolliert fehlgeschlagene Anforderungen nicht standardmäßig, da dies die Performance beeinträchtigen kann. Das Ablegen fehlgeschlagener Anforderungsinformationen in einer Protokolldatei muss im Management-Console-Administrator aktiviert sein.

Auf Fehler prüfen

Wenn ein Job ausgeführt wird, erzeugt Data Services drei Protokolldateien, die auf dem Tab Monitor des Projektbereichs angezeigt werden. Die Protokolldateien sind standardmäßig auch so eingestellt, dass sie automatisch im Arbeitsbereich angezeigt werden, wenn ein Job ausgeführt wird.

Wählen Sie die Symbole Trace, Monitor und Fehler, um die Protokolldateien anzuzeigen, die während der Jobausführung angelegt werden.

Wenn das dritte Symbol, das ein Kreuz darstellt, farbig und nicht ausgegraut angezeigt wird, bedeutet dies, dass Fehler gefunden wurden.

Es ist möglich, dass das Trace-Protokoll besagt, dass der Job erfolgreich abgeschlossen wurde, aber dennoch Fehler aufweist, wenn Sie den Datenfluss so eingestellt haben, dass er bestimmte Fehler erfasst, z.B. Datenkonvertierungsfehler beim Dateizugriff oder beim Laden von Dateien.

Probieren wir es aus

Lassen Sie uns abschließend diese Jobs ausführen:

Wenn Sie es selbst testen möchten, gehen Sie wie folgt vor:

Workflows

Wie bereits erwähnt, können Sie Workflows in Ihrem Job anlegen und die Datenflüsse in diesen Workflows entwerfen, anstatt sie direkt in den Job zu übertragen.

Im Folgenden finden Sie einige Analogien, die Ihnen helfen, die Rolle von Workflows in Ihren Jobs zu verstehen:

Für Personen, die wie Programmierer denken, können Sie Workflows mit Unterprogrammen vergleichen. Der Job ist das Hauptprogramm und kann Workflows (wie Unterprogramme) aufrufen. Workflows können fast alles tun, was ein Job kann, aber sie können nicht unabhängig ausgeführt werden (sie müssen von einem Job oder einem anderen Workflow aufgerufen werden).

Für Nicht-Programmierer denken Sie an Workflows in der gleichen Weise wie an Klammern in der Arithmetik. Mit Klammern können Sie die Reihenfolge der Operationen in mathematischen Ausdrücken ändern. Ebenso können wir mit Workflows die Reihenfolge der Ausführung von Operationen wie Skripten und Datenflüssen innerhalb eines Jobs steuern.

Für die einfachen Jobs und Datenflüsse, mit denen wir hier beginnen, werden wir wahrscheinlich keine Workflows verwenden. Wenn Ihre Jobs jedoch komplexer werden – mit mehreren Datenflüssen, Skripten usw. – können Workflows Teile des Jobs modularer und flexibler machen, ohne dass sich dies auf die Performance auswirkt. Und als Bonus sind sie über mehrere Jobs hinweg wiederverwendbar!

Beachten Sie, dass Datenflüsse wiederverwendbar sind. Wenn jedoch zwei abhängige Datenflüsse zusammengeführt werden müssen, möglicherweise mit einem Skript zwischen ihnen, können Sie sie in einem Workflow verpacken und den gesamten Workflow wiederverwenden. (Beachten Sie auch, dass Skripte KEINE wiederverwendbaren Objekte als solche sind.) Das spart viel Design-Zeit!