Oppslagstransformasjon i Informatica (eksempel)

⚡ Smart oppsummering

Oppslagstransformasjonen i Informatica leser en relasjonstabell, flat fil, visning eller synonym og returnerer de samsvarende verdiene for hver innkommende rad, og fungerer som en sammenføyning der den ene siden er oppslagskilden.

  • 🔎 Betingelsene styrer kampen: Fanen Betingelse inneholder sammenligningen, for eksempel AVD.NR = AVD.NR1, som avgjør hvilken oppslagsrad som returneres.
  • 🧪 Utarbeidet eksempel: Syv kartping Designertrinn henter avdelingsnavn fra DEPT til et EMP_DEPTNAME-mål uten en Joiner.
  • 🔌 Tilkoblet eller ikke tilkoblet: Et tilkoblet oppslag ligger i prosessen, mens et ikke-tilkoblet oppslag kalles fra et uttrykk med :LKP-kvalifikatoren.
  • 🇧🇷 Passiv som standard: Å returnere en enkelt rad holder transformasjonen passiv, og å returnere alle samsvarende rader gjør den aktiv.
  • ♻️ Gjenbrukbare gjenstander: Avkryssing av Gjør gjenbrukbar gjør én transformasjon til et objekt flere kartpings kan dele.
  • ⚠️ Enveiskampanje: En transformasjon som er forfremmet til gjenbrukbar kan ikke degraderes, så bekreftelsesspørsmålet fortjener å leses nøye.

Oppslagstransformasjon i Informatica

Hva er oppslagstransformasjon?

En oppslagstransformasjon er en transformasjon som brukes til å slå opp en kilde, kildekvalifikator eller mål for å få relevante data. I bunn og grunn er det en slags sammenføyningsoperasjon der en av sammenføyningstabellene er kildedataene, og den andre sammenføyningstabellen er oppslagstabellen. Selve oppslagskilden kan være en relasjonstabell, en visning, et synonym eller en flat fil.

Transformasjonen er passiv, mens den returnerer én rad for hver innkommende rad. Fra PowerCenter 9.x og utover kan den også opprettes for å returnere hver rad som samsvarer med betingelsen, og i den modusen er det en aktiv transformasjon. Valget tas når transformasjonen opprettes og kan ikke endres etterpå.

Det er to måter å plassere det på et kartping, og differansen bestemmer hvordan den returnerte verdien når resten av pipelinen.

Aspekt Tilkoblet oppslag Ukoblet oppslag
Stilling Ligger inne i pipelinen og mottar verdier fra den forrige transformasjonen Sitter utenfor pipelinen og kalles fra et uttrykk
Hvordan det kalles Rader flyter inn i inngangsportene Kalt med :LKP-referansekvalifikatoren
Verdier returnert Flere utgangsporter kan kobles nedstrøms Én returverdi går tilbake til det kallende uttrykket
Typisk bruk Hver rad trenger de oppslåtte kolonnene Oppslaget er bare nødvendig for noen rader, eller det samme oppslaget kalles fra flere steder

I tidligere emner brukte vi Snekker transformasjon for å koble sammen tabellene «emp» og «dept» for å hente avdelingsnavn. I denne delen skal vi implementere det samme ved hjelp av oppslagstransformasjon.

Hvordan lage oppslagstransformasjon

Følgende er trinnene for å opprette en oppslagstransformasjon i Informatica.

Trinn 1) Lag et nytt kartping med EMP som kilde og EMP_DEPTNAME som mål. Kartetping Designer-lerretet inneholder deretter kilden, kildekvalifikatoren og måldefinisjonen.

kartping Designer-lerret med EMP-kilden, dens kildekvalifikator og EMP_DEPTNAME-målet

Trinn 2) Opprett en ny transformasjon ved hjelp av Transformasjon-menyen, og gjør deretter følgende i Opprett transformasjon-vinduet:

  1. Velg Oppslagstransformasjon som transformasjon
  2. Skriv inn transformasjonsnavnet "lkp_dept"
  3. Velg opprettingsalternativ

Opprett transformasjonsvindu med oppslagstransformasjon valgt og navnet lkp_dept skrevet inn

Trinn 3) Dette åpner oppslagstabellvinduet. I dette vinduet:

  1. Velg kilde-knapp
  2. Velg DEPT-tabell
  3. Velg OK-knappen

Velg dialogboksen Oppslagstabell med Kilde-knappen valgt og AVDELINGSTABELLEN uthevet

Trinn 4) Oppslagstransformasjonen vil bli opprettet med kolonnene i DEPT-tabellen. Klikk nå på fullført-knappen. lkp_dept-objektet har nå DEPTNO, DNAME og LOC som oppslagsporter.

Oppslagstransformasjonen lkp_dept opprettet med DEPT-tabellkolonnene som oppslagsporter

Trinn 5) Dra og slipp DEPTNO-kolonnen fra kildekvalifikatoren til oppslagstransformasjonen. Dette vil opprette en ny kolonne DEPTNO1 i oppslagstransformasjonen. Koble deretter DNAME-kolonnen fra oppslagstransformasjonen til måltabellen.

Oppslagstransformasjonen vil slå opp og returnere avdelingsnavn basert på DEPTNO1-verdien. DEPTNO1 er inngangsporten som bærer den ansattes avdelingsnummer, mens DEPTNO forblir porten som leses fra DEPT-oppslagstabellen.

DEPTNO lenket fra kildekvalifikatoren til lkp_dept og DNAME lenket til EMP_DEPTNAME-målet

Trinn 6) Double Klikk på oppslagstransformasjonen. Deretter i redigeringsvinduet for transformasjon:

  1. Velg tilstandsfanen
  2. Sett betingelseskolonnen til DEPTNO = DEPTNO1
  3. Velg OK-knappen

Betingelsesfanen i vinduet Rediger transformasjoner med betingelsen AVD.NR = AVD.NR1 angitt

Trinn 7) Koble resten av kolonnene fra kildekvalifikatoren til måltabellen.

Gjenværende kildekvalifikatorkolonner koblet til EMP_DEPTNAME-måltabellen

Lagre nå kartping og utfør den etter at økten og arbeidsflyten er opprettet. Dette kartetping vil hente avdelingsnavnene ved hjelp av oppslagstransformasjonen.

Oppslagstransformasjonen er satt til å slå opp i DEPT-tabellen, og sammenføyningsbetingelsen er satt basert på avdelingsnummer. Hvis mer enn én DEPT-rad kan oppfylle betingelsen, bestemmer egenskapen Oppslagspolicy for flere treff i Egenskaper-fanen hvilken verdi som returneres.

Gjenbrukbar transformasjon

En normal transformasjon er et objekt som tilhører et kartping og kan brukes inne i kartetping bare. Ved å gjøre en transformasjon gjenbrukbar kan den imidlertid brukes på nytt i flere kartpings.

For eksempel kan en oppslagstransformasjon som henter ansattdetaljer basert på ansattnummer brukes i flere kartpingder ansattdetaljer er påkrevd.

Ved å bruke en gjenbrukbar transformasjon reduseres overarbeidet med å opprette den samme funksjonaliteten på nytt. Hvert kartping inneholder en forekomst av det ene lagrede objektet, slik at en endring gjort i den gjenbrukbare transformasjonen når alle dem.

Hvordan lage gjenbrukbar transformasjon

Følgende er trinnene for å opprette en gjenbrukbar transformasjon.

Trinn 1) Åpne kartetping som har transformasjonen, her lager vi Rangtransformasjon gjenbrukbare.

kartping åpnet i Designer med Rank-transformasjonen som er i ferd med å bli gjenbrukbar

Trinn 2) Double Klikk på transformasjonen for å åpne vinduet for redigering av transformasjon. Deretter:

  1. Velg kategorien Transformasjon i vinduet
  2. Merk av i boksen for å gjøre transformasjon gjenbrukbar
  3. Velg ja i bekreftelsesvinduet
  4. Velg OK i vinduet for transformasjonsegenskaper.

Transformasjonsfanen i vinduet Rediger transformasjoner med avmerkingsboksen Gjør gjenbrukbar valgt

Dette vil gjøre transformasjonen gjenbrukbar. Bekreftelsesvinduet i det tredje elementet er verdt å lese før det godtas: å forfremme en transformasjon til gjenbrukbar er en enveis endring i Designer, og objektet kan ikke degraderes etterpå. Der et enkelt kartping trenger sin egen kopi, drar du det gjenbrukbare objektet over på lerretet mens du holder Ctrl-tasten nede for å opprette en ikke-gjenbrukbar instans i stedet.

Spørsmål og svar

En mellomlagring laster oppslagskilden inn i minnet én gang, slik at hver rad matches lokalt i stedet for å spørre databasen. Mellomlagring passer for små eller gjentatte ganger leste oppslagskilder, mens et ikke-mellomlagret oppslag spør kilden for hver innkommende rad.

Bruk et oppslag når den ene siden er en liten referansetabell og bare noen få kolonner er nødvendig, spesielt når den samme referansen leses fra flere steder. En joiner passer til en ekte join av to store heterogene pipelines.

Oppslagspolicyen for flere samsvarsverdier avgjør dette. Den kan rapportere en feil, eller returnere den første, siste eller en hvilken som helst samsvarende verdi. Hvis du velger å returnere alle samsvarende verdier, blir transformasjonen aktiv og må angis ved opprettelse.

Vanligvis fordi oppslagskilden er stor. Et ikke-bufret oppslag spør databasen én gang per rad, mens et bufret oppslag betaler byggekostnaden på forhånd. Både fjerning av ubrukte oppslagsporter og innsnevring av oppslagsspørringen hjelper.

Maskinlæring brukes i moderne dataintegrasjonsverktøy for å foreslå kolonnesamsvar mellom en kilde og en referansetabell, og for å flagge oppslag som dominerer øktkjøretiden. Alle forslag må fortsatt sjekkes mot de faktiske dataene.

Copilot hjelper til med teksten rundt kartetping i stedet for Designer-lerretet: oppslag av SQL-overstyringer, parameterfiler og skript som kjører arbeidsflyter. Den kan ikke se depotet, så portnavn og betingelser må bekreftes manuelt.

En gjenbrukbar transformasjon er et enkelt lagret objekt som deles av flere kartpings. En mapplet er et gjenbrukbart sett med transformasjoner, med input- og output-grupper, som pakker en hel logikk i stedet for ett trinn.

Ingen rad i oppslagskilden oppfylte betingelsen for disse inputradene. Sjekk for etterfølgende mellomrom, forskjeller mellom store og små bokstaver og avvik i datatyper mellom de to portene, siden sammenligningen er nøyaktig.

Oppsummer dette innlegget med: