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.

  • 🔢 Två fasta portar: NÄSTAVAL innehåller de genererade talen, och KULVAL returnerar NÄSTAVAL plus värdet Öka med.
  • ⚙️ Fyra kärnegenskaper: Startvärde, Ökning med, Slutvärde och Cykel bestämmer formen på varje producerad sekvens.
  • 🧪 Utarbetat exempel: Åtta kartaping Designersteg laddar genererade tal i SNO-kolumnen för ett EMP_SEQUENCE-mål.
  • ♻️ Återanvändbart alternativ: En återanvändbar sekvens Generator delas av flera kartorpings och cachar 1 000 värden som standard.
  • 🔒 Portarna är fixade: Portar kan inte läggas till, redigeras eller tas bort, så allt beteende styrs från fliken Egenskaper.
  • 🗝️ Surrogatnycklar: Dimensionstabeller för lager använder genererade nycklar istället för naturliga nycklar från källsystemet.

Sekvens Generator Transformation i Informatica

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.

Kartaping Designer med EMP-källan och EMP_SEQUENCE-måldefinitionen importerad

Steg 4) Skapa en ny transformation i kartanping

  1. Välj sekvenstransformation som typ
  2. Ange transformationsnamnet "seq_emp"
  3. Välj Skapa alternativ

Skapa transformationsfönster med sekvens Generator valt och namnet seq_emp angett

Steg 5) Sekvens Generator När transformationen skapas, välj alternativet "klar". Objektet seq_emp visas nu på arbetsytan med sina två portar.

Sekvens Generator transformation seq_emp skapad på kartanping canvas

Steg 6) Länka NEXTVAL-kolumnen i sekvensen Generator till SNO-kolumnen i målet.

NEXTVAL-porten för seq_emp länkad till SNO-kolumnen för EMP_SEQUENCE-målet

Steg 7) Länka de andra kolumnerna från källkvalificerare omvandling till måltabellen.

Återstående källkvalificerare-kolumner länkade till måltabellen EMP_SEQUENCE

Steg 8) Double klicka på sekvensen Generator för att öppna egenskapsfönstret och sedan

  1. Välj egenskapsfliken
  2. Ange egenskaperna med Startvärde =1, lämna resten egenskaper som standard
  3. Välj OK-knappen

Fliken Egenskaper för sekvensen Generator transformation med startvärdet satt till 1

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.

Vanliga frågor

En surrogatnyckel är ett meningslöst nummer som identifierar en lagerrad istället för källsystemets identifierare. Den förblir stabil när källan ändrar sina koder, och en genererad sekvens är det enklaste sättet att producera en.

Eftersom numreringen då finns kvar i kartanping snarare än i en enda databas. Platta filer och andra icke-relationella mål får nycklar på samma sätt, och samma återanvändbara objekt kan numrera flera mål utan ett databasobjekt per tabell.

Slutvärdet accepterar upp till 9 223 372 036 854 775 807, det största teckenförtecknade 64-bitarsheltalet. Om det nårs stoppas sessionen med ett överfyllningsfel om inte Cycle är aktiverat, i vilket fall numreringen börjar om från startvärdet.

Ja. NEXTVAL ansluter till vilken nedströmstransformation som helst, oftast ett uttryck som skapar en sammansatt nyckel eller en sökning som kontrollerar om en nyckel redan finns. Det genererade numret följer sedan med raden.

Ja, men kontrollera målet först. Att redigera startvärdet eller det aktuella värdet på en aktiv nyckelkolumn kan ge ut siffror som målet redan innehåller, så höj värdet över den högsta nyckeln istället för att sänka det.

Knappt. Den läser inga rader och bygger inga cachefiler, så kostnaden är en räknaruppdatering per rad. Stora belastningar begränsas av läsaren och skribenten långt innan numreringen blir ett problem.

AI-profiler skannar källkolumner för att föreslå vilken kombination som är verkligt unik, flaggar kandidatnycklar med nullvärden eller dubbletter och upptäcker avvikelser mellan inläsningar. Maskininlärningsbaserad matchning länkar också poster som beskriver samma entitet under olika identifierare.

Copilot skriver motsvarande SQL sekvens- eller identitetsdefinition och avstämningsfrågorna som bevisar att ingen nyckel duplicerades. Den kan inte se dina databasvärden, så verifiera det aktuella värdet i själva transformationen innan en inläsning.

Sammanfatta detta inlägg med: