Quellqualifikatortransformation in Informatica mit BEISPIEL

⚡ Intelligente Zusammenfassung

Die Source Qualifier-Transformation in Informatica repräsentiert die Zeilen, die der Integrationsdienst aus einer relationalen Quelle oder einer Flatfile liest, und ermöglicht es einem Entwickler, die Standardabfrage zu überschreiben, die Daten zu filtern, zu sortieren und zu deduplizieren.

  • 🧩 Automatisches Objekt: Ein Quellqualifizierer wird automatisch angezeigt, sobald eine relationale Tabelle oder eine flache Datei zu einer Zuordnung hinzugefügt wird.ping.
  • ✍️ SQL-Überschreibung: Eine benutzerdefinierte Abfrage ersetzt die generierte SELECT-Anweisung und hat Vorrang vor dem Quellfilter und der Einstellung für sortierte Ports.
  • 🔢 Hafenreihenfolge: Die SELECT-Liste muss die Ports in der Reihenfolge angeben, in der sie in der Transformation erscheinen, andernfalls kann die Sitzung fehlschlagen.
  • 🎯 Quellenfilter: Eine Filterbedingung kürzt die Anzahl der Zeilen in der Datenbank, und das Schlüsselwort WHERE darf dabei nicht verwendet werden.
  • 🔗 Single-Pass-Join: Zusammengehörige Tabellen aus einer relationalen Datenquelle können innerhalb eines Source Qualifiers anstatt eines Joiners verknüpft werden.
  • ⚡ Less der Verkehr: Durch die in die Quellabfrage verlagerte Arbeit werden weniger Zeilen über das Netzwerk in die Sitzung übertragen.

Quellqualifikatortransformation in Informatica

Was ist Quellqualifikatortransformation?

Die Source Qualifier-Transformation ist eine aktive, verbundene Transformation, die die Zeilen repräsentiert, die der Integrationsdienst beim Ausführen einer Sitzung liest. Immer wenn eine relationale Quelle oder eine Flatfile zu einer Map hinzugefügt wird.pingHierfür ist eine Quellqualifizierer-Transformation erforderlich, die vom Designer automatisch hinzugefügt wird. Mit dem Quellqualifizierer können Sie definieren und überschreiben, wie die Daten aus der Quelle abgerufen werden.

Die Transformation wandelt außerdem die nativen Datentypen der Quelle in Informatica-Transformationsdatentypen um, sodass jede nachfolgende Transformation mit einem plattformneutralen Satz von Typen arbeitet.

Da der Source Qualifier die Abfrage erstellt, die tatsächlich die Datenbank erreicht, ist er der erste Ort, an dem man nachsehen sollte, wenn ein Karteping Die Abfrage liest mehr Zeilen oder Spalten als benötigt. Das folgende Beispiel reduziert die Abfrage auf vier Spalten.

Wie man den Quellqualifizierer in Informatica ändert

Im folgenden Beispiel werden wir den Quellqualifizierer unserer Karte ändern.ping „m_emp_emp_target“, sodass anstatt aller Spalten nur ausgewählte Spalten zurückgegeben werden.

Schritt 1) Öffnen Sie die Karteping „m_emp_emp_target“ in Mapping Designer. Die Karteping Auf der Arbeitsfläche werden die EMP-Quelle, der SQ_EMP Source Qualifier und das EMP_TARGET-Ziel angezeigt.

Karteping m_emp_emp_target in Informatica-Map öffnenping Designerin

Schritt 2) DoubleKlicken Sie auf die Quellqualifizierer-Transformation „SQ_EMP“. Dadurch wird das Fenster „Transformationen bearbeiten“ für dieses Objekt geöffnet.

  1. Klicken Sie auf die Registerkarte Eigenschaften
  2. Klicken Sie auf die SQL Klicken Sie auf die Option „Abfrage ändern“. Dadurch wird ein SQL-Editor-Fenster geöffnet

Auf der Registerkarte „Eigenschaften“ wird die unten dargestellte SQL-Abfragezeile angezeigt.

Registerkarte „Eigenschaften“ des SQ_EMP-Quellqualifizierers mit ausgewählter SQL-Abfragezeile

Schritt 3) Im SQL-Editor-Fenster

  1. Geben Sie die folgende Abfrage ein
    SELECT  EMPNO,  ENAME,  JOB,  MGR FROM  EMP

    Hinweis – Wir wählen die Spalten EMPNO, ENAME, JOB und MGR aus der Datenquelle aus, daher haben wir in der SELECT-Abfrage nur diese beibehalten.

  2. Wählen Sie die Schaltfläche „OK“ aus.

Der SQL-Editor enthält nun die benutzerdefinierte Abfrage anstelle der generierten.

Das SQL-Editor-Fenster enthält die benutzerdefinierte SELECT-Abfrage für den Quellqualifizierer.

Schritt 4) Im Fenster „Transformationen bearbeiten“,

  1. Wählen Sie im Menü die Registerkarte „Anschlüsse“ aus.
  2. Unter dem Reiter „Ports“ werden alle Ports angezeigt. Behalten Sie nur die Ports EMPNO, ENAME, JOB und MGR bei und löschen Sie die anderen Ports.

Die Registerkarte „Ports“ listet alle Ports auf, die vor der Löschung von der Transformation übernommen wurden.

Registerkarte „Ports“ im Fenster „Transformationen bearbeiten“ mit Auflistung aller Quellqualifizierer-Ports

Schritt 5) Nach dem Löschen der Ports wählen Sie die Schaltfläche „OK“. Es bleiben nur noch die vier verbleibenden Ports in der Liste.

Registerkarte „Ports“, nachdem die unerwünschten Source Qualifier-Ports gelöscht wurden

Klicken Sie nun im Fenster „Transformationen bearbeiten“ erneut auf die Registerkarte „Eigenschaften“. Daraufhin werden nur noch die von Ihnen ausgewählten Daten angezeigt.

Registerkarte „Eigenschaften“, die die gespeicherte SQL-Abfrageüberschreibung für den Quellqualifizierer anzeigt

Wenn Sie auf die Schaltfläche „OK“ klicken, öffnet sich das SQL-Editor-Fenster.

  1. Es wird bestätigt, dass die ausgewählten Daten korrekt sind und zum Laden in die Zieltabelle bereitstehen.
  2. Klicken Sie auf die Schaltfläche „OK“, um fortzufahren.

Im Bestätigungsfenster werden die vier Spalten, die nun vorgelesen werden, wiederholt.

Das SQL-Editor-Fenster bestätigt die überschriebene Abfrage vor der Zuordnung.ping ist gespeichert

Karte speichernping (mithilfe der Tastenkombination Strg+S) und führen Sie Folgendes aus: Arbeitsablauf.Nach der Ausführung werden nur die ausgewählten Spalten in das Ziel geladen.

Auf diese Weise können Sie im Quellqualifizierer überschreiben, welche Spalten aus der Quelle abgerufen werden sollen, und dies ist die einzige Möglichkeit, zu steuern, welche spezifischen Spalten in die Zuordnung übernommen werden.ping.

Eigenschaften des Quellqualifikators

Mithilfe verschiedener Eigenschaften des Quellqualifizierers können Sie bestimmen, welche Art von Quelldaten transformiert und an die Zieltabelle gesendet werden müssen.

  1. Quellfilter – Mithilfe der Eigenschaft „Quellfilter“ können Sie die Anzahl der Quelldatensätze reduzieren. Wenn Sie beispielsweise nur die Mitarbeiter der Abteilung 10 abrufen möchten, geben Sie die Filterbedingung „deptno=10“ in der Eigenschaft „Quellfilter“ ein und führen Sie die Datenverarbeitung durch. Fügen Sie den Tabellennamen und den Portnamen in die Bedingung ein und lassen Sie das Schlüsselwort „WHERE“ weg – ein Filter mit „WHERE“ führt zu einem Fehler in der Sitzung.
  2. Anzahl der sortierten Ports – In der Quellqualifizierer-Transformation können Sie die Eingabedatensätze auch nach Portposition sortieren. Der Integrationsdienst fügt der Standardabfrage eine ORDER BY-Klausel hinzu, die die Ports vom Anfang der Transformation aus zählt, sodass die Daten bereits sortiert sind, wenn sie die Transformationen innerhalb der Zuordnung erreichen.ping.

    Da die Daten entweder nach einem oder nach mehreren Ports sortiert werden können, müssen Sie die Anzahl der zu verwendenden Ports angeben. Bei Angabe des Wertes 1 werden nur die Daten nach „empno“ sortiert. Bei Angabe des Wertes 2 werden die Daten sowohl nach „empno“ als auch nach „ename“ sortiert.

  3. Wählen Sie „Eindeutig“ aus – Mit dieser Eigenschaft können Sie nur eindeutige Datensätze aus der Quelle abrufen. Wenn Sie die Option „Eindeutige Datensätze auswählen“ aktivieren, fügt der Integrationsdienst eine SELECT DISTINCT-Anweisung hinzu, sodass der Quellqualifizierer nur eindeutige Kombinationen von Quelldaten abruft.

Die unten angezeigte Registerkarte „Eigenschaften“ enthält diese Optionen zusammen mit dem Rest der Eigenschaftenliste.

Registerkarte „Eigenschaften des Quellqualifizierers“ mit Quellfilter, Anzahl der sortierten Ports und Auswahl eindeutiger Ports.

Die vollständige Liste der Eigenschaften eines relationalen Source Qualifiers ist in der folgenden Tabelle zusammengefasst.

Eigenschaft Was sie tut,
SQL-Abfrage Ersetzt die vom Integrationsdienst generierte Standardabfrage. Eine benutzerdefinierte Abfrage überschreibt einen benutzerdefinierten Join und einen Quellfilter.
Benutzerdefinierter Join Liefert die Bedingung, die zum Zusammenführen von Daten aus mehreren Quellen verwendet wird, die durch denselben Quellqualifizierer repräsentiert werden.
Quellfilter Liefert die Filterbedingung, die der Integrationsdienst beim Abfragen von Zeilen anwendet.
Anzahl der sortierten Ports Anzahl der Spalten, die zum Sortieren der aus relationalen Datenquellen gelesenen Zeilen verwendet werden, hinzugefügt zur Abfrage als ORDER BY.
Tracing Level Detailgrad der im Sitzungsprotokoll für diese Transformation geschriebenen Informationen.
Wählen Sie „Eindeutig“ aus Gibt nur eindeutige Zeilen zurück, indem SELECT DISTINCT zur Abfrage hinzugefügt wird.
Pre-SQL Die Befehle werden an der Quelldatenbank ausgeführt, bevor der Integrationsdienst die Quelle liest.
Post-SQL Die Befehle werden an die Quelldatenbank gesendet, nachdem der Integrationsdienst in das Ziel geschrieben hat.
Die Ausgabe ist deterministisch. Gibt an, dass die Quelle bei konsistenter Eingabe zwischen verschiedenen Durchläufen die gleichen Daten zurückgibt.
Die Ausgabe ist reproduzierbar. Legt fest, dass die Quelle die Zeilen zwischen den Ausführungen in der gleichen Reihenfolge zurückgibt, wodurch der Integrationsdienst das Staging für die Wiederherstellung überspringen kann.

Regeln und Richtlinien für eine SQL-Überschreibung mit Quellqualifizierer

Eine SQL-Überschreibung ist deshalb so wirkungsvoll, weil sie alles ersetzt, was der Designer generiert hat. Genau deshalb schlägt sie auch stillschweigend fehl, wenn die folgenden Regeln ignoriert werden.

  • Schließen Sie zuerst die Ports an. Verbinden Sie alle Eingangs- und Ausgangsports, die Sie verwenden möchten, bevor Sie die Abfrage eingeben, da die generierte Abfrage aus den verbundenen Ports erstellt wird.
  • Die SELECT-Liste sollte in Portreihenfolge vorliegen. Die SELECT-Anweisung muss die Portnamen in der Reihenfolge auflisten, in der sie in der Transformation vorkommen. Stimmt die Reihenfolge nicht überein, kann die Sitzung fehlschlagen oder unerwartete Ergebnisse liefern.
  • Jede Spalte muss qualifiziert werden. Jedem Spaltennamen muss der Name der Tabelle, der Ansicht oder des Synonyms vorangestellt werden, zu der er gehört, z. B. ORDERS.ORDER_ID.
  • Generieren Sie den Code, bevor Sie ihn bearbeiten. Durch Klicken auf „SQL generieren“ wird die Standardabfrage angezeigt, die bereits den Quellfilter und die Sorted-Ports-Klausel enthält, sodass die Überschreibung aus einer funktionierenden Anweisung erstellt werden kann.
  • Überprüfen Sie die Aussage. Der SQL-Editor verfügt über eine Schaltfläche „Validieren“, die die Abfrage ausführt und meldet, ob die Syntax korrekt ist, bevor die Sitzung überhaupt gestartet wird.
  • Das Zitat ist reserviert. Alle in der Abfrage verwendeten reservierten Datenbankwörter müssen in Anführungszeichen gesetzt werden.
  • Beachten Sie die Präzedenzfälle. Eine benutzerdefinierte Abfrage überschreibt den Quellfilter und die Anzahl der sortierten Ports sowie eine in der Session Die Eigenschaften überschreiben sowohl die Filterbedingung als auch die in der Karte definierte Abfrage.ping.

Für Microsoft SQL Server Quellen zufolge gibt es eine zusätzliche Regel: Die Anzahl der Spalten in der SELECT-Anweisung muss mit der Anzahl der Ports in der Transformation übereinstimmen, sonst schlägt die Sitzung beim Abrufen von Zeilen fehl.

Wie man zwei Quellen mit einem Quellenqualifizierer verbindet

Ein einzelner Quellqualifizierer kann mehrere Tabellen lesen. Wenn zwei zusammengehörige Tabellen aus derselben relationalen Quelle mit einem Quellqualifizierer verknüpft sind, führt der Integrationsdienst die Verknüpfung innerhalb der Quellabfrage und nicht innerhalb der Zuordnung durch.pingDas bedeutet, dass die Datenbank die Arbeit übernimmt und weniger Zeilen an die Sitzung übertragen werden.

Der Standard-Join ist ein innerer Equijoin, der in der WHERE-Klausel als Source1.column_name = Source2.column_name geschrieben wird. Damit dieser Join generiert werden kann, müssen die verknüpften Spalten eine Primärschlüssel-Fremdschlüssel-Beziehung und übereinstimmende Datentypen aufweisen. Falls die importierten Metadaten keine solche Beziehung enthalten, können Sie diese in der WHERE-Klausel erstellen. Quellenanalysator durch Verknüpfung der übereinstimmenden Spalten der beiden Quelldefinitionen.

Wenn die Beziehung fehlt oder ein Outer Join erforderlich ist, verwenden Sie stattdessen die benutzerdefinierte Join-Eigenschaft. Die dort eingegebene Bedingung ersetzt die in den Metadaten enthaltenen Join-Informationen, und der Integrationsdienst fügt sie der generierten Abfrage hinzu.

Zwei Einschränkungen sind zu beachten. Beide Tabellen müssen aus derselben relationalen Datenquelle stammen, und Datenquellen unterschiedlichen Typs – beispielsweise eine Textdatei und eine Tabelle oder zwei verschiedene Datenbanken – müssen mit dem entsprechenden Schlüssel verknüpft werden. Tischlertransformation stattdessen.

Quellqualifizierer vs. Filter vs. Joiner-Transformation

Alle drei Objekte können Zeilen reduzieren oder kombinieren, und die Wahl des falschen Objekts ist eine häufige Ursache für langsame Sitzungen. Die folgende Tabelle stellt sie einander gegenüber.

Aspekt Quellqualifikator Filtertransformation Tischlertransformation
Wo die Arbeit stattfindet In der Quelldatenbank, innerhalb der generierten Abfrage Im Integrationsdienst, Zeile für Zeile Im Integrationsdienst wird ein Cache verwendet
Hauptzweck Quellzeilen lesen, Abfrage überschreiben, filtern, sortieren, Duplikate entfernen Zeilen entfernen, die eine der Bedingungen nicht erfüllen Kombinieren Sie zwei Pipelines zu einem Zeilensatz
Quelltypen Relationale Tabellen und Flatfiles einer Quelle Beliebige Pipeline-Daten Heterogene Quellen, darunter Flatfiles und verschiedene Datenbanken
Unterstützen Sie uns! Innerer Equijoin oder ein benutzerdefinierter Join innerhalb einer relationalen Datenquelle Keine Präsentation Normale, Master-Außen-, Detail-Außen- und vollständige Außenverbindungen
Reihen, die das Netzwerk kreuzen Nur die Zeilen, die die Abfrage zurückgibt Zuerst wird jede Quellzeile gelesen. Zuerst wird jede Quellzeile gelesen.

Die praktische Regel ist einfach: Filtern und verknüpfen Sie so früh wie möglich, sobald die Quelle dies zulässt, und streben Sie nach einem Filter oder ein Joiner nur für Aufgaben, die die Quelldatenbank nicht ausführen kann. Bedingungen in den Quellqualifizierer einzufügen, ist eine der kostengünstigsten Gewinnmöglichkeiten während Leistungsoptimierung.

Häufig gestellte Fragen

Vor dem Lesen der Quelldatenbank durch den Integrationsdienst werden Pre-SQL-Befehle auf der Quelldatenbank ausgeführt. Nach dem Schreiben der Zieldatenbank durch den Integrationsdienst werden Post-SQL-Befehle auf derselben Datenbank ausgeführt.

TracDer Protokollierungsgrad legt fest, wie detailliert die Transformation in das Sitzungsprotokoll geschrieben wird. Ein höherer Wert ist hilfreich bei der Diagnose einer unerwartet hohen Zeilenanzahl, vergrößert aber das Protokoll und verlangsamt den Ablauf. Daher sollte er anschließend wieder gesenkt werden.

Der SQL-Editor verfügt über eine Schaltfläche „Validieren“. Diese führt die Anweisung gegen die ausgewählte ODBC-Datenquelle aus und meldet, ob die Syntax korrekt ist, sodass Fehler im Designer und nicht erst in einer fehlgeschlagenen Sitzung angezeigt werden.

Ja. Parameter und Variablen sind in der Abfrage, dem benutzerdefinierten Join, dem Quellfilter sowie den Befehlen vor und nach der Sitzung zulässig. Zeichenkettenparameter müssen in Anführungszeichen gesetzt werden, wie es die Quelldatenbank erwartet.

Sie legen fest, dass eine Quelle bei wiederholten Ausführungen dieselben Daten in derselben Reihenfolge zurückgibt. Sind beide Einstellungen aktiviert, überspringt der Integrationsdienst das Zwischenspeichern der Quelldaten für die Wiederherstellung, wodurch die Ausführungszeit verkürzt wird.

Nein. Abfrageüberschreibungen, benutzerdefinierte Joins, Quellfilter und Befehle vor oder nach der Sitzung werden in eine Datenbank geschrieben und gelten daher für relationale Datenquellen. Ein Quellqualifizierer in einer flachen Datei steuert hauptsächlich tracReihenfolge der Ein- und Ausschiffung.

KI-Assistenten analysieren Abfragepläne und den Arbeitslastverlauf, um Prädikate, Indizes und die Reduzierung von Spalten vorzuschlagen. Maschinelles Lernen in modernen Datenbanken bewertet diese Vorschläge, doch ein Entwickler validiert weiterhin jede Änderung, bevor sie in einer Sitzung wirksam wird.

Copilot kann die SELECT-Anweisung entwerfen und die Verarbeitung wiederkehrender Spaltenlisten beschleunigen. Da die Portreihenfolge Ihrer Transformation unbekannt ist, überprüfen Sie die generierte Anweisung vor dem Speichern anhand der Registerkarte „Ports“.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: