Joiner Transformasjon i Informatica med EKSEMPEL
⚡ Smart oppsummering
Joiner-transformasjon i Informatica er det aktive, tilkoblede objektet som kobler sammen to heterogene kilder under samsvarende betingelser, og mellomlagrer hovedpipelinen i minnet mens detaljpipelinen strømmer gjennom den.
Hva er Joiner Transformation?
Joiner-transformasjon er en aktiv og tilkoblet transformasjon som gir deg muligheten til å opprette koblinger i Informatica. Sammenkoblingene som opprettes ved hjelp av Joiner-transformasjon ligner på sammenkoblinger i databaser. Fordelen med Joiner-transformasjon er at sammenkoblinger kan opprettes for heterogene systemer (forskjellige databaser).
I Joiner-transformasjonen er det to kilder vi skal bruke for joins. Disse to kildene kalles
- Mesterkilde
- Detaljkilde
I egenskapene til Joiner-transformasjonen kan du velge hvilken datakilde som kan være master og hvilken kilde som kan være detaljkilde.
Under utførelse blir hovedkilden mellomlagret i minnet for sammenføyningsformål. Det anbefales derfor å velge kilden med færre poster som hovedkilde. Hovedpipelinen lagres i to mellomlagre: en indeksbuffer for verdiene som brukes i sammenføyningsbetingelsen og en databuffer for resten av raddataene.
Typer av sammenføyninger i Joiner-transformasjon
Egenskapen Sammenføyningstype i fanen Egenskaper bestemmer hva som skjer med rader som ikke finner treff. Følgende sammenføyninger kan opprettes ved hjelp av Sammenføyningstransformasjon.
- Master ytre skjøt – I en master ytre kobling returneres alle poster fra detaljkilden av koblingen, og bare samsvarende rader fra masterkilden returneres.
- Detalj ytre skjøt – I en detaljert ytre kobling returneres bare samsvarende rader fra detaljkilden, og alle rader fra hovedkilden returneres.
- Full ytre skjøt – I en fullstendig ytre sammenkobling returneres alle poster fra begge kildene.
- Vanlig sammenføyning – I en vanlig sammenføyning returneres bare samsvarende rader fra begge kildene.
Hoved- og detalj-ytterkoblinger er ekvivalente med venstre-ytterkoblinger i SQLHver av dem beholder hver rad fra én kilde og bare treffene fra den andre. Tabellen nedenfor setter de fire typene opp mot deres SQL-ekvivalenter.
| Bli med type | Rader beholdt fra master | Rader holdt fra detaljer | SQL-ekvivalent |
|---|---|---|---|
| Vanlig sammenføyning | Kun samsvarende | Kun samsvarende | Indre bli med |
| Master ytre skjøt | Kun samsvarende | Alle rader | Venstre ytre kobling på detaljkilden |
| Detalj ytre skjøt | Alle rader | Kun samsvarende | Venstre ytre kobling på hovedkilden |
| Full ytre skjøt | Alle rader | Alle rader | Full ytre skjøt |
Sammenføyningstypen er en egenskap, ikke et strukturelt valg, så den kan endres senere uten å bygge opp kartet på nytt.ping eller koble til porter på nytt.
Slik bruker du Joiner-transformasjon i Informatica
I dette eksemplet skal vi koble sammen emp- og dept-tabellene ved hjelp av Joiner-transformasjon. Arbeid deg gjennom de åtte trinnene nedenfor i kartet.ping Designer.
Trinn 1) Opprett en ny måltabell EMP_DEPTNAME i databasen ved hjelp av skriptet nedenfor, og importer tabellen til Informatica-mål.
Last ned emp_deptname.sql-filen ovenfor
Trinn 2) Lage en ny kartping og importer kildetabellene «EMP» og «DEPT» og måltabellen som vi opprettet i forrige trinn. Alle tre definisjonene ligger nå på lerretet, som vist nedenfor.
Trinn 3) Fra Transformasjon-menyen velger du alternativet Opprett. Deretter i vinduet Opprett transformasjon som vises nedenfor,
- Velg snekkertransformasjon
- Skriv inn transformasjonsnavnet "jnr_emp_dept"
- Velg opprettingsalternativ
Trinn 4) Dra og slipp alle kolonnene fra begge Kildekvalifikatorer til Joiner-transformasjonen. Begge pipelinene er nå koblet til jnr_emp_dept, som skjermbildet viser.
Trinn 5) Double klikk på Joiner-transformasjonen, og deretter i vinduet Rediger transformasjoner
- Velg tilstandsfanen
- Klikk på legg til ny tilstand-ikon
- Velg deptno i hoved- og detaljkolonnelisten
Betingelse-fanen inneholder nå betingelsen for enkeltsammenføyning på deptno.
Trinn 6) Så i samme vindu
- Velg egenskapsfanen
- Velg Normal sammenføyning som sammenføyningstype
- Velg OK-knappen
Egenskaper-fanen med den angitte sammenføyningstypen vises deretter.
For ytelsesoptimalisering tilordner vi hovedkilden til kildetabellens pipeline, som har færre poster. Slik utfører du denne oppgaven:
Trinn 7) Double klikk på Joiner-transformasjonen for å åpne vinduet Rediger transformasjoner, og klikk deretter
- Velg kategorien porter
- Velg hvilken som helst kolonne i en bestemt kilde som du vil gjøre til en master
- Velg OK
Porter-fanen markerer den valgte pipelinen som master, som vist nedenfor.
Trinn 8) Koble de relevante kolonnene fra Joiner-transformasjonen til måltabellen. Kartetping kjører nå fra begge kildene gjennom sammenføyningen til EMP_DEPTNAME.
Lagre kartet nåping og utfør den etter å ha opprettet en Session og arbeidsflyt for den. Sammenføyningen vil bli opprettet ved hjelp av Informatica Joiner, og relevante detaljer vil bli hentet fra begge tabellene.
Egenskaper for joiner-transformasjon
Egenskaper-fanen inneholder mer enn bare sammenføyningstypen. Innstillingene nedenfor kontrollerer hvor mye minne sammenføyningen bruker og hvor hurtigbufferfilene skrives.
| Stille | Hva den kontrollerer |
|---|---|
| Bli med Type | Normal, Hoved-ytre, Detalj-ytre eller Fullstendig ytre. Bestemmer hvilke ikke-samsvarende rader som beholdes. |
| Bli med-betingelse | Listen over master-til-detalj-portpar sammenlignet med likhetsoperatoren. Flere betingelser kombineres med AND. |
| Sortert inndata | Erklærer at begge pipelines allerede ankommer sortert etter betingelsesportene, noe som lar integrasjonstjenesten minimere diskinndata og -utdata. |
| Hovedsorteringsrekkefølge | Sorteringsrekkefølgen for hovedkildedataene, brukt sammen med sortert inndata. |
| Hurtigbufferkatalog | Katalogen der indeks- og databufferfilene opprettes. Standardverdien er prosessvariabelen $PMCacheDir. |
| Størrelse på hurtigbuffer for joinerdata | Størrelsen på databufferen som inneholder hovedraddataene. Standardinnstillingen er Auto, som lar integrasjonstjenesten angi størrelsen på den. |
| Størrelse på hurtigbuffer for joinerindeks | Størrelsen på indeksbufferen som inneholder hovedbetingelsesverdiene. Standardinnstillingen er Auto. |
| Transformasjonsomfang | Bruker sammenføyningen på hver transaksjon, på alle innkommende data eller på et omfang på radnivå. |
Sortert input er innstillingen det er verdt å se etter først. Når begge pipelines ankommer ordnet etter betingelsesportene, trenger ikke integrasjonstjenesten å holde hele masterkilden før matchingen begynner, som er det samme prinsippet som brukes under ytelsesjustering av andre hurtigbufrede transformasjoner.
Regler og begrensninger for Joiner-transformasjon
Noen restriksjoner dukker bare opp når kartetping er validert, så det er billigere å kjenne dem før portene kobles sammen.
- Kun likestilling. En sammenføyningsbetingelse sammenligner porter med likhetsoperatoren. Sammenligningsoperatorer som større enn, mindre enn eller ikke lik godtas ikke i betingelsen.
- Samsvarende datatyper. Begge portene i en betingelse må ha samme datatype. Designeren validerer dette, så kolonner som ikke samsvarer må konverteres først, vanligvis i en uttrykkstransformasjon.
- Ingen oppdateringsstrategi oppstrøms. En Joiner-transformasjon kan ikke brukes når en av inndatapipelinene inneholder en Update Strategy-transformasjon.
- Ingen sekvens Generator rett før den. Koble til en sekvens Generator Transformasjon rett oppstrøms for Joiner støttes ikke.
- Caching kan ikke slås av. Hovedpipelinen er alltid mellomlagret, og det er derfor den mindre kilden hører hjemme på hovedsiden, og hvorfor mellomlagsstørrelsen er viktig på store koblinger.
Å koble sammen tre kilder krever to Joiner-transformasjoner kjedet sammen, fordi hver av dem aksepterer nøyaktig én hoved- og én detaljpipeline. Der den andre kilden er en liten referansetabell som leses rad for rad i stedet, en Oppslagstransformasjon er ofte den enklere designen.








