Uppslagstransformation i Informatica (exempel)

⚡ Smart sammanfattning

En uppslagstransformation i Informatica läser en relationstabell, flat file, vy eller synonym och returnerar matchande värden för varje inkommande rad, och fungerar som en koppling där ena sidan är uppslagskällan.

  • 🔎 Villkoren styr matchen: Fliken Villkor innehåller jämförelsen, till exempel AVD.NR = AVD.NR1, som avgör vilken uppslagsrad som returneras.
  • 🧪 Utarbetat exempel: Sju kartaping Designersteg hämtar avdelningsnamn från DEPT till ett EMP_DEPTNAME-mål utan en Joiner.
  • 🔌 Ansluten eller inte ansluten: En ansluten sökning finns i pipelinen, medan en oansluten anropas från ett uttryck med kvalificeraren :LKP.
  • ⚖️ Passiv som standard: Om en enskild rad returneras hålls transformationen passiv, och om alla matchande rader returneras görs den aktiv.
  • ♻️ Återanvändbara föremål: Markera Gör återanvändbar förvandlar en transformation till ett objekt flera kartorpings kan dela.
  • ⚠️ Enkelriktad kampanj: En transformation som befordrats till återanvändbar kan inte degraderas, så bekräftelseprompten förtjänar att läsas noggrant.

Uppslagstransformation i Informatica

Vad är Lookup Transformation?

En uppslagstransformation är en transformation som används för att söka upp en källa, källkvalificerare eller mål för att få relevant data. I grund och botten är det en typ av kopplingsoperation där en av de kopplingstabellerna är källdata och den andra kopplingstabellen är uppslagstabellen. Själva uppslagskällan kan vara en relationstabell, en vy, en synonym eller en platt fil.

Transformationen är passiv och returnerar en enda rad för varje inkommande rad. Från och med PowerCenter 9.x kan den också skapas för att returnera varje rad som matchar villkoret, och i det läget är det en aktiv transformation. Valet görs när transformationen skapas och kan inte ändras efteråt.

Det finns två sätt att placera den på en kartaping, och skillnaden avgör hur det returnerade värdet når resten av pipelinen.

Aspect Ansluten sökning Okopplad sökning
Placera Sitter inuti pipelinen och tar emot värden från den föregående transformationen Sitter utanför pipelinen och anropas från ett uttryck
Hur det kallas Rader flödar in i dess inmatningsportar Anropad med referenskvalificeraren :LKP
Returnerade värden Flera utgångsportar kan kopplas nedströms Ett returvärde går tillbaka till det anropande uttrycket
Typisk användning Varje rad behöver de uppslagna kolumnerna Uppslaget behövs bara för vissa rader, eller så anropas samma uppslag från flera ställen

I tidigare ämnen använde vi Snickarförvandling för att sammanfoga tabellerna "emp" och "dept" för att hämta avdelningsnamn. I det här avsnittet kommer vi att implementera samma sak med hjälp av Lookup-transformationen.

Hur man skapar uppslagstransformation

Följande är stegen för att skapa en Lookup-transformation i Informatica.

Steg 1) Skapa en ny kartaping med EMP som källa och EMP_DEPTNAME som mål. Kartanping Designer-arbetsplatsen innehåller sedan källan, dess källkvalificerare och måldefinitionen.

Kartaping Designer-arbetsyta med EMP-källan, dess källkvalificerare och EMP_DEPTNAME-målet

Steg 2) Skapa en ny transformation med hjälp av menyn Transformation och gör sedan följande i fönstret Skapa transformation:

  1. Välj Söktransformation som transformation
  2. Ange transformationsnamnet "lkp_dept"
  3. Välj skapa alternativ

Skapa transformationsfönster med söktransformation vald och namnet lkp_dept angivet

Steg 3) Detta öppnar fönstret för uppslagstabellen. I det här fönstret:

  1. Knappen Välj källa
  2. Välj DEPT-tabell
  3. Välj OK-knappen

Välj dialogrutan Söktabell med knappen Källa vald och tabellen AVD markerad

Steg 4) En söktransformation kommer att skapas med kolumnerna i tabellen DEPT, välj nu knappen "Klar". Objektet lkp_dept bär nu DEPTNO, DNAME och LOC som sökportar.

Uppslagstransformationen lkp_dept skapad med DEPT-tabellkolumnerna som uppslagsportar

Steg 5) Dra och släpp kolumnen DEPTNO från källkvalificeraren till söktransformationen. Detta skapar en ny kolumn DEPTNO1 i söktransformationen. Länka sedan DNAME-kolumnen från söktransformationen till måltabellen.

Lookup-transformationen söker upp och returnerar avdelningsnamn baserat på värdet DEPTNO1. DEPTNO1 är indataporten som bär den anställdas avdelningsnummer, medan DEPTNO förblir den port som läses från DEPT-sökningstabellen.

DEPTNO länkad från källkvalificeraren till lkp_dept och DNAME länkad till EMP_DEPTNAME-målet

Steg 6) Double Klicka på söktransformationen. Gör sedan följande i redigeringsfönstret för transformationen:

  1. Välj fliken villkor
  2. Ställ in villkorskolumnen till DEPTNO = DEPTNO1
  3. Välj OK-knappen

Fliken Villkor i fönstret Redigera transformationer med villkoret AVD.NR = AVD.NR1 angivet

Steg 7) Länka resten av kolumnerna från källkvalificeraren till måltabellen.

Återstående källkvalificerare-kolumner länkade till måltabellen EMP_DEPTNAME

Spara nu kartaping och kör den efter att sessionen och arbetsflödet har skapats. Denna kartaping hämtar avdelningsnamnen med hjälp av söktransformationen.

Lookup-transformationen är inställd på att söka upp i DEPT-tabellen, och kopplingsvillkoret ställs in baserat på avdelningsnummer. Om mer än en DEPT-rad kan uppfylla villkoret, avgör egenskapen Lookup Policy on Multiple Match på fliken Egenskaper vilket värde som returneras.

Återanvändbar transformation

En normaltransformation är ett objekt som tillhör en kartaping och kan användas inuti den kartanping endast. Genom att göra en transformation återanvändbar kan den dock återanvändas inom flera kartorpings.

Till exempel kan en Lookup-transformation som hämtar medarbetaruppgifter baserat på medarbetarnummer användas i flera kartor.pingöverallt där anställningsuppgifter krävs.

Genom att använda en återanvändbar transformation minskar det överarbetet med att skapa samma funktionalitet igen.ping innehåller en instans av det enda lagrade objektet, så en ändring som görs i den återanvändbara transformationen når dem alla.

Hur man skapar återanvändbar transformation

Följande är stegen för att skapa en återanvändbar transformation.

Steg 1) Öppna kartanping som genomgår förvandlingen, här gör vi Rangomvandling återanvändbar.

Kartaping öppnades i Designern med Rank-transformationen som snart ska återanvändas

Steg 2) Double Klicka på transformationen för att öppna fönstret för redigering av transformationen. Gör sedan följande:

  1. Välj fliken Transformation i fönstret
  2. Markera kryssrutan för att göra transformationen återanvändbar
  3. Välj Ja i bekräftelsefönstret
  4. Välj OK i fönstret för transformationsegenskaper.

Fliken Transformation i fönstret Redigera transformationer med kryssrutan Gör återanvändbar markerad

Detta gör transformationen återanvändbar. Bekräftelsefönstret i det tredje alternativet är värt att läsa innan det accepteras: att flytta en transformation till återanvändbar är en envägsändring i Designern, och objektet kan inte degraderas efteråt. Där en enskild kartaping behöver en egen kopia, dra det återanvändbara objektet till arbetsytan medan du håller ned Ctrl-tangenten för att skapa en icke-återanvändbar instans istället.

Vanliga frågor

En cache laddar sökkällan i minnet en gång så att varje rad matchas lokalt istället för att fråga databasen. Cachning passar små eller upprepade gånger lästa sökkällor; en icke-cacherad sökfrågar källan för varje inkommande rad.

Använd en uppslagning när ena sidan är en liten referenstabell och bara ett fåtal kolumner behövs, särskilt när samma referens läses från flera ställen. En koppling passar en genuin koppling av två stora heterogena pipelines.

Uppslagspolicyn för flera matchningar avgör. Den kan rapportera ett fel eller returnera det första, sista eller valfritt matchande värdet. Om du väljer att returnera alla matchande värden görs transformationen aktiv och måste ställas in vid skapandet.

Vanligtvis för att sökkällan är stor. En icke-cachad sökfråga frågar databasen en gång per rad, medan en cachad sökfråga betalar byggkostnaden i förskott. Att ta bort oanvända sökportar och begränsa sökfrågan hjälper båda.

Maskininlärning används i moderna dataintegrationsverktyg för att föreslå kolumnmatchningar mellan en käll- och en referenstabell och för att flagga sökningar som dominerar sessionskörningen. Varje förslag behöver fortfarande kontrolleras mot verkliga data.

Copilot hjälper till med texten runt kartanping snarare än Designer-arbetsytan: sök efter SQL-overrides, parameterfiler och skript som kör arbetsflöden. Den kan inte se databasen, så portnamn och villkor måste verifieras manuellt.

En återanvändbar transformation är ett enda lagrat objekt som delas av flera kartorpings. En mapplet är en återanvändbar uppsättning transformationer, med in- och utdatagrupper, som paketerar en hel logik snarare än ett steg.

Ingen rad i sökkällan uppfyllde villkoret för dessa inmatningsrader. Kontrollera om det finns mellanslag, skillnader mellan gemener och versaler och datatypsavvikelser mellan de två portarna, eftersom jämförelsen är exakt.

Sammanfatta detta inlägg med: