Sekvens Generator Transformation i Informatica
⚡ Smart sammanfattning
Sekvens Generator En transformation i Informatica är det passiva, anslutna objektet som producerar numeriska sekvenser för surrogat- och primärnyckelkolumner, och ger varje rad ett värde genom två fasta utgångsportar som heter NEXTVAL och CURRVAL.
Vad är Sequence Generator Omvandling?
Sekvens Generator Transformationen är passiv, så den påverkar inte antalet inmatade rader. Sekvensen Generator används för att generera primärnyckelvärden och används för att generera numeriska sekvensvärden som 1, 2, 3, 4, 5 etc.
Om du till exempel vill tilldela sekvensvärden till källposterna kan du använda Sekvens GeneratorDe genererade sekvensvärdena kan vara som 5, 10, 15, 20, 25 etc. eller 10, 20, 30, 40, 50 etc. beroende på transformationens konfigurerade egenskaper.
Till skillnad från de flesta transformationer har den här inga inmatningsportar alls. Den läser inte de inkommande raderna, den skickar helt enkelt nästa nummer till den port den är länkad till, vilket är anledningen till att den är säker att placera bredvid vilken pipeline som helst i en kartaping.
Portar i en sekvens Generator Transformation
Sekvens Generator har två utgångsportar
- KURVAL
- NEXTVAL
CURRVAL-portvärdet är alltid NEXTVAL plus värdet Increment By, så det läses endast som NEXTVAL+1 medan Increment By lämnas på standardvärdet 1.
För att generera sekvensnumren använder vi alltid kolumnen NEXTVAL. Tabellen nedan sammanfattar hur de två portarna beter sig.
| Port | Vad den returnerar | När ska man ansluta den |
|---|---|---|
| NEXTVAL | Nästa siffra i sekvensen för varje rad som passerar genom pipelinen. | Nästan alltid. Detta är porten som matar en nyckelkolumn i målet. |
| KURVAL | NEXTVAL plus värdet Öka med. | Endast tillsammans med NEXTVAL. Kopplat separat skickar den samma konstanta värde för varje rad. |
Ingen av portarna kan bytas om eller tas bort, och ingen tredje port kan läggas till, så varje ändring av de genererade numren görs på fliken Egenskaper snarare än på portarna.
Egenskaper för sekvens Generator Transformation
- Startvärde – Det är det första värdet som kommer att genereras av transformationen, standardvärdet är 0.
- Öka med – Detta är talet som du vill öka värdena med. Standardvärdet är 1.
- Slutvärde – Det är det maximala värdet som transformationen ska generera.
- Cykel – om det här alternativet är inställt startar omvandlingen om från startvärdet efter att ha nått slutet av värdet.
Tre ytterligare inställningar visas på samma flik och gäller så snart transformationen delas eller en session körs om.
| Fast egendom | Vad den kontrollerar | Standard |
|---|---|---|
| Nuvarande värde | Värdet som nästa sessionskörning börjar från. Integrationstjänsten uppdaterar det i databasen allt eftersom rader genereras. | 1 |
| Antal cachade värden | Hur många värden som reserveras i minnet samtidigt så att samtidiga sessioner aldrig delar ut samma nummer två gånger. | 0 för icke-återanvändbar, 1000 för återanvändbar |
| Återställa | Startar varje session från det ursprungliga aktuella värdet istället för att fortsätta. Det är inte tillgängligt på återanvändbara sekvenser. Generators. | Disabled |
| Tracingnivå | Mängd detaljer som skrivs till sessionsloggen: Kortfattad, Normal, Utförlig initialisering eller Utförliga data. | Vanligt |
Hur man använder sekvens Generator Transformation i Informatica
I det här exemplet genererar vi sekvensnummer och lagrar dem i målet. Arbeta dig igenom de åtta stegen nedan i kartan.ping Designer.
Steg 1) Skapa en måltabell med följande skript.
Ladda ner filen emp_sequence.sql ovan
Steg 2) Importera tabellen i Informatica som måltabell.
Steg 3) Skapa en ny kartaping och importera EMP-källan och EMP_SEQUENCE-måltabellen. Båda definitionerna finns nu på arbetsytan, som visas nedan.
Steg 4) Skapa en ny transformation i kartanping
- Välj sekvenstransformation som typ
- Ange transformationsnamnet "seq_emp"
- Välj Skapa alternativ
Steg 5) Sekvens Generator När transformationen skapas, välj alternativet "klar". Objektet seq_emp visas nu på arbetsytan med sina två portar.
Steg 6) Länka NEXTVAL-kolumnen i sekvensen Generator till SNO-kolumnen i målet.
Steg 7) Länka de andra kolumnerna från källkvalificerare omvandling till måltabellen.
Steg 8) Double klicka på sekvensen Generator för att öppna egenskapsfönstret och sedan
- Välj egenskapsfliken
- Ange egenskaperna med Startvärde =1, lämna resten egenskaper som standard
- Välj OK-knappen
Spara nu kartanping och kör den efter att ha skapat session och arbetsflöde.
Sno-kolumnen i målet skulle innehålla sekvensnumren som genereras av sekvensen. Generator omvandling.
I vårt exempel kommer sekvenserna att vara som 1 – Scott, 2 – King, 3 – Adam, 4 – Miller, etc.
Återanvändbar och icke-återanvändbar sekvens Generators
Transformationen som byggdes ovan finns inuti en kartapingAtt skapa den i Transformation Developer gör den istället återanvändbar, och de två beter sig olika när mer än en session är inblandad.
| Punkt av jämförelse | Ej återanvändbar | Återanvändbara |
|---|---|---|
| Var den skapas | Inuti en enda kartaping, på kartanping designer | I Transformation Developer, läggs sedan till valfritt antal kartorpings |
| Antal cachade värden | Standardvärdet är 0, så värden reserveras inte i förväg | Standardvärdet är 1000, så varje session reserverar sitt eget nummerblock |
| Återställ egenskap | Tillgänglig, och startar om sekvensen från det ursprungliga aktuella värdet | Inte tillgängligt, eftersom omstart skulle dela ut nummer som en annan session redan har använts |
| Typisk användning | En målnyckelkolumn i en kartaping | En delad surrogatnyckel över flera kartorpings laddar samma dimension |
Cachning är det som håller isär samtidiga sessioner. Varje session tar ett block med siffror i förväg, vilket innebär att siffrorna förblir unika men inte sammanhängande: alla värden som lämnas oanvända när en session avslutas kasseras, och nästa block börjar efter dem.
Regler och begränsningar för sekvens Generator Transformation
Några av dessa dyker bara upp efter kartanping har körts, så de är billigare att känna till innan portarna länkas.
- Portarna är fixade. NEXTVAL och CURRVAL kan inte redigeras eller tas bort, och inga ytterligare portar kan läggas till i transformationen.
- CURRRVAL returnerar i sig själv en konstant. Anslut CURRVAL endast när NEXTVAL också är anslutet nedströms, annars får varje rad samma värde.
- Två mål laddas efter varandra. När NEXTVAL matar två måltabeller laddas det första målet med sina nummer innan det andra målet startar, så att de två uppsättningarna inte sammanfogas.
- Mellanrum är normalt. Cachade värden som en session inte använder skickas aldrig tillbaka, så en misslyckad eller kort session lämnar luckor i sekvensen. Utforma nyckelkolumnen så att den tolererar luckor.
- Cykeln kan skapa dubbletter. När slutvärdet nås med Cykel aktiverat startar numreringen om vid startvärdet, vilket kommer att kollidera med befintliga nycklar om inte målet tillåter det.
Eftersom den aldrig läser en rad, lägger transformationen nästan ingenting till sessionskörningen, vilket är anledningen till att den sällan uppträder som en flaskhals under prestandajusteringDär en nyckel måste vara beroende av själva data snarare än av en räknare, en Aggregator or Snickarförvandling är objektet som gör det arbetet, inte det här.







