Volgorde Generator Transformatie in de informatica

⚡ Slimme samenvatting

Volgorde Generator In Informatica is een transformatie een passief, verbonden object dat numerieke reeksen genereert voor surrogaat- en primaire sleutelkolommen, waarbij elke rij een waarde krijgt via twee vaste uitvoerpoorten genaamd NEXTVAL en CURRVAL.

  • 🔢 Twee vaste poorten: NEXTVAL bevat de gegenereerde getallen en CURRVAL retourneert NEXTVAL plus de waarde van Increment By.
  • ⚙️ Vier kerneigenschappen: De startwaarde, de verhogingsfactor, de eindwaarde en de cyclus bepalen de vorm van elke gegenereerde reeks.
  • 🧪 Uitgewerkt voorbeeld: Acht Kaartping De ontwerpstappen laden de gegenereerde getallen in de SNO-kolom van een EMP_SEQUENCE-doel.
  • ♻️ Herbruikbare optie: Een herbruikbare reeks Generator wordt gedeeld door verschillende kaartenpings en cachet standaard 1,000 waarden.
  • 🔒 De poorten zijn vast: Poorten kunnen niet worden toegevoegd, bewerkt of verwijderd, dus al het gedrag wordt beheerd via het tabblad Eigenschappen.
  • ​ Surrogaatsleutels: De dimensietabellen van het datawarehouse gebruiken gegenereerde sleutels in plaats van de natuurlijke sleutels uit het bronsysteem.

Volgorde Generator Transformatie in de informatica

Wat is volgorde Generator Transformatie?

Volgorde Generator De transformatie is passief, dus heeft deze geen invloed op het aantal invoerrijen. De reeks Generator Het wordt gebruikt om primaire sleutelwaarden te genereren, en het wordt gebruikt om numerieke reeksen te genereren zoals 1, 2, 3, 4, 5 enzovoort.

Als u bijvoorbeeld volgwaarden aan de bronrecords wilt toewijzen, kunt u de functie Volgorde gebruiken. GeneratorDe gegenereerde reekswaarden kunnen bijvoorbeeld 5, 10, 15, 20, 25 enzovoort zijn, of 10, 20, 30, 40, 50 enzovoort, afhankelijk van de geconfigureerde eigenschappen van de transformatie.

In tegenstelling tot de meeste transformaties heeft deze helemaal geen invoerpoorten. Hij leest de binnenkomende rijen niet, maar geeft simpelweg het volgende getal door aan de poort waarmee hij is verbonden. Daarom kan hij veilig naast elke pijplijn in een pipeline worden geplaatst. kaartping.

Poorten in een bepaalde volgorde Generator Transformatie

Volgorde Generator heeft twee uitgangspoorten

  • CURVAL
  • VOLGENDEVAL

De waarde van de CURRVAL-poort is altijd NEXTVAL plus de waarde van Increment By, dus deze wordt alleen gelezen als NEXTVAL+1, terwijl Increment By op de standaardwaarde van 1 blijft staan.

Om de volgnummers te genereren, gebruiken we altijd de kolom NEXTVAL. De onderstaande tabel vat samen hoe de twee poorten zich gedragen.

Haven Wat het oplevert Wanneer moet je het aansluiten?
VOLGENDEVAL Het volgende nummer in de reeks voor elke rij die door de pijplijn gaat. Vrijwel altijd. Dit is de poort die een belangrijke kolom in het doel voedt.
CURVAL NEXTVAL plus de waarde van Increment By. Alleen in combinatie met NEXTVAL. Als deze functie zelfstandig wordt gebruikt, geeft hij voor elke rij dezelfde constante waarde door.

Geen van beide poorten kan worden hernoemd of verwijderd, en er kan geen derde poort worden toegevoegd. Daarom worden alle wijzigingen aan de gegenereerde nummers doorgevoerd op het tabblad Eigenschappen en niet op de poorten zelf.

Eigenschappen van reeks Generator Transformatie

  • Startwaarde – Het is de eerste waarde die door de transformatie wordt gegenereerd, de standaardwaarde is 0.
  • Verhogen met – Dit is het getal waarmee u de waarden wilt verhogen. De standaardwaarde is 1.
  • Eindwaarde – Het is de maximale waarde die de transformatie moet genereren.
  • Cyclus – als deze optie is ingesteld, begint de transformatie na het bereiken van het einde van de waarde opnieuw vanaf de startwaarde.

Op hetzelfde tabblad verschijnen nog drie andere instellingen die van belang zijn zodra de transformatie wordt gedeeld of een sessie opnieuw wordt uitgevoerd.

Eigendom Wat het controleert Standaard
huidige waarde De waarde waarmee de volgende sessie wordt uitgevoerd. De integratieservice werkt deze waarde in de repository bij naarmate er rijen worden gegenereerd. 1
Aantal opgeslagen waarden Hoeveel waarden worden er tegelijkertijd in het geheugen gereserveerd, zodat gelijktijdige sessies nooit twee keer hetzelfde getal uitgeven? 0 voor niet-herbruikbaar, 1000 voor herbruikbaar
Reset Start elke sessie vanaf de oorspronkelijke huidige waarde in plaats van verder te gaan. Deze functie is niet beschikbaar voor herbruikbare Sequences. Generators. invalide
Tracing Niveau Hoeveelheid details die in het sessielogboek worden vastgelegd: Beknopt, Normaal, Uitgebreide initialisatie of Uitgebreide gegevens. Normaal

Hoe gebruik je een reeks? Generator Transformatie in de informatica

In dit voorbeeld genereren we volgnummers en slaan we deze op in het doel. Doorloop de acht onderstaande stappen in de Map.ping Ontwerper.

Stap 1) Maak een doeltabel met het volgende script.

Download het bovenstaande emp_sequence.sql-bestand

Stap 2) Importeer de tabel in Informatica als doeltabel.

Stap 3) Maak een nieuwe kaartping en importeer de EMP-brontabel en de EMP_SEQUENCE-doeltabel. Beide definities staan ​​nu op het canvas, zoals hieronder weergegeven.

Wereldmapping Ontwerper met de EMP-bron en de EMP_SEQUENCE-doeldefinitie geïmporteerd

Stap 4) Maak een nieuwe transformatie aan in de kaart.ping

  1. Selecteer reekstransformatie als type
  2. Voer de transformatienaam “seq_emp” in
  3. Selecteer de optie Maken

Maak een transformatievenster met een reeks. Generator geselecteerd en de naam seq_emp ingevoerd

Stap 5) Volgorde Generator De transformatie wordt aangemaakt, selecteer de optie 'Gereed'. Het object seq_emp verschijnt nu op het canvas met zijn twee poorten.

Volgorde Generator transformatie seq_emp aangemaakt op de kaartping canvas

Stap 6) Koppel de NEXTVAL-kolom van Sequence. Generator naar de SNO-kolom in het doel.

De NEXTVAL-poort van seq_emp is gekoppeld aan de SNO-kolom van het EMP_SEQUENCE-doel.

Stap 7) Koppel de andere kolommen vanuit bronkwalificatie transformatie naar de doeltabel.

De resterende Source Qualifier-kolommen zijn gekoppeld aan de doeltabel EMP_SEQUENCE.

Stap 8) Double klik op de reeks Generator om het eigenschappenvenster te openen, en dan

  1. Selecteer het tabblad Eigenschappen
  2. Voer de eigenschappen in met Startwaarde =1, laat de resteigenschappen standaard staan
  3. Selecteer de OK-knop

tabblad Eigenschappen van de reeks Generator transformatie waarbij de startwaarde is ingesteld op 1

Sla de kaart nu op.ping en voer het uit na het aanmaken van de sessie en workflow.

De kolom 'sno' in het doelbestand zou de volgnummers bevatten die door de Sequence zijn gegenereerd. Generator transformatie.

In ons voorbeeld zullen de reeksen er als volgt uitzien: 1 – Scott, 2 – King, 3 – Adam, 4 – Miller, enzovoort.

Herbruikbare en niet-herbruikbare volgorde Generators

De hierboven beschreven transformatie bevindt zich binnen één kaart.pingDoor het in de Transformation Developer te creëren, wordt het herbruikbaar, en de twee gedragen zich anders wanneer er meer dan één sessie bij betrokken is.

Punt van vergelijking Niet herbruikbaar Herbruikbare
Waar het wordt gecreëerd Binnen één enkele kaartping, op de kaartping Designer In de Transformation Developer kan dit vervolgens aan een willekeurig aantal kaarten worden toegevoegd.pings
Aantal opgeslagen waarden De standaardwaarde is 0, dus er worden geen waarden vooraf gereserveerd. Standaard is dit 1000, dus elke sessie reserveert zijn eigen blok getallen.
Eigenschap resetten Beschikbaar, en start de reeks opnieuw vanaf de oorspronkelijke huidige waarde. Niet beschikbaar, omdat bij een herstart nummers zouden worden toegewezen die al door een andere sessie zijn gebruikt.
Typisch gebruik Eén doelsleutelkolom in één kaartping Een gedeelde surrogaatsleutel voor meerdere kaartenpings laadt dezelfde dimensie

Caching zorgt ervoor dat gelijktijdige sessies gescheiden blijven. Elke sessie neemt vooraf een blok getallen in beslag, wat betekent dat de getallen uniek blijven, maar niet aaneengesloten: alle waarden die ongebruikt blijven wanneer een sessie eindigt, worden verwijderd en het volgende blok begint daarna.

Regels en beperkingen van de volgorde Generator Transformatie

Sommige hiervan komen pas aan het licht na het bekijken van de kaart.ping Het is al een tijdje geleden dat ze zijn gestart, dus het is goedkoper om ze te kennen voordat de havens zijn aangesloten.

  • De poorten zijn vast. NEXTVAL en CURRVAL kunnen niet worden bewerkt of verwijderd, en er kunnen geen verdere poorten aan de transformatie worden toegevoegd.
  • CURRVAL retourneert op zichzelf een constante waarde. Verbind CURRVAL alleen wanneer NEXTVAL ook stroomafwaarts is verbonden, anders krijgt elke rij dezelfde waarde.
  • Twee doelen worden na elkaar geladen. Wanneer NEXTVAL twee doeltabellen vult, wordt de eerste doeltabel met zijn getallen geladen voordat de tweede doeltabel begint, zodat de twee sets niet door elkaar lopen.
  • Spleten zijn normaal. Waarden die in de cache zijn opgeslagen en die tijdens een sessie niet worden gebruikt, worden nooit teruggegeven. Een mislukte of korte sessie laat dus gaten in de reeks achter. Ontwerp de sleutelkolom zo dat deze gaten kan worden getolereerd.
  • Cycle kan duplicaten aanmaken. Zodra de eindwaarde is bereikt met Cycle ingeschakeld, begint de nummering opnieuw bij de startwaarde, wat zal botsen met bestaande sleutels, tenzij het doel dit toestaat.

Omdat de transformatie nooit een rij leest, voegt deze vrijwel niets toe aan de sessieduur, waardoor deze zelden een knelpunt vormt. prestatieafstemmingWanneer een sleutel afhankelijk moet zijn van de gegevens zelf in plaats van van een teller, dan is een Aggregator or Transformatie van schrijnwerkers Het is het object dat dat werk doet, niet dit object.

Veelgestelde vragen

Een surrogaatsleutel is een betekenisloos nummer dat een rij in het datawarehouse identificeert in plaats van de identificatiecode van het bronsysteem. Deze sleutel blijft stabiel wanneer de bron zijn codes wijzigt, en een gegenereerde reeks is de eenvoudigste manier om er een te maken.

Omdat de nummering dan in de kaart wordt opgenomen.ping In plaats van in één database. Platte bestanden en andere niet-relationele doelen krijgen sleutels op dezelfde manier, en hetzelfde herbruikbare object kan meerdere doelen nummeren zonder dat er per tabel een databaseobject nodig is.

De eindwaarde accepteert maximaal 9,223,372,036,854,775,807, het grootste ondertekende 64-bits gehele getal. Het bereiken van deze waarde stopt de sessie met een overloopfout, tenzij 'Cycle' is ingeschakeld, in welk geval de nummering opnieuw begint bij de startwaarde.

Ja. NEXTVAL maakt verbinding met elke daaropvolgende transformatie, meestal een expressie die een samengestelde sleutel genereert of een opzoekfunctie die controleert of een sleutel al bestaat. Het gegenereerde nummer wordt vervolgens met de rij meegevoerd.

Ja, maar controleer eerst de doelwaarde. Het bewerken van de startwaarde of de huidige waarde in een actieve sleutelkolom kan getallen opleveren die de doelwaarde al bevat. Verhoog de waarde daarom boven de hoogste sleutelwaarde in plaats van deze te verlagen.

Nauwelijks. Het leest geen rijen en bouwt geen cachebestanden op, dus de kosten bestaan ​​uit een tellerupdate per rij. Grote hoeveelheden gegevens worden beperkt door de lezer en de schrijver, lang voordat de nummering een probleem wordt.

AI-profilers scannen bronkolommen om te suggereren welke combinatie werkelijk uniek is, markeren kandidaatsleutels met null-waarden of duplicaten en detecteren afwijkingen tussen laadprocessen. Op machine learning gebaseerde matching koppelt ook records die dezelfde entiteit beschrijven onder verschillende identificatoren.

Copilot schrijft het equivalent. SQL Definitie van volgorde of identiteit en de reconciliatiequery's die bewijzen dat er geen sleutel is gedupliceerd. Het systeem kan uw repositorywaarden niet zien, dus controleer de huidige waarde in de transformatie zelf vóór het laden.

Vat dit bericht samen met: