Joiner Transformation i Informatica med EKSEMPEL

โšก Smart opsummering

En joiner-transformation i Informatica er det aktive, forbundne objekt, der forbinder to heterogene kilder under en matchende betingelse og cacher master-pipelinen i hukommelsen, mens detaljepipelinen streamer gennem den.

  • ๐Ÿงฉ Master og detaljer: To input-pipelines fรธder transformationen, og fanen Porte bestemmer, hvilken en der fungerer som master.
  • ๐Ÿ’พ Masteren er cachelagret: Master-pipelinen er altid indbygget i et indeks og en datacache, sรฅ den mindre kilde hรธrer hjemme der.
  • ๐Ÿ”— Fire sammenfรธjningstyper: Normal, Master Outer, Detail Outer og Full Outer bestemmer, hvilke ikke-matchede rรฆkker der overlever sammenkoblingen.
  • ๐Ÿงช Udarbejdet eksempel: EMP og DEPT joines pรฅ deptno med en normal join og indlรฆses i EMP_DEPTNAME.
  • โš–๏ธ Kun ligestilling: En join-betingelse sammenligner porte med equals-operatoren, og begge porte skal dele รฉn datatype.
  • โšก Sorteret input: Forsortering af begge pipelines pรฅ betingelsesportene afbryder diskinput og -output under sessionen.

Joiner Transformation i Informatica

Hvad er Joiner Transformation?

Joiner-transformation er en aktiv og forbundet transformation, der giver dig mulighed for at oprette joins i Informatica. Joins oprettet ved hjรฆlp af Joiner-transformation ligner joins i databaser. Fordelen ved Joiner-transformation er, at joins kan oprettes til heterogene systemer (forskellige databaser).

I Joiner-transformationen er der to kilder, som vi skal bruge til joins. Disse to kilder kaldes

  • Mesterkilde
  • Detaljekilde

I egenskaberne for Joiner-transformationen kan du vรฆlge, hvilken datakilde der kan vรฆre master, og hvilken kilde der kan vรฆre detaljekilden.

Under udfรธrelsen caches masterkilden i hukommelsen med henblik pรฅ joining. Det anbefales derfor at vรฆlge kilden med fรฆrre poster som masterkilde. Masterpipelinen opbevares i to caches: en indekscache til de vรฆrdier, der bruges i join-betingelsen, og en datacache til resten af โ€‹โ€‹rรฆkkedataene.

Typer af joins i Joiner-transformation

Egenskaben Join Type pรฅ fanen Egenskaber bestemmer, hvad der sker med rรฆkker, der ikke finder noget match. Fรธlgende joins kan oprettes ved hjรฆlp af Joiner-transformation.

  1. Master ydre samling โ€“ I en master outer join returneres alle poster fra detaljekilden af โ€‹โ€‹join'et, og kun matchende rรฆkker fra masterkilden returneres.
  2. Detalje ydre sammenfรธjning โ€“ I en detalje-outer join returneres kun matchende rรฆkker fra detaljekilden, og alle rรฆkker fra masterkilden returneres.
  3. Fuld ydre samling โ€“ I en fuld outer join returneres alle poster fra begge kilder.
  4. Normal tilslutning โ€“ I en normal join returneres kun matchende rรฆkker fra begge kilder.

Master ydre og detaljerede ydre joinforbindelser svarer til venstre ydre joinforbindelser i SQL: hver enkelt beholder hver rรฆkke fra den ene kilde og kun matchene fra den anden. Tabellen nedenfor sรฆtter de fire typer op mod deres SQL-รฆkvivalenter.

Deltag type Rรฆkker gemt fra master Rรฆkker holdes vรฆk fra detaljer SQL-รฆkvivalent
Normal tilslutning Kun matchende Kun matchende Indvendig sammenfรธjning
Master ydre samling Kun matchende Alle rรฆkker Venstre ydre join pรฅ detaljekilden
Detalje ydre sammenfรธjning Alle rรฆkker Kun matchende Venstre ydre join pรฅ masterkilden
Fuld ydre samling Alle rรฆkker Alle rรฆkker Fuld ydre samling

Join-typen er en egenskab, ikke et strukturelt valg, sรฅ den kan รฆndres senere uden at genopbygge kortetping eller gentilslutning af porte.

Sรฅdan bruger du Joiner-transformation i Informatica

I dette eksempel vil vi forbinde emp- og dept-tabellerne ved hjรฆlp af Joiner-transformationen. Arbejd dig igennem de otte trin nedenfor i kortet.ping Designer.

Trin 1) Opret en ny mรฅltabel EMP_DEPTNAME i databasen ved hjรฆlp af scriptet nedenfor, og importer tabellen i Informatica-mรฅlene.

Download ovenstรฅende emp_deptname.sql-fil

Trin 2) Opret en ny kortping og importer kildetabellerne โ€œEMPโ€ og โ€œDEPTโ€ og mรฅltabellen, som vi oprettede i det forrige trin. Alle tre definitioner er nu placeret pรฅ lรฆrredet, som vist nedenfor.

Kortping Designer-lรฆrred med EMP- og DEPT-kilderne og EMP_DEPTNAME-mรฅldefinitionen

Trin 3) Fra menuen Transformation skal du vรฆlge indstillingen Opret. I vinduet Opret transformation, der er vist nedenfor,

  1. Vรฆlg snedker transformation
  2. Indtast transformationsnavnet "jnr_emp_dept"
  3. Vรฆlg oprettelsesmulighed

Opret transformationsvindue med Joiner valgt og navnet jnr_emp_dept indtastet

Trin 4) Trรฆk og slip alle kolonnerne fra begge Kildekvalifikatorer til Joiner-transformationen. Begge pipelines er nu linket til jnr_emp_dept, som skรฆrmbilledet viser.

Kolonner fra begge kildekvalifikatorer trukket ind i jnr_emp_dept Joiner-transformationen

Trin 5) Double Klik pรฅ Joiner-transformationen, og klik derefter i vinduet Rediger transformationer

  1. Vรฆlg fanen betingelse
  2. Klik pรฅ ikonet tilfรธj ny tilstand
  3. Vรฆlg deptno i master- og detaljekolonnerlisten

Fanen Betingelse indeholder nu betingelsen for enkelttilslutning pรฅ afd.nr.

Fanen Betingelse for Joiner-transformationen med deptnr. valgt i master- og detaljekolonnerne

Trin 6) Sรฅ i samme vindue

  1. Vรฆlg fanen Egenskaber
  2. Vรฆlg Normal tilslutning som tilslutningstype
  3. Vรฆlg OK-knappen

Fanen Egenskaber med den indstillede jointype vises derefter.

Fanen Egenskaber for Joiner-transformationen med jointypen indstillet til Normal Join

For at optimere ydeevnen tildeler vi masterkilden til kildetabellens pipeline, som har fรฆrre poster. Sรฅdan udfรธrer du denne opgave:

Trin 7) Double Klik pรฅ Joiner-transformationen for at รฅbne vinduet Rediger transformationer, og klik derefter

  1. Vรฆlg fanen porte
  2. Vรฆlg en hvilken som helst kolonne i en bestemt kilde, som du vil gรธre til en master
  3. Vรฆlg OK

Fanen Porte markerer den valgte pipeline som master, som vist nedenfor.

Fanen Porte i Joiner-transformationen med masterflaget sat mod รฉn kildepipeline

Trin 8) Link de relevante kolonner fra Joiner-transformationen til mรฅltabellen. Kortetping kรธrer nu fra begge kilder gennem join'et til EMP_DEPTNAME.

Sammenfรธjede kolonner linket fra jnr_emp_dept til EMP_DEPTNAME-mรฅltabellen

Gem nu kortetping og udfรธre den efter at have oprettet en Session og workflow for det. Join'en oprettes ved hjรฆlp af Informatica Joiner, og relevante detaljer hentes fra begge tabeller.

Egenskaber for Joiner-transformation

Fanen Egenskaber indeholder mere end selve jointypen. Indstillingerne nedenfor styrer, hvor meget hukommelse joinen bruger, og hvor cachefilerne skrives hen.

Lokal omrรฅde Hvad den kontrollerer
Deltag Type Normal, Master Ydre, Detaljeret Ydre eller Fuld Ydre. Bestemmer, hvilke ikke-matchede rรฆkker der bevares.
Tilslutningsbetingelse Listen over master-til-detalje-portpar sammenlignet med equals-operatoren. Flere betingelser kombineres med AND.
Sorteret input Erklรฆrer, at begge pipelines allerede ankommer sorteret efter betingelsesportene, hvilket gรธr det muligt for integrationstjenesten at minimere diskinput og -output.
Master sorteringsrรฆkkefรธlge Sorteringsrรฆkkefรธlgen for masterkildedataene, brugt sammen med sorteret input.
Cache-mappe Mappe hvor indeks- og datacachefilerne oprettes. Standardvรฆrdien er procesvariablen $PMCacheDir.
Stรธrrelse pรฅ Joiner-datacache Stรธrrelsen pรฅ den datacache, der indeholder masterrรฆkkedataene. Standardindstillingen er Auto, hvilket giver integrationstjenesten mulighed for at dimensionere den.
Stรธrrelse pรฅ Joiner-indekscache Stรธrrelsen pรฅ indekscachen, der indeholder hovedbetingelsesvรฆrdierne. Standardindstillingen er Auto.
Transformationsomfang Anvender joinforbindelsen pรฅ hver transaktion, pรฅ alle indgรฅende data eller pรฅ et rรฆkkeniveau.

Sorteret input er den indstilling, der er vรฆrd at bruge fรธrst. Nรฅr begge pipelines ankommer sorteret efter betingelsesportene, behรธver integrationstjenesten ikke at holde hele masterkilden, fรธr matchningen begynder, hvilket er det samme princip, der anvendes under prรฆstationsindstilling af andre cachelagrede transformationer.

Regler og begrรฆnsninger for Joiner-transformation

Nogle restriktioner dukker fรธrst op, nรฅr kortetping er valideret, sรฅ det er billigere at kende dem, fรธr portene linkes.

  • Kun lighed. En join-betingelse sammenligner porte med equals-operatoren. Sammenligningsoperatorer som f.eks. stรธrre end, mindre end eller ikke lig med accepteres ikke i betingelsen.
  • Matchende datatyper. Begge porte i en betingelse skal have den samme datatype. Designeren validerer dette, sรฅ uoverensstemmende kolonner skal fรธrst konverteres, normalt i en udtrykstransformation.
  • Ingen opdateringsstrategi upstream. En Joiner-transformation kan ikke bruges, nรฅr en af โ€‹โ€‹inputpipelinerne indeholder en Update Strategy-transformation.
  • Ingen sekvens Generator direkte fรธr den. Forbindelse af en sekvens Generator Transformation umiddelbart opstrรธms for Joineren understรธttes ikke.
  • Caching kan ikke slรฅs fra. Master-pipelinen caches altid, hvilket er grunden til, at den mindre kilde hรธrer hjemme pรฅ master-siden, og hvorfor cache-stรธrrelsen er vigtig ved store joins.

At forbinde tre kilder krรฆver to Joiner-transformationer, der er kรฆdet sammen, fordi hver enkelt accepterer prรฆcis รฉn master- og รฉn detaljepipeline. Hvor den anden kilde i stedet er en lille referencetabel, der lรฆses rรฆkke for rรฆkke, Opslagstransformation er ofte det enklere design.

Ofte Stillede Spรธrgsmรฅl

To. Hver joiner accepterer รฉn master- og รฉn detailpipeline, sรฅ at forbinde tre kilder betyder at kรฆde to af dem sammen: outputtet fra den fรธrste bliver en inputpipeline for den anden. Generelt skal n kilder bruge n minus รฉn.

Nรฅr begge tabeller findes i den samme relationsdatabase. Kildekvalifikatoren skubber den pรฅgรฆldende join ned til databasen, hvilket fuldstรฆndigt undgรฅr cachelagring. Brug kun Joiner, nรฅr de to kilder er heterogene eller allerede er i separate pipelines.

Indekscachen gemmer de masterportvรฆrdier, der er navngivet i join-betingelsen, og datacachen gemmer de resterende masterrรฆkkedata, der returneres af join'et. Begge er kun bygget ud fra master-pipelinen, aldrig fra detaljepipelinen.

Nej. En nullvรฆrdi i en af โ€‹โ€‹portene fรฅr betingelsen til at fejle, prรฆcis som den gรธr i SQL, sรฅ disse rรฆkker behandles som uoverensstemmende. Erstat nullvรฆrdier med en standardvรฆrdi upstream, nรฅr de skal joines.

Ja. Tilfรธj kildedefinitionen til kortetping to gange, sรฅ der er to separate pipelines, og fรธd derefter รฉn til mastersiden og รฉn til detaljesiden. Dette er den sรฆdvanlige mรฅde at omdanne en lederkolonne tilbage til et medarbejdernavn.

Ja, og det heterogene tilfรฆlde er hovedรฅrsagen til, at transformationen eksisterer. En flad filpipeline og en relationel pipeline join-er pรฅ matchende porte, ligesom to databasetabeller ville gรธre, fordi join-funktionen sker inde i integrationstjenesten.

AI-assistenter profilerer begge kilder for at foreslรฅ potentielle join-nรธgler, estimere rรฆkkeantal, sรฅ den mindste side vรฆlges som master, og markere skรฆve kolonner eller kolonner med et hรธjt nul-tal, der ville oplรธse resultatsรฆttet. Maskinlรฆringsbaserede rรฅdgivere rangerer ogsรฅ muligheder for cachestรธrrelse.

Copilot udarbejder hurtigt den tilsvarende SQL og datatypekonverteringerne, hvilket forkorter arbejdet med at forberede porte. Den kan ikke se dine cachestรธrrelser eller rรฆkkeantal, sรฅ verificรฉr alle forslag mod kortet.ping fรธr du gemmer den.

Opsummer dette indlรฆg med: