Jada Generator Transformatsioon informaatikas

⚡ Nutikas kokkuvõte

Jada Generator Informatica teisendus on passiivne, ühendatud objekt, mis genereerib asendus- ja primaarvõtme veergude jaoks numbrilisi järjestusi, edastades igale reale väärtuse kahe fikseeritud väljundpordi NEXTVAL ja CURRVAL kaudu.

  • 🔢 Kaks fikseeritud porti: NEXTVAL kannab genereeritud numbreid ja CURRVAL tagastab NEXTVAL pluss suurendamise väärtuse.
  • ⚙️ Neli põhiomadust: Algusväärtus, juurdekasv (Increment by), lõppväärtus (Lõpp) ja tsükkel (Cycle) määravad iga loodud jada kuju.
  • 🧪 Töötatud näide: Kaheksa kaartiping Kujundaja etapid laadivad genereeritud numbrid EMP_SEQUENCE sihtmärgi SNO veergu.
  • ♻️ Korduvkasutatav variant: Korduvkasutatav järjestus Generator jagab mitu kaartipings ja vahemällu salvestab vaikimisi 1,000 väärtust.
  • 🔒 Pordid on fikseeritud: Porte ei saa lisada, muuta ega kustutada, seega kogu käitumist saab juhtida vahekaardilt „Atribuudid”.
  • 🗝️ Asendusvõtmed: Lao dimensioonitabelid kasutavad lähtekoodisüsteemi loomulike võtmete asemel genereeritud võtmeid.

Jada Generator Transformatsioon informaatikas

Mis on järjestus Generator Transformatsioon?

Jada Generator Teisendus on passiivne, seega see ei mõjuta sisendridade arvu. Generator kasutatakse primaarvõtme väärtuste genereerimiseks ja seda kasutatakse numbriliste järjestusväärtuste (nt 1, 2, 3, 4, 5 jne) genereerimiseks.

Näiteks kui soovite lähtekirjetele järjendiväärtusi määrata, saate kasutada funktsiooni Järjestus. GeneratorGenereeritud järjestusväärtused võivad olla näiteks 5, 10, 15, 20, 25 jne või 10, 20, 30, 40, 50 jne, olenevalt teisenduse konfigureeritud omadustest.

Erinevalt enamikust teisendustest pole sellel üldse sisendporte. See ei loe sissetulevaid ridu, vaid annab järgmise numbri edasi pordile, millega see on ühendatud, mistõttu on see ohutu paigutada mis tahes torujuhtme kõrvale. kaartping.

Pordid järjestuses Generator Transformation

Jada Generator on kaks väljundporti

  • KURVUS
  • JÄRGMINE

Pordi CURRVAL väärtus on alati NEXTVAL pluss suurendamise (Increment By) väärtus, seega loetakse see ainult NEXTVAL+1-ks, samas kui suurendamise (Increment By) väärtus on jäetud vaikeväärtusele 1.

Järjekorranumbrite genereerimiseks kasutame alati veergu NEXTVAL. Allolev tabel võtab kokku kahe pordi käitumise.

port Mida see tagastab Millal seda ühendada
JÄRGMINE Iga torujuhtmest läbiva rea ​​järgmine number järjestuses. Peaaegu alati. See on port, mis annab sihtkohale võtmeveeru.
KURVUS NEXTVAL pluss suurendamise ühiku väärtus. Ainult koos NEXTVAL-iga. Eraldi ühendatuna edastab see iga rea ​​jaoks sama konstantse väärtuse.

Kumbagi porti ei saa ümber nimetada ega eemaldada ning kolmandat porti ei saa lisada, seega tehakse iga genereeritud numbrite muudatus vahekaardil Atribuudid, mitte portides.

Järjestuse omadused Generator Transformation

  • Algväärtus – see on esimene väärtus, mille teisendus genereerib, vaikeväärtus on 0.
  • Suurenda – see on arv, mille võrra soovite väärtusi suurendada. Vaikeväärtus on 1.
  • Lõppväärtus – see on maksimaalne väärtus, mille teisendus peaks genereerima.
  • Tsükkel – kui see suvand on määratud, algab teisendus pärast väärtuse lõppu jõudmist algusväärtusest.

Samal vahekaardil kuvatakse veel kolm sätet, mis hakkavad kehtima kohe, kui teisendust jagatakse või seanssi uuesti käivitatakse.

vara Mida see kontrollib vaikimisi
Praegune väärtus Väärtus, millest järgmine seanss algab. Integratsiooniteenus uuendab seda repositooriumis ridade genereerimisel. 1
Vahemällu salvestatud väärtuste arv Mitu väärtust korraga mälus reserveeritakse, et samaaegsed seansid ei väljastaks kunagi sama arvu kaks korda. 0 mittekorduvkasutatavate, 1000 korduvkasutatavate puhul
lähtestama Alustab iga seanssi algsest praegusest väärtusest jätkamise asemel. See pole korduvkasutatava järjestuses saadaval. Generators. invaliidistunud
Tracing Level Seansi logisse kirjutatavate üksikasjade hulk: lühike, tavaline, üksikasjalik initsialiseerimine või üksikasjalikud andmed. normaalne

Kuidas kasutada järjestust Generator Transformatsioon informaatikas

Selles näites genereerime järjekorranumbrid ja salvestame need sihtkohta. Töötage kaardi abil läbi allolevad kaheksa sammu.ping Disainer.

Step 1) Looge sihttabel järgmise skriptiga.

Laadige alla ülaltoodud fail emp_sequence.sql

Step 2) Impordi tabel Informaticasse sihttabelina.

Step 3) Looge uus kaartping ja impordi EMP allika ja EMP_SEQUENCE sihttabel. Mõlemad definitsioonid asuvad nüüd lõuendil, nagu allpool näidatud.

kaartping Kujundaja, kelle EMP-allikas ja EMP_SEQUENCE-i sihtmärgi definitsioon on imporditud

Step 4) Loo kaardil uus teisendusping

  1. Valige tüübiks jada teisendus
  2. Sisestage teisenduse nimi "seq_emp"
  3. Valige suvand Loo

Loo teisendusaken järjestusega Generator valitud ja nimi seq_emp sisestatud

Step 5) Jada Generator Teisendus luuakse, valige suvand „Valmis“. Lõuendile ilmub nüüd objekt seq_emp koos oma kahe pordiga.

Jada Generator kaardil loodud teisendus seq_empping lõuend

Step 6) Sequence'i NEXTVAL-veergu lingimine Generator sihtkoha SNO veergu.

Seq_emp NEXTVAL port on lingitud EMP_SEQUENCE sihtmärgi SNO veeruga

Step 7) Ühenda teised veerud allikast allika täpsustaja teisendus sihttabeliks.

EMP_SEQUENCE sihttabeliga lingitud ülejäänud allika täpsustusveerud

Step 8) Double klõpsa järjestuse nupul Generator kinnisvaraakna avamiseks ja seejärel

  1. Valige vahekaart Atribuudid
  2. Sisesta atribuudid Algväärtusega =1, ülejäänud atribuudid jäta vaikeväärtusteks
  3. Valige nupp OK

Järjestuse omaduste vahekaart Generator teisendus algväärtusega 1

Nüüd salvesta kaartping ja käivitage see pärast loomist istung ja töövoog.

Sihtkoha sno veerg sisaldaks Sequence'i loodud järjekorranumbreid. Generator ümberkujundamist.

Meie näites on järjestused sellised: 1 – Scott, 2 – King, 3 – Adam, 4 – Miller jne.

Korduvkasutatav ja mittekorduvkasutatav järjestus Generators

Ülaltoodud transformatsioon asub ühe kaardi seespingSelle loomine Transformation Developeris muudab selle taaskasutatavaks ja need kaks käituvad erinevalt, kui kaasatud on rohkem kui üks seanss.

Võrdluspunkt Ühekordselt kasutatav Korduvalt kasutatav
Kus see luuakse Ühe kaardi seesping, kaardilping Disainer Seejärel lisatakse transformatsiooniarendajasse mis tahes arvule kaartidelepings
Vahemällu salvestatud väärtuste arv Vaikimisi on see 0, seega väärtusi ette ei reserveerita Vaikimisi on see 1000, seega reserveerib iga seanss oma numbriploki
Lähtesta vara Saadaval ja taaskäivitab jada algsest praegusest väärtusest. Pole saadaval, sest taaskäivitamine annaks numbrid välja teise juba kasutusel oleva seansi alusel
Tüüpiline kasutamine Üks sihtvõtme veerg ühel kaardilping Jagatud asendusvõti mitmel kaardilpinglaadib sama mõõtme

Vahemällu salvestamine hoiab samaaegsed seansid lahus. Iga seanss võtab ette numbriploki, mis tähendab, et numbrid jäävad unikaalseks, kuid ei jää külgnevateks: kõik seansi lõppedes kasutamata jäänud väärtused visatakse ära ja järgmine plokk algab pärast neid.

Järjestuse reeglid ja piirangud Generator Transformation

Mõned neist ilmuvad pinnale alles pärast kaardi ilmumistping on käivitunud, seega on neid odavam teada enne portide ühendamist.

  • Pordid on fikseeritud. NEXTVAL ja CURRVAL ei ole muudetavad ega kustutatavad ning teisendusele ei saa rohkem porte lisada.
  • Funktsioon CURRVAL tagastab iseenesest konstandi. Ühenda CURRVAL ainult siis, kui NEXTVAL on ühendatud ka allavoolu, vastasel juhul saab iga rida sama väärtuse.
  • Kaks sihtmärki laaditakse üksteise järel. Kui NEXTVAL toidab kahte sihttabelit, laaditakse esimene sihtmärk oma numbritega enne teise sihtmärgi käivitamist, seega kaks komplekti ei põimu.
  • Lüngad on normaalsed. Vahemällu salvestatud väärtusi, mida seanss ei kasuta, ei tagastata kunagi, seega ebaõnnestunud või lühike seanss jätab järjestusse lüngad. Kujundage võtmeveerg nii, et see taluks lünki.
  • Tsükkel võib luua duplikaate. Kui tsükkel on lubatud ja lõppväärtus on saavutatud, algab nummerdamine algväärtusest uuesti, mis põrkub olemasolevate võtmetega, kui sihtmärk seda ei luba.

Kuna see ei loe kunagi rida, ei lisa teisendus seansi käitusajale peaaegu midagi, mistõttu see esineb seansi ajal harva pudelikaelana. jõudluse häälestamineKui võti peab tuginema andmetele endile, mitte loendurile, siis Agregaator or Tisleri ümberkujundamine kas objekt teeb seda tööd, mitte see.

KKK

Asendusvõti on tähenduseta number, mis identifitseerib lao rea, mitte allikasüsteemi identifikaatorit. See jääb stabiilseks, kui allikas oma koode muudab, ja genereeritud jada on lihtsaim viis selle loomiseks.

Sest numeratsioon elab siis kaardilping mitte ühes andmebaasis. Lamefailid ja muud mitterelatsioonilised sihtmärgid saavad võtmed samamoodi ning sama korduvkasutatav objekt saab nummerdada mitu sihtmärki ilma eraldi andmebaasiobjektita tabeli kohta.

Lõppväärtus aktsepteerib kuni 9 223 372 036 854 775 807, mis on suurim märgiga 64-bitine täisarv. Selleni jõudmine peatab seansi ületäitumisveaga, välja arvatud juhul, kui tsükkel on lubatud, sellisel juhul algab nummerdamine algusväärtusest uuesti.

Jah. NEXTVAL loob ühenduse mis tahes järgneva teisendusega, enamasti avaldisega, mis loob liitvõtme, või otsinguga, mis kontrollib, kas võti on juba olemas. Genereeritud number liigub seejärel reaga edasi.

Jah, aga kontrollige esmalt sihtmärki. Algväärtuse või praeguse väärtuse muutmine reaalajas võtme veerus võib anda tulemuseks numbreid, mida sihtmärk juba sisaldab, seega tõstke väärtust kõrgeima võtme kohal, mitte langetage seda.

Vaevalt. See ei loe ridu ega loo vahemälufaile, seega on selle maksumus loenduri uuendus rea kohta. Suured koormused piiratakse lugeja ja kirjutaja poolt juba ammu enne, kui nummerdamine probleemiks muutub.

Tehisintellekti profiilijad skannivad allika veerge, et soovitada, milline kombinatsioon on tõeliselt unikaalne, märgistavad kandidaatvõtmed nullide või duplikaatidega ja tuvastavad laadimiste vahelist triivi. Masinõppel põhinev sobitamine seob ka kirjeid, mis kirjeldavad sama üksust erinevate identifikaatorite all.

Copilot kirjutab samaväärse teksti SQL järjestuse või identiteedi määratlus ja vastavuspäringud, mis tõestavad, et ühtegi võtit ei dubleeritud. See ei näe teie hoidla väärtusi, seega kontrollige enne laadimist transformatsioonis endas praegust väärtust.

Võta see postitus kokku järgmiselt: