Reihenfolge Generator Transformation in der Informatik

โšก Intelligente Zusammenfassung

Reihenfolge Generator Die Transformation in Informatica ist das passive, verbundene Objekt, das numerische Sequenzen fรผr Ersatz- und Primรคrschlรผsselspalten erzeugt und jeder Zeile รผber zwei feste Ausgabeports namens NEXTVAL und CURRVAL einen Wert zuweist.

  • ๐Ÿ”ข Zwei feste Anschlรผsse: NEXTVAL enthรคlt die generierten Zahlen, und CURRVAL gibt NEXTVAL plus den Wert โ€žInkrementieren umโ€œ zurรผck.
  • โš™๏ธ Vier Kerneigenschaften: Startwert, Inkrement, Endwert und Zyklus bestimmen die Form jeder erzeugten Sequenz.
  • ๐Ÿงช Ausgearbeitetes Beispiel: Achter Karteping Designerschritte laden generierte Zahlen in die Spalte SNO eines EMP_SEQUENCE-Ziels.
  • โ™ป๏ธ Wiederverwendbare Option: Eine wiederverwendbare Sequenz Generator wird von mehreren Karten geteiltpings und speichert standardmรครŸig 1,000 Werte im Cache.
  • ๐Ÿ”’ Die Ports sind repariert: Ports kรถnnen nicht hinzugefรผgt, bearbeitet oder gelรถscht werden, daher wird das gesamte Verhalten รผber die Registerkarte Eigenschaften gesteuert.
  • ๐Ÿ—๏ธ Ersatzschlรผssel: Die Lagerdimensionstabellen verwenden generierte Schlรผssel anstelle von natรผrlichen Schlรผsseln aus dem Quellsystem.

Reihenfolge Generator Transformation in der Informatik

Was ist Sequenz? Generator Transformation?

Reihenfolge Generator Die Transformation ist passiv, daher beeinflusst sie nicht die Anzahl der Eingabezeilen. Die Sequenz Generator wird verwendet, um Primรคrschlรผsselwerte zu generieren, und es wird verwendet, um numerische Sequenzwerte wie 1, 2, 3, 4, 5 usw. zu generieren.

Wenn Sie beispielsweise den Quelldatensรคtzen Sequenzwerte zuweisen mรถchten, kรถnnen Sie die Sequenzfunktion verwenden. GeneratorDie generierten Sequenzwerte kรถnnen beispielsweise 5, 10, 15, 20, 25 usw. oder 10, 20, 30, 40, 50 usw. sein, abhรคngig von den konfigurierten Eigenschaften der Transformation.

Im Gegensatz zu den meisten Transformationen besitzt diese keine Eingangsports. Sie liest die eingehenden Zeilen nicht, sondern รผbergibt einfach die nรคchste Zahl an den entsprechenden Port. Daher kann sie bedenkenlos neben jeder Pipeline platziert werden. Karteping.

Ports in einer Sequenz Generator Transformation

Reihenfolge Generator verfรผgt รผber zwei Ausgangsanschlรผsse

  • CURRVAL
  • NEXTVAL

Der Portwert CURRVAL ist immer NEXTVAL plus der Wert fรผr Increment By, also liest er sich nur als NEXTVAL+1, wรคhrend Increment By auf dem Standardwert 1 belassen wird.

Zur Generierung der Sequenznummern verwenden wir stets die Spalte NEXTVAL. Die folgende Tabelle fasst das Verhalten der beiden Ports zusammen.

Hafen Was es zurรผckgibt Wann anschlieรŸen?
NEXTVAL Die nรคchste Nummer in der Sequenz fรผr jede Zeile, die die Pipeline durchlรคuft. Fast immer. Dies ist der Port, der eine wichtige Spalte im Zielsystem speist.
CURRVAL NEXTVAL plus der Wert fรผr "Inkrement um". Nur in Verbindung mit NEXTVAL. Allein angeschlossen รผbergibt es fรผr jede Zeile denselben konstanten Wert.

Keiner der beiden Ports kann umbenannt oder entfernt werden, und es kann kein dritter Port hinzugefรผgt werden. Daher werden alle ร„nderungen an den generierten Nummern auf der Registerkarte โ€žEigenschaftenโ€œ und nicht an den Ports selbst vorgenommen.

Eigenschaften der Sequenz Generator Transformation

  • Startwert โ€“ Dies ist der erste Wert, der von der Transformation generiert wird. Der Standardwert ist 0.
  • Erhรถhen um โ€“ Dies ist die Zahl, um die Sie die Werte erhรถhen mรถchten. Der Standardwert ist 1.
  • Endwert โ€“ Dies ist der maximale Wert, den die Transformation generieren soll.
  • Zyklus โ€“ wenn diese Option gesetzt ist, beginnt die Transformation nach Erreichen des Endes des Werts erneut beim Startwert.

Drei weitere Einstellungen erscheinen auf demselben Tab und werden relevant, sobald die Transformation geteilt oder eine Sitzung neu gestartet wird.

Eigenschaft Was es steuert Standard
Aktueller Wert Der Wert, mit dem die nรคchste Sitzung gestartet wird. Der Integrationsdienst aktualisiert ihn im Repository, sobald Zeilen generiert werden. 1
Anzahl der zwischengespeicherten Werte Wie viele Werte werden jeweils im Speicher reserviert, sodass gleichzeitige Sitzungen niemals zweimal dieselbe Zahl ausgeben? 0 fรผr nicht wiederverwendbar, 1000 fรผr wiederverwendbar
Zurรผcksetzen Startet jede Sitzung mit dem ursprรผnglichen aktuellen Wert, anstatt fortzufahren. Diese Funktion ist fรผr wiederverwendbare Sequenzen nicht verfรผgbar. Generators. Deaktiviert
Tracing Level Detailgrad der im Sitzungsprotokoll gespeicherten Informationen: Kurz, Normal, Ausfรผhrliche Initialisierung oder Ausfรผhrliche Daten. Normal

Wie man eine Sequenz verwendet Generator Transformation in der Informatik

In diesem Beispiel generieren wir Sequenznummern und speichern sie im Zielsystem. Arbeiten Sie die acht unten stehenden Schritte in der Map durch.ping Designer.

Schritt 1) Erstellen Sie mit dem folgenden Skript eine Zieltabelle.

Laden Sie die obige emp_sequence.sql-Datei herunter

Schritt 2) Importieren Sie die Tabelle in Informatica als Zieltabelle.

Schritt 3) Erstellen Sie eine neue Karteping und importieren Sie die EMP-Quelltabelle und die EMP_SEQUENCE-Zieltabelle. Beide Definitionen befinden sich nun auf der Arbeitsflรคche, wie unten dargestellt.

Karteping Designer mit importierter EMP-Quelle und importierter EMP_SEQUENCE-Zieldefinition

Schritt 4) Erstellen Sie eine neue Transformation in der Karteping

  1. Wรคhlen Sie als Typ Sequenztransformation aus
  2. Geben Sie den Transformationsnamen โ€žseq_empโ€œ ein.
  3. Wรคhlen Sie die Option โ€žErstellenโ€œ.

Transformationsfenster mit Sequenz erstellen Generator ausgewรคhlt und der Name seq_emp eingegeben

Schritt 5) Reihenfolge Generator Die Transformation wird erstellt; wรคhlen Sie die Option โ€žFertigโ€œ. Das Objekt โ€žseq_empโ€œ wird nun mit seinen beiden Anschlรผssen auf der Arbeitsflรคche angezeigt.

Reihenfolge Generator Die Transformation seq_emp wurde auf der Karte erstellt.ping Leinwand

Schritt 6) Verknรผpfen Sie die Spalte NEXTVAL der Sequenz. Generator zur SNO-Spalte im Ziel.

Der NEXTVAL-Port von seq_emp ist mit der SNO-Spalte des EMP_SEQUENCE-Ziels verknรผpft.

Schritt 7) Verknรผpfen Sie die anderen Spalten von Quellenqualifizierer Transformation in die Zieltabelle.

Verbleibende Quellqualifiziererspalten, die mit der Zieltabelle EMP_SEQUENCE verknรผpft sind

Schritt 8) Double Klicken Sie auf die Sequenz Generator um das Eigenschaftenfenster zu รถffnen, und dann

  1. Wรคhlen Sie die Registerkarte โ€žEigenschaftenโ€œ.
  2. Geben Sie die Eigenschaften mit dem Startwert = 1 ein und belassen Sie die restlichen Eigenschaften als Standard
  3. Wรคhlen Sie die Schaltflรคche โ€žOKโ€œ.

Registerkarte โ€žEigenschaftenโ€œ der Sequenz Generator Transformation mit dem Startwert 1

Speichere nun die Karteping und fรผhren Sie es nach der Erstellung aus. Session und Arbeitsablauf..

Die Spalte โ€žsnoโ€œ im Ziel wรผrde die von der Sequenz generierten Sequenznummern enthalten. Generator Transformation.

In unserem Beispiel sรคhen die Sequenzen etwa so aus: 1 โ€“ Scott, 2 โ€“ King, 3 โ€“ Adam, 4 โ€“ Miller usw.

Wiederverwendbare und nicht wiederverwendbare Sequenz Generators

Die oben beschriebene Transformation lebt innerhalb einer Karte.pingDie Erstellung im Transformation Developer hingegen ermรถglicht die Wiederverwendbarkeit, und die beiden verhalten sich unterschiedlich, sobald mehr als eine Sitzung beteiligt ist.

Vergleichspunkt Nicht wiederverwendbar Mehrweg
Wo es entsteht Innerhalb einer einzigen Karteping, in der Karteping Designerin Im Transformation Developer kรถnnen Sie dann beliebig vielen Karten hinzufรผgen.pings
Anzahl der zwischengespeicherten Werte StandardmรครŸig ist der Wert 0, daher werden keine Werte im Voraus reserviert. StandardmรครŸig ist der Wert 1000, sodass jede Sitzung ihren eigenen Zahlenblock reserviert.
Eigenschaft zurรผcksetzen Verfรผgbar und startet die Sequenz vom ursprรผnglichen aktuellen Wert neu. Nicht verfรผgbar, da ein Neustart Nummern vergeben wรผrde, die bereits in einer anderen Sitzung verwendet wurden.
Typische Verwendung Eine Zielschlรผsselspalte in einer Karteping Ein gemeinsamer Ersatzschlรผssel รผber mehrere Kartenpings Laden der gleichen Dimension

Caching sorgt dafรผr, dass parallele Sitzungen voneinander getrennt bleiben. Jede Sitzung belegt einen Zahlenblock im Voraus, wodurch die Zahlen zwar eindeutig, aber nicht zusammenhรคngend bleiben: Alle nicht verwendeten Werte werden beim Ende einer Sitzung verworfen, und der nรคchste Block beginnt im Anschluss an diese Werte.

Regeln und Einschrรคnkungen der Reihenfolge Generator Transformation

Einige davon tauchen erst nach der Kartendarstellung auf.ping ist bereits gelaufen, daher ist es gรผnstiger, sie vor der Verbindung der Ports zu kennen.

  • Die Anschlรผsse sind fest. NEXTVAL und CURRVAL kรถnnen nicht bearbeitet oder gelรถscht werden, und es kรถnnen keine weiteren Ports zur Transformation hinzugefรผgt werden.
  • CURRVAL gibt allein eine Konstante zurรผck. Verbinde CURRVAL nur dann, wenn NEXTVAL ebenfalls nachgelagert verbunden ist, andernfalls erhรคlt jede Zeile denselben Wert.
  • Zwei Ziele werden nacheinander geladen. Wenn NEXTVAL zwei Zieltabelle speist, wird die erste Zieltabelle mit ihren Zahlen geladen, bevor die zweite Zieltabelle beginnt, sodass sich die beiden Mengen nicht รผberschneiden.
  • Lรผcken sind normal. Zwischengespeicherte Werte, die eine Sitzung nicht verwendet, werden nie zurรผckgegeben. Daher entstehen bei einer fehlgeschlagenen oder kurzen Sitzung Lรผcken in der Sequenz. Die Schlรผsselspalte sollte so gestaltet sein, dass sie solche Lรผcken toleriert.
  • Cycle kann Duplikate erzeugen. Sobald der Endwert bei aktiviertem Zyklus erreicht ist, beginnt die Nummerierung wieder bei dem Startwert, was zu Konflikten mit vorhandenen Schlรผsseln fรผhren kann, es sei denn, das Zielsystem lรคsst dies zu.

Da die Transformation nie eine Zeile liest, trรคgt sie praktisch nichts zur Sitzungslaufzeit bei, weshalb sie wรคhrend der Sitzung nur selten als Flaschenhals auftritt. LeistungsoptimierungWenn ein Schlรผssel von den Daten selbst und nicht von einem Zรคhler abhรคngen muss, Aggregator or Tischlertransformation Es ist das Objekt, das diese Arbeit verrichtet, nicht dieses hier.

Hรคufig gestellte Fragen

Ein Ersatzschlรผssel ist eine bedeutungslose Nummer, die eine Lagerzeile anstelle der Quellsystemkennung identifiziert. Er bleibt auch dann stabil, wenn sich die Quellcodes รคndern, und eine generierte Sequenz ist die einfachste Methode, einen solchen Schlรผssel zu erzeugen.

Weil die Nummerierung dann in der Karte enthalten ist.ping anstatt in einer einzigen Datenbank. Flatfiles und andere nicht-relationale Ziele erhalten Schlรผssel auf die gleiche Weise, und dasselbe wiederverwendbare Objekt kann mehrere Ziele nummerieren, ohne dass fรผr jede Tabelle ein Datenbankobjekt benรถtigt wird.

Der Endwert kann bis zu 9,223,372,036,854,775,807 betragen, der grรถรŸten vorzeichenbehafteten 64-Bit-Ganzzahl. Wird dieser Wert erreicht, wird die Sitzung mit einem รœberlauffehler beendet, es sei denn, der Zyklus ist aktiviert. In diesem Fall beginnt die Nummerierung wieder beim Startwert.

Ja. NEXTVAL verbindet sich mit einer beliebigen nachfolgenden Transformation, meistens mit einem Ausdruck, der einen zusammengesetzten Schlรผssel erstellt, oder mit einer Nachschlagefunktion, die prรผft, ob ein Schlรผssel bereits existiert. Die generierte Zahl wird dann mit der Zeile weitergegeben.

Ja, aber รผberprรผfen Sie zuerst das Ziel. Wenn Sie den Startwert oder den aktuellen Wert einer Spalte mit aktiven Schlรผsseln bearbeiten, kรถnnen Zahlen ausgegeben werden, die das Ziel bereits enthรคlt. Erhรถhen Sie daher den Wert รผber den hรถchsten Schlรผsselwert, anstatt ihn zu verringern.

Kaum. Es liest keine Zeilen und erstellt keine Cache-Dateien, daher beschrรคnkt sich der Aufwand auf eine Zรคhleraktualisierung pro Zeile. GroรŸe Datenmengen werden vom Leser und Schreiber begrenzt, lange bevor die Nummerierung zum Problem wird.

KI-Profiler scannen Quellspalten, um die eindeutigste Kombination zu ermitteln, Kandidatenschlรผssel mit Nullwerten oder Duplikaten zu kennzeichnen und Abweichungen zwischen Ladevorgรคngen zu erkennen. Maschinelles Lernen verknรผpft zudem Datensรคtze, die dieselbe Entitรคt unter verschiedenen Kennungen beschreiben.

Copilot schreibt das ร„quivalent SQL Sequenz- oder Identitรคtsdefinition und Abgleichsabfragen, die belegen, dass kein Schlรผssel doppelt vorhanden ist. Da die Repository-Werte nicht eingesehen werden kรถnnen, รผberprรผfen Sie den aktuellen Wert in der Transformation selbst vor dem Laden.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: