Sequence Generator Transformation i Informatica

⚡ Smart opsummering

Sequence Generator En transformation i Informatica er det passive, forbundne objekt, der producerer numeriske sekvenser for surrogat- og primære nøglekolonner, og som overfører en værdi til hver række gennem to faste outputporte kaldet NEXTVAL og CURRVAL.

  • 🔢 To faste porte: NÆSTEVAL bærer de genererede tal, og KURVAL returnerer NÆSTEVAL plus værdien for forøgelse med.
  • 🇧🇷 Fire kerneegenskaber: Startværdi, Forøgelse med, Slutværdi og Cyklus bestemmer formen på hver produceret sekvens.
  • 🧪 Udarbejdet eksempel: Otte kortping Designertrin indlæser genererede tal i SNO-kolonnen i et EMP_SEQUENCE-mål.
  • ♻️ Genanvendelig mulighed: En genanvendelig sekvens Generator deles af flere kortpings og cacher 1,000 værdier som standard.
  • 🔒 Portene er faste: Porte kan ikke tilføjes, redigeres eller slettes, så al adfærd styres fra fanen Egenskaber.
  • 🗝️ Surrogatnøgler: Lagerstedsdimensionstabeller bruger genererede nøgler i stedet for naturlige nøgler fra kildesystemet.

Sequence Generator Transformation i Informatica

Hvad er sekvens Generator Transformation?

Sequence Generator Transformationen er passiv, så den påvirker ikke antallet af inputrækker. Sekvensen Generator bruges til at generere primære nøgleværdier, og den bruges til at generere numeriske sekvensværdier som 1, 2, 3, 4, 5 osv.

Hvis du f.eks. vil tildele sekvensværdier til kildeposterne, kan du bruge Sekvens GeneratorDe genererede sekvensværdier kan være som 5, 10, 15, 20, 25 osv. eller 10, 20, 30, 40, 50 osv. afhængigt af transformationens konfigurerede egenskaber.

I modsætning til de fleste transformationer har denne slet ingen inputporte. Den læser ikke de indgående rækker, den sender blot det næste nummer til den port, den er knyttet til, hvilket er grunden til, at den er sikker at placere ved siden af ​​enhver pipeline i en kortping.

Porte i en sekvens Generator Transformation

Sequence Generator har to udgangsporte

  • KURVAL
  • NEXTVAL

CURRVAL-portværdien er altid NEXTVAL plus Increment By-værdien, så den læses kun som NEXTVAL+1, mens Increment By forbliver på standardværdien 1.

For at generere sekvensnumrene bruger vi altid NEXTVAL-kolonnen. Tabellen nedenfor opsummerer, hvordan de to porte opfører sig.

port Hvad den returnerer Hvornår skal den tilsluttes
NEXTVAL Det næste tal i sekvensen for hver række, der passerer gennem pipelinen. Næsten altid. Dette er den port, der forsyner en nøglekolonne i målet.
KURVAL NEXTVAL plus værdien Forøg med. Kun sammen med NEXTVAL. Forbundet alene sender den den samme konstante værdi for hver række.

Ingen af ​​portene kan omdøbes eller fjernes, og ingen tredje port kan tilføjes, så alle ændringer af de genererede tal foretages på fanen Egenskaber i stedet for på portene.

Egenskaber for rækkefølge Generator Transformation

  • Startværdi – Det er den første værdi, der genereres af transformationen, standardværdien er 0.
  • Forøg med – Dette er det tal, som du vil øge værdierne med. Standardværdien er 1.
  • Slutværdi – Det er den maksimale værdi, som transformationen skal generere.
  • Cyklus – hvis denne indstilling er indstillet, vil transformationen genstarte fra startværdien efter at have nået slutningen af ​​værdien.

Tre yderligere indstillinger vises på den samme fane og har betydning, så snart transformationen deles, eller en session køres igen.

Ejendom Hvad den kontrollerer Standard
Nuværende værdi Den værdi, som den næste sessionskørsel starter fra. Integrationstjenesten opdaterer den i arkivet, efterhånden som rækker genereres. 1
Antal cachelagrede værdier Hvor mange værdier der er reserveret i hukommelsen ad gangen, så samtidige sessioner aldrig udleverer det samme tal to gange. 0 for ikke-genanvendelig, 1000 for genanvendelig
Nulstil Starter hver session fra den oprindelige aktuelle værdi i stedet for at fortsætte. Den er ikke tilgængelig på genanvendelig sekvens. Generators. handicappet
Tracniveau Mængden af ​​detaljer, der skrives til sessionsloggen: Kortfattet, Normal, Udførlig initialisering eller Udførlige data. Normal

Sådan bruger du sekvens Generator Transformation i Informatica

I dette eksempel genererer vi sekvensnumre og gemmer dem i målet. Arbejd dig gennem de otte trin nedenfor i kortetping Designer.

Trin 1) Opret en måltabel med følgende script.

Download ovenstående emp_sequence.sql-fil

Trin 2) Importer tabellen i Informatica som måltabel.

Trin 3) Opret et nyt kortping og importer EMP-kilden og EMP_SEQUENCE-måltabellen. Begge definitioner er nu placeret på lærredet, som vist nedenfor.

Kortping Designer med EMP-kilden og EMP_SEQUENCE-måldefinitionen importeret

Trin 4) Opret en ny transformation på kortetping

  1. Vælg sekvenstransformation som type
  2. Indtast transformationsnavnet "seq_emp"
  3. Vælg Opret mulighed

Opret transformationsvindue med sekvens Generator valgt og navnet seq_emp indtastet

Trin 5) Sequence Generator Når transformationen oprettes, skal du vælge "udført". seq_emp-objektet vises nu på lærredet med dets to porte.

Sequence Generator transformation seq_emp oprettet på kortetping canvas

Trin 6) Link NEXTVAL-kolonnen i sekvensen Generator til SNO-kolonnen i målet.

NEXTVAL-porten for seq_emp er knyttet til SNO-kolonnen i EMP_SEQUENCE-målet

Trin 7) Forbind de andre kolonner fra kildekvalifikator transformation til måltabellen.

Resterende kildekvalifikatorkolonner, der er linket til EMP_SEQUENCE-måltabellen

Trin 8) Double klik på sekvensen Generator for at åbne egenskabsvinduet, og derefter

  1. Vælg fanen Egenskaber
  2. Indtast egenskaberne med Startværdi =1, lad resten egenskaber være standard
  3. Vælg knappen OK

Fanen Egenskaber for sekvensen Generator transformation med startværdien sat til 1

Gem nu kortetping og udføre den efter oprettelsen af Session og workflow.

Sno-kolonnen i målet ville indeholde de sekvensnumre, der genereres af sekvensen. Generator transformation.

I vores eksempel vil sekvenserne være som 1 – Scott, 2 – King, 3 – Adam, 4 – Miller osv.

Genanvendelig og ikke-genanvendelig sekvens Generators

Transformationen, der er bygget ovenfor, lever inde i ét kortpingHvis du opretter den i Transformation Developer, bliver den i stedet genbrugelig, og de to opfører sig forskelligt, når der er involveret mere end én session.

Punkt af sammenligning Kan ikke genbruges Genanvendelig
Hvor den er skabt Inde i et enkelt kortping, på kortetping Designer I Transformation Developer, derefter tilføjet til et hvilket som helst antal kortpings
Antal cachelagrede værdier Standardværdien er 0, så værdier reserveres ikke på forhånd Standardindstillingen er 1000, så hver session reserverer sin egen blok af tal
Nulstil egenskab Tilgængelig, og genstarter sekvensen fra den oprindelige aktuelle værdi Ikke tilgængelig, da genstart ville udlevere numre, som en anden session allerede er i brug
Typisk brug Én målnøglekolonne i ét kortping En delt surrogatnøgle på tværs af flere kortpingindlæser den samme dimension

Caching er det, der holder samtidige sessioner adskilt. Hver session tager en blok af tal foran, hvilket betyder, at tallene forbliver unikke, men ikke sammenhængende: alle værdier, der ikke bruges, når en session slutter, kasseres, og den næste blok starter efter dem.

Regler og begrænsninger for sekvens Generator Transformation

Nogle af disse dukker først op efter kortetping har kørt, så de er billigere at kende, før portene er linket.

  • Portene er faste. NEXTVAL og CURRVAL kan ikke redigeres eller slettes, og der kan ikke tilføjes yderligere porte til transformationen.
  • CURRRVAL returnerer i sig selv en konstant. Forbind kun CURRVAL, når NEXTVAL også er forbundet downstream, ellers modtager hver række den samme værdi.
  • To mål lades efter hinanden. Når NEXTVAL føder to måltabeller, indlæses det første mål med sine tal, før det andet mål starter, så de to sæt ikke flettes sammen.
  • Huller er normale. Cachelagrede værdier, som en session ikke bruger, returneres aldrig, så en mislykket eller kort session efterlader huller i sekvensen. Design nøglekolonnen til at tolerere huller.
  • Cyklus kan oprette dubletter. Når slutværdien er nået med Cyklus aktiveret, genstartes nummereringen ved startværdien, som vil kollidere med eksisterende taster, medmindre målet tillader det.

Fordi den aldrig læser en række, tilføjer transformationen næsten intet til sessionskørselstiden, hvilket er grunden til, at den sjældent optræder som en flaskehals under præstationsindstillingHvor en nøgle skal afhænge af selve dataene snarere end af en tæller, en aggregator or Snedker transformation er objektet, der udfører det arbejde, ikke denne.

Ofte Stillede Spørgsmål

En surrogatnøgle er et meningsløst tal, der identificerer en lagerrække i stedet for kildesystemets identifikator. Den forbliver stabil, når kilden ændrer sine koder, og en genereret sekvens er den enkleste måde at producere en på.

Fordi nummereringen så findes på kortetping snarere end i én database. Flade filer og andre ikke-relationelle mål får nøgler på samme måde, og det samme genanvendelige objekt kan nummerere flere mål uden et databaseobjekt pr. tabel.

Slutværdien accepterer op til 9,223,372,036,854,775,807, det største fortegnsbestemte 64-bit heltal. Hvis den nås, stoppes sessionen med en overløbsfejl, medmindre Cyklus er aktiveret, i hvilket tilfælde nummereringen genstartes fra startværdien.

Ja. NEXTVAL forbinder til enhver downstream-transformation, oftest et udtryk, der opbygger en sammensat nøgle, eller et opslag, der kontrollerer, om en nøgle allerede findes. Det genererede tal bevæger sig derefter videre med rækken.

Ja, men tjek først målet. Redigering af startværdi eller nuværende værdi på en aktiv nøglekolonne kan udlevere tal, som målet allerede indeholder, så hæv værdien over den højeste nøgle i stedet for at sænke den.

Knap. Den læser ingen rækker og bygger ingen cachefiler, så prisen er en tælleropdatering pr. række. Store belastninger begrænses af læseren og forfatteren længe før nummereringen bliver et problem.

AI-profiler scanner kildekolonner for at foreslå, hvilken kombination der er virkelig unik, markerer kandidatnøgler med nuller eller dubletter og registrerer afvigelser mellem indlæsninger. Maskinlæringsbaseret matchning forbinder også poster, der beskriver den samme enhed under forskellige identifikatorer.

Copilot skriver det tilsvarende SQL sekvens- eller identitetsdefinition og afstemningsforespørgslerne, der beviser, at ingen nøgle blev duplikeret. Den kan ikke se dine lagerværdier, så verificer den aktuelle værdi i selve transformationen før en indlæsning.

Opsummer dette indlæg med: