Lookup-Transformation in Informatica (Beispiel)

⚡ Intelligente Zusammenfassung

Die Lookup-Transformation in Informatica liest eine relationale Tabelle, eine Flatfile, eine View oder ein Synonym und gibt die übereinstimmenden Werte für jede eingehende Zeile zurück. Sie funktioniert wie ein Join, bei dem eine Seite die Lookup-Quelle ist.

  • 🔎 Der Spielverlauf entscheidet über Sieg oder Niederlage: Auf der Registerkarte „Bedingung“ befindet sich der Vergleich, z. B. DEPTNO = DEPTNO1, der darüber entscheidet, welche Nachschlagezeile zurückgegeben wird.
  • 🧪 Ausgearbeitetes Beispiel: Sieben-Karteping Designerschritte rufen Abteilungsnamen aus DEPT in ein EMP_DEPTNAME-Ziel ohne Joiner ab.
  • ???? Verbunden oder nicht verbunden: Eine verbundene Lookup-Operation befindet sich in der Pipeline, während eine unverbundene Lookup-Operation aus einem Ausdruck mit dem Qualifizierer :LKP aufgerufen wird.
  • ️ Standardmäßig passiv: Wenn nur eine Zeile zurückgegeben wird, bleibt die Transformation passiv; wenn alle übereinstimmenden Zeilen zurückgegeben werden, wird sie aktiv.
  • ♻️ Wiederverwendbare Objekte: Die Option „Wiederverwendbar machen“ wandelt eine Transformation in ein Objekt um, das mehrere Karten enthält.pings können geteilt werden.
  • ⚠️ Einseitige Werbung: Eine Transformation, die zu wiederverwendbar hochgestuft wurde, kann nicht wieder herabgestuft werden; daher sollte die Bestätigungsabfrage sorgfältig gelesen werden.

Lookup-Transformation in Informatica

Was ist Lookup-Transformation?

Die Lookup-Transformation dient dazu, relevante Daten anhand einer Quelle, eines Quellqualifizierers oder eines Ziels zu ermitteln. Im Prinzip handelt es sich um eine Art Join-Operation, bei der eine der verknüpften Tabellen die Quelldaten und die andere die Lookup-Tabelle darstellt. Die Lookup-Quelle kann eine relationale Tabelle, eine Sicht, ein Synonym oder eine Flatfile sein.

Die Transformation arbeitet passiv und gibt für jede eingehende Zeile eine einzelne Zeile zurück. Ab PowerCenter 9.x kann sie auch so konfiguriert werden, dass sie alle Zeilen zurückgibt, die der Bedingung entsprechen. In diesem Modus ist sie aktiv. Die Auswahl wird bei der Erstellung der Transformation getroffen und kann nachträglich nicht mehr geändert werden.

Es gibt zwei Möglichkeiten, es auf einer Karte zu platzieren.ping, und die Differenz entscheidet darüber, wie der zurückgegebene Wert den Rest der Pipeline erreicht.

Aspekt Verbundene Suche Unverbundene Suche
Position Befindet sich innerhalb der Pipeline und empfängt Werte aus der vorherigen Transformation. Befindet sich außerhalb der Pipeline und wird von einem Ausdruck aufgerufen
Wie es genannt wird Zeilen fließen in seine Eingangsports Aufgerufen mit dem Referenzqualifizierer :LKP
zurückgegebene Werte Mehrere Ausgänge können nachgelagert miteinander verbunden werden. Ein Rückgabewert wird an den aufrufenden Ausdruck zurückgegeben.
Typische Verwendung Jede Zeile benötigt die nachgeschlagenen Spalten. Die Suche wird nur für einige Zeilen benötigt, oder dieselbe Suche wird von mehreren Stellen aufgerufen.

In früheren Themen haben wir die Tischlertransformation Um die Abteilungsnamen aus den Tabellen „emp“ und „dept“ zu extrahieren, werden wir dies mithilfe der Lookup-Transformation umsetzen.

So erstellen Sie eine Lookup-Transformation

Im Folgenden werden die Schritte zur Erstellung einer Lookup-Transformation in Informatica beschrieben.

Schritt 1) Erstellen Sie eine neue Karteping mit EMP als Quelle und EMP_DEPTNAME als Ziel. Die Karteping Die Designer-Arbeitsfläche enthält dann die Quelle, ihren Quellqualifizierer und die Zieldefinition.

Karteping Designer-Canvas mit der EMP-Quelle, ihrem Quellqualifizierer und dem EMP_DEPTNAME-Ziel

Schritt 2) Erstellen Sie eine neue Transformation über das Menü „Transformation“ und anschließend im Fenster „Transformation erstellen“:

  1. Wählen Sie die Transformation „Lookup“ als Transformation aus.
  2. Geben Sie den Transformationsnamen „lkp_dept“ ein.
  3. Wählen Sie die Erstellungsoption

Erstellen Sie ein Transformationsfenster mit ausgewählter Nachschlagetransformation und dem eingegebenen Namen lkp_dept.

Schritt 3) Dadurch wird das Fenster mit der Nachschlagetabelle geöffnet. In diesem Fenster:

  1. Schaltfläche „Quelle auswählen“.
  2. Wählen Sie die DEPT-Tabelle aus
  3. Wählen Sie die Schaltfläche „OK“.

Wählen Sie im Dialogfeld „Nachschlagetabelle“ die Schaltfläche „Quelle“ aus und markieren Sie die Tabelle „DEPT“.

Schritt 4) Es wird eine Lookup-Transformation mit den Spalten der Tabelle DEPT erstellt. Klicken Sie nun auf die Schaltfläche „Fertig“. Das Objekt lkp_dept enthält nun DEPTNO, DNAME und LOC als Lookup-Ports.

Die Lookup-Transformation lkp_dept wurde mit den Spalten der Tabelle DEPT als Lookup-Ports erstellt.

Schritt 5) Ziehen Sie die Spalte DEPTNO aus dem Quellqualifizierer per Drag & Drop in die Lookup-Transformation. Dadurch wird in der Lookup-Transformation die neue Spalte DEPTNO1 erstellt. Verknüpfen Sie anschließend die Spalte DNAME aus der Lookup-Transformation mit der Zieltabelle.

Die Lookup-Transformation ermittelt den Abteilungsnamen anhand des Werts von DEPTNO1 und gibt ihn zurück. DEPTNO1 ist der Eingabeport, der die Mitarbeiter-Abteilungsnummer enthält, während DEPTNO der Port bleibt, der aus der DEPT-Lookup-Tabelle gelesen wird.

DEPTNO ist vom Quellqualifizierer mit lkp_dept verknüpft und DNAME ist mit dem Ziel EMP_DEPTNAME verknüpft.

Schritt 6) Double Klicken Sie auf die Transformation „Nachschlagen“. Anschließend im Fenster „Transformation bearbeiten“:

  1. Wählen Sie die Registerkarte „Bedingung“ aus
  2. Setzen Sie die Bedingungsspalte auf DEPTNO = DEPTNO1
  3. Wählen Sie die Schaltfläche „OK“.

Im Reiter „Bedingungen“ des Fensters „Transformationen bearbeiten“ wurde die Bedingung DEPTNO = DEPTNO1 eingegeben.

Schritt 7) Verknüpfen Sie die restlichen Spalten aus dem Quellqualifizierer mit der Zieltabelle.

Verbleibende Quellqualifiziererspalten, die mit der Zieltabelle EMP_DEPTNAME verknüpft sind

Speichern Sie jetzt die Karteping und führen Sie es aus, nachdem Sie die Sitzung und den Workflow erstellt haben. Diese Zuordnungping Die Abteilungsnamen werden mithilfe der Lookup-Transformation abgerufen.

Die Lookup-Transformation ist so konfiguriert, dass sie in der Tabelle DEPT nachschlägt, und die Verknüpfungsbedingung basiert auf der Abteilungsnummer. Falls mehrere Zeilen in der Tabelle DEPT die Bedingung erfüllen, bestimmt die Eigenschaft „Lookup-Richtlinie bei Mehrfachübereinstimmung“ auf der Registerkarte „Eigenschaften“, welcher Wert zurückgegeben wird.

Wiederverwendbare Transformation

Eine normale Transformation ist ein Objekt, das zu einer Karte gehört.ping und kann innerhalb dieser Karte verwendet werdenping Nur. Durch die Wiederverwendbarkeit einer Transformation kann diese jedoch in mehreren Karten wiederverwendet werden.pings.

Beispielsweise kann eine Lookup-Transformation, die Mitarbeiterdetails anhand der Mitarbeiternummer abruft, in mehreren Maps verwendet werden.pings überall dort, wo Mitarbeiterdaten benötigt werden.

Durch die Verwendung einer wiederverwendbaren Transformation wird der Aufwand reduziert, dieselbe Funktionalität erneut zu erstellen. Jede Karteping enthält eine Instanz des einen gespeicherten Objekts, sodass eine Änderung an der wiederverwendbaren Transformation alle Objekte erreicht.

So erstellen Sie eine wiederverwendbare Transformation

Im Folgenden sind die Schritte zur Erstellung einer wiederverwendbaren Transformation aufgeführt.

Schritt 1) Öffnen Sie die Karteping welche Transformation durchläuft, hier vollziehen wir die Rangtransformation wiederverwendbar.

Karteping Die Rangtransformation wurde im Designer geöffnet und soll wiederverwendbar gemacht werden.

Schritt 2) Double Klicken Sie auf die Transformation, um das Fenster „Transformation bearbeiten“ zu öffnen. Dann:

  1. Wählen Sie im Fenster die Registerkarte Transformation aus
  2. Aktivieren Sie das Kontrollkästchen, um die Transformation wiederverwendbar zu machen
  3. Wählen Sie im Bestätigungsfenster Ja aus
  4. Wählen Sie im Fenster mit den Transformationseigenschaften OK aus.

Registerkarte „Transformationen“ im Fenster „Transformationen bearbeiten“ mit aktiviertem Kontrollkästchen „Wiederverwendbar machen“.

Dadurch wird die Transformation wiederverwendbar. Das Bestätigungsfenster im dritten Punkt sollte vor der Annahme gelesen werden: Das Hochstufen einer Transformation zu wiederverwendbar ist eine irreversible Änderung im Designer, und das Objekt kann anschließend nicht mehr herabgestuft werden. Wo eine einzelne Karteping Wenn ein Objekt eine eigene Kopie benötigt, ziehen Sie es bei gedrückter Strg-Taste auf die Arbeitsfläche, um stattdessen eine nicht wiederverwendbare Instanz zu erstellen.

Häufig gestellte Fragen

Ein Cache lädt die Suchquelle einmalig in den Arbeitsspeicher, sodass jede Zeile lokal abgeglichen wird, anstatt die Datenbank abzufragen. Caching eignet sich für kleine oder wiederholt gelesene Suchquellen; eine nicht zwischengespeicherte Suche fragt die Quelle für jede eingehende Zeile ab.

Verwenden Sie eine Lookup-Funktion, wenn eine Seite eine kleine Referenztabelle ist und nur wenige Spalten benötigt werden, insbesondere wenn dieselbe Referenz von mehreren Stellen gelesen wird. Ein Joiner eignet sich für einen echten Join zweier großer, heterogener Datenpipelines.

Die Suchrichtlinie für Mehrfachübereinstimmungen legt dies fest. Sie kann einen Fehler melden oder den ersten, letzten oder einen beliebigen übereinstimmenden Wert zurückgeben. Die Option, alle übereinstimmenden Werte zurückzugeben, aktiviert die Transformation und muss beim Erstellen des Projekts festgelegt werden.

Meist liegt es an der Größe der Datenquelle. Eine nicht zwischengespeicherte Abfrage fragt die Datenbank einmal pro Zeile ab, während bei einer zwischengespeicherten Abfrage die Erstellungskosten im Voraus bezahlt werden. Das Entfernen ungenutzter Abfrageports und das Eingrenzen der Abfrage können Abhilfe schaffen.

Maschinelles Lernen wird in modernen Datenintegrationswerkzeugen eingesetzt, um Spaltenübereinstimmungen zwischen einer Quell- und einer Referenztabelle vorzuschlagen und Abfragen zu kennzeichnen, die die Sitzungslaufzeit stark beanspruchen. Jeder Vorschlag muss jedoch weiterhin anhand der realen Daten überprüft werden.

Copilot hilft bei der Textdarstellung auf der Karte.ping Anstelle der Designer-Oberfläche: SQL-Überschreibungen, Parameterdateien und Skripte, die Workflows ausführen, müssen nachgeschlagen werden. Da das Repository nicht eingesehen werden kann, müssen Portnamen und Bedingungen manuell überprüft werden.

Eine wiederverwendbare Transformation ist ein einzelnes gespeichertes Objekt, das von mehreren Karten gemeinsam genutzt wird.pings. Ein Mapplet ist ein wiederverwendbarer Satz von Transformationen mit Eingabe- und Ausgabegruppen, der einen ganzen Logikabschnitt anstatt eines einzelnen Schritts verpackt.

Keine Zeile in der Suchquelle erfüllte die Bedingung für diese Eingabezeilen. Prüfen Sie die beiden Ports auf nachfolgende Leerzeichen, Groß-/Kleinschreibung und Datentypkonflikte, da der Vergleich exakt erfolgt.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: