Dynamische Lookups

Dynamische Lookups in Informatica PowerCenter sind eine leistungsfähige Technik, die es ermöglicht, Lookup-Transformationen während der Ausführung einer Mapping dynamisch zu aktualisieren. Dies ist besonders nützlich, wenn du eine Lookup-Transformation auf eine Tabelle durchführen möchtest, die sich während der Verarbeitung ständig ändern kann. Hier ist eine detaillierte Anleitung, wie du dynamische Lookups in Informatica PowerCenter einrichtest und verwendest:

1. Verständnis von dynamischen Lookups

  • Ein dynamischer Lookup kann seinen Cache während der Ausführung des Mappings aktualisieren. Wenn ein Wert nicht im Cache vorhanden ist, kann er zur Datenbank nachgeschlagen und in den Cache eingefügt werden.
  • Typische Anwendungsfälle sind Dimension Loading in Data Warehouses (z. B. SCD Typ 1 und Typ 2) oder andere Szenarien, in denen die Lookup-Tabelle gleichzeitig aktualisiert wird, während Daten geladen werden.

2. Erstellen einer Lookup-Transformation

  • Erstelle eine Lookup-Transformation im Mapping Designer, indem du den Transformation-Typ „Lookup“auswählst.
  • Wähle die Lookup-Tabelle aus, die du verwenden möchtest. Dies kann eine relationale Tabelle, eine Flat File, oder eine SQL Override sein.

3. Dynamisches Lookup konfigurieren

  • Sobald die Lookup-Transformation erstellt ist, öffne die Eigenschaften der Lookup-Transformation(Doppelklick auf die Transformation).
  • Gehe zu den Eigenschaften und setze das Lookup Cache auf Dynamic Cache. Standardmäßig ist der Cache statisch, daher muss dies explizit geändert werden.
  • Wenn du einen dynamischen Cache auswählst, aktiviert sich die Option Insert Else Update. Diese Option legt fest, dass neue Werte, die im Cache nicht gefunden werden, in die Lookup-Tabelle eingefügt werden sollen, während bestehende Werte aktualisiert werden können.

4. Erstellen und Zuordnen von Lookup-Portfeldern

  • Input-Portfelder: Definiere die Eingabefelder, die du in der Lookup-Abfrage verwenden möchtest.
  • Output-Portfelder: Erstelle die Felder, die zurückgegeben werden, wenn ein Treffer gefunden wird.
  • Lookup-Condition: Gib an, welche Felder zur Übereinstimmung mit den Daten in der Lookup-Tabelle verwendet werden sollen (z. B. ein Primary Key).
  • In der Lookup-Condition legst du fest, wie der Lookup-Schlüssel mit den Eingabedaten übereinstimmt.

5. Flags und Indikatoren für dynamische Lookups

Bei dynamischen Lookups generiert Informatica zwei spezielle Ports:

  • NewLookupRow: Ein von Informatica generierter Port (mit dem Namen DD_INSERT) zeigt an, ob der Lookup einen neuen Datensatz in den Cache einfügen oder einen bestehenden aktualisieren muss.
    • 0: Keine Änderungen erforderlich.
    • 1: Der Datensatz muss eingefügt werden.
    • 2: Der Datensatz muss aktualisiert werden.
  • Update Strategy: Du kannst diesen Port in einer Update Strategy-Transformation verwenden, um festzulegen, welche Daten in die Datenbank eingefügt oder aktualisiert werden sollen.

6. Einstellung der Eigenschaften des dynamischen Lookups

  • Setze die Option „Update Dynamic Cache“ auf true, um sicherzustellen, dass Änderungen im Lookup-Cache in die eigentliche Lookup-Tabelle zurückgeschrieben werden.
  • Definiere den Cache-Ersatzmodus (Cache Replacement Mode), um zu steuern, wie Daten aktualisiert werden sollen.
  • Die Größe des Caches und der Speicherort können in den Session-Einstellungen (im Workflow Manager) festgelegt werden, um den dynamischen Cache effizient zu nutzen.

7. Verwendung einer Update Strategy Transformation

  • Füge eine Update Strategy Transformation nach der Lookup-Transformation hinzu.
  • Verwende den NewLookupRow-Port, um die richtigen Insert- und Update-Operationen basierend auf den Lookup-Ergebnissen festzulegen.
  • Zum Beispiel kannst du eine Bedingung IIF(NewLookupRow=1, DD_INSERT, IIF(NewLookupRow=2, DD_UPDATE, DD_REJECT)) setzen, um neue Datensätze einzufügen und vorhandene zu aktualisieren.

8. Konfiguration der Session-Einstellungen

  • Stelle sicher, dass die Treat Source Rows as-Einstellung in der Session so konfiguriert ist, dass sie sowohl Inserts als auch Updates zulässt.
  • Konfiguriere die Caching-Optionen in der Session, um sicherzustellen, dass die dynamische Lookup-Tabelle effizient genutzt wird und genug Speicherplatz zur Verfügung steht.

9. Testen und Überprüfen

  • Teste das Mapping in Informatica, um sicherzustellen, dass der dynamische Lookup korrekt funktioniert.
  • Überprüfe die Ergebnisse im Session-Log, um sicherzustellen, dass die Datensätze korrekt eingefügt und aktualisiert werden.
  • Achte darauf, dass keine Leistungsprobleme oder Fehler aufgrund von Cache-Problemen auftreten.

Beispiel-Szenario für dynamischen Lookup:

Angenommen, du lädst Daten in eine Dimensionstabelle, bei der einige Datensätze schon existieren und aktualisiert werden sollen, während neue Datensätze eingefügt werden müssen. Der dynamische Lookup hilft hier, indem er:

  • Vorhandene Dimensionseinträge (z. B. basierend auf einer CustomerID) im Cache sucht.
  • Wenn CustomerID im Cache vorhanden ist, aktualisiert er den Eintrag.
  • Wenn CustomerID nicht vorhanden ist, fügt er den neuen Datensatz in die Dimensionstabelle ein und speichert ihn auch im Cache.

Mit dieser Konfiguration kannst du in Informatica PowerCenter dynamische Lookups verwenden, um eine leistungsfähige und flexible Datenverarbeitung zu erreichen, bei der Lookup-Tabellen dynamisch während des Mappings aktualisiert werden.

0 0 votes
Article Rating

You may also like...

Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x