You are on page 1of 12

Re: What is a diff between joiner and lookup transformation

Answer Joiner will join the two 2 Chandra


# 1 different data sources
based on a
join condition ,and pass
only the rows which
satisfy that
condition.discards the
remaining rows.

Joiner transformation
supports 4 types of joins
at
Informatica level
Normal
Master Outer
Detail Outer
Full Outer

LookUp Transformation

Lookup transformation
basically for
Reference,based on the
lookup condition.when u
want some data based on
target
data ,will take lookup on
that particular table and
retrieve the
corresponding fields from
that table.
we can override the
lookup transformation
using the SQL
query.

Is This Answer 28 Yes


Correct ? 7 No

Re: What is a diff between joiner and lookup transformation


Answer In joiner we can join two 0 Gopal
# 2 heterogeneous sources for
entire
records based on a
condition.

But in look up only the


first value or last value
of the
records will be passed
if more records matched
with that
condition. So only one
value will be returned to
the
transformation.
EX:
in source : No Name
1 -
Look up table: No Name
1 A
1 B
1 C

Now we can return only A


or C in look up.
If we need entire values
we must go for joiner.
Take that
look up table as source
and use joiner. No
alternative
solution.

Is This Answer 24 Yes


Correct ? 7 No
Re: What is a diff between joiner and lookup transformation
Answer Joiner transformation: 0 Shiva
#3
it has its own cache.

look up transformation:

it maintains its own


cache

Is This Answer 12 Yes


Correct ? 6 No

Re: What is a diff between joiner and lookup transformation


Answer joiner is active 0 Amit
# 4 transformation & lookup
is passive
transformation

Is This Answer 48 Yes


Correct ? 5 No

Re: What is a diff between joiner and lookup transformation


Answer If you are not a 0 Guest
# 5 performance geek,
somewhat basic things
you can do with both
joiner and lookup t/f.
However Joiner
operates on sources where
as lookup operates source
as well
as target. there are
other things can also be
identified as
limitation of working
with heterogenious
sources in both
the case.(can lookup work
on xml file?)
Is This Answer
Correct ? 4 Yes 7 No

Re: What is a diff between joiner and lookup transformation


Answer joiner doesnt support 0 Kalpana
# 6 nonequi joins where as
lookup support
nonequijoin

Is This Answer 24 Yes


Correct ? 4 No

Re: What is a diff between joiner and lookup transformation


Answer hi, everyone. 0 Bsgsr
# 7 lookup is passive whereas
is joiner is active.
look up supports non equi
joins ilso whereas joiner
supports only equi joins.
lookup joins on either on
first value or last
value.
lookup uses dynamic and
static cache where as a
joiner
doesnt
reach me on
bsrinivas1213@gmail.com

Is This Answer 12 Yes


Correct ? 3 No

Re: What is a diff between joiner and lookup transformation


Answer joiner transformation 0 Jayash
# 8 does not match for null
values where
as lookup transformation
matches for null values
joiner transformation
supports only equality
operator in
condition of join where
as lookup transformation
can support
<=,>=,=,!= in the lookup
condition

Is This Answer 23 Yes


Correct ? 3 No

Re: What is a diff between joiner and lookup transformation


Answer Hi everybody, 0 Mythili
#9 Joiner is active
transformation whereas
lookup is passive
transformation.
Joiner returns only
matching records whereas
lookup
returns null if there is
no match.
In join condition we can
give only '=' operator
but in
lookup condition !=,>=,<=
are all possible.
Joiner will do left
outer,right
outer,normal,full outer
type of joins whereas
lookup will do only left
outer join.

Is This Answer 12 Yes


Correct ? 3 No

Re: What is a diff between joiner and lookup transformation


Answer Use the Joiner
# 10 transformation to join
source data from two
related heterogeneous
sources residing in
different
locations or file
systems. You can also
join data from the
same source. The Joiner
transformation joins
sources
with at least one
matching column. The
Joiner
transformation uses a
condition that matches
one or more
pairs of columns between
the two sources.

Use a Lookup
transformation in a
mapping to look up data
in
a flat file, relational
table, view, or
synonym.The
Integration Service
queries the lookup source
based on the
lookup ports in the
transformation and a
lookup condition.
The Lookup transformation
returns the result of the
lookup
to the target or another
transformation.

The Joiner transformation


supports only equi joins
and
Lookup Transformation
supports equi and non-
equi joins

The Joiner transformation


lieterally joins two
columns
whereas Lookup
transformation return a
column based on the
condition, but it will
not joint two columns.

RE: What are tracing levels in transformation?


Tracing level in the case of informatica specifies the level of detail of information that can be
recorded in the session log file while executing the workflow.

4 types of tracing levels supported

1.Normal: It specifies the initialization and status information and summerization of the
success rows and target rows and the information about the skipped rows due to transformation
errors.

2.Terse specifies Normal + Notification of data

3. Verbose Initialisation : In addition to the Normal tracing specifies the location of the data
cache files and index cache files that are treated and detailed transformation statistics for
each and every transformation within the mapping.

4. Verbose data: Along with verbose initialisation records each and every record processed by
the informatica server

For better performance of mapping execution the tracing level should be


specified as TERSE
Verbose initialisation and verbose data are used for debugging purpose.

Lookup with multiple matches


Asked by UNT_Jake | posted Oct 17, 2005 | Replies (1)
How do I configure a lookup to handle a multiple match and a no match differently.
Example:

I have one output port in my lookup that should be one of four values

On single match in should be "A" or "B".


On Multiple match it should be "BOTH".
And on no match it should be "NONE".

If "lookup policy on multiple match" is set to report error, then it will take the default for
the port, but I can't find a way to make it use "NONE" sometimes and "BOTH" other
times.

What is lookup transformation in informatica?

[edit]
Answer

Lookup is a transformation to look up the values from a relational table/view or a flat


file. The developer defines the lookup match criteria. There are two types of Lookups in
Powercenter-Designer, namely; 1) Connected Lookup 2) Unconnected Lookup .
Different caches can also be used with lookup like static, dynamic, persistent, and
shared(The dynamic cache cannot be used while creating an un-connected lookup).
Each of these has its own identification. For more details, the book "Informatica Help"
can be useful.

Hope you are aware with the basics of Informatica. Now proceeding through lookup
transformation.

Lookup transformation is Passive and it can be both Connected and UnConnected as


well. It is used to look up data in a relational table, view, or synonym. Lookup definition
can be imported either from source or from target tables.

For example, if we want to retrieve all the sales of a product with an ID 10 and assume
that the sales data resides in another table called 'Sales'. Here instead of using the
sales table as one more source, use Lookup transformation to lookup the data for the
product, with ID 10 in sales table.

Difference between Connected and UnConnected Lookup Transformation:

1. Connected lookup receives input values directly from mapping pipeline whereas
UnConnected lookup receives values from: LKP expression from another
transformation.

2. Connected lookup returns multiple columns from the same row whereas
UnConnected lookup has one return port and returns one column from each row.

3. Connected lookup supports user-defined default values whereas UnConnected


lookup does not support user defined values.

[edit]
Example

Select dname from dept,emp where: emp.deptno=dept.deptno


[edit]
Connected LKPs
1. Connected LKP trasformation is one which is connected to Pipe line.
2. Connected LKP trasformation will process each and every Row.
3. If you want to Use Dynamic LKP cache, use the connected LKP
transformation.
4. If the LKP condition is not matched the LKP transformation will return the
Default Value.
5. it cannot be called
6. it returns multiple values.
7. it can use static or dynamic cache
[edit]
Unconnected LKPs
1. Unconnected LKP trasformation is one which is not connected to the Pipe line.
2. It should be called either from expression or Update Stragey.
3. It will not process each and evry row. It will return the values based expression
Condition.
4. If no match found for the LKP condition, the LKP transformation will return Null
Values.
5. it is a reusable trnsformation. The same LKP trnans can be called multiple
times in same mapping
6. it will return only one value.
7. it can use only static cache
[edit]
Performance Considerations for Lookups

Below are a list of performance considerations for lookups in Informatica PowerCenter.

Performance for Lookups

[edit]
Misconceptions about lookup SQL Indexes

I have seen people suggesting an index to improve the performance of any SQL. This
suggestion is incorrect - many times. Specially when talking about indexing the
condition port columns of Lookup SQL, it is far more "incorrect".

Before explaining why it is incorrect, I would try to detail the functionality of Lookup. To
explain the stuff with an example, we take the usual HR schema EMP table. I have
EMPNO, ENAME, SALARY as columns in EMP table.

Let us say, there is a lookup in ETL mapping that checks for a particular EMPNO and
returns ENAME and SALARY from the Lookup. Now, the output ports for the Lookup
are "ENAME" and "SALARY". The condition port is "EMPNO". Imagine that you are
facing performance problems with this Lookup and one of the suggestion was to index
the condition port.

As suggested (incorrectly) you create an index on EMPNO column in the underlying


database table. Practically, the SQL the lookup executes is going to be this:

select EMPNO, ENAME, SALARY from EMP ORDER BY EMPNO, ENAME, SALARY;
The data resulted from this query is stored in the Lookup cache and then, each record
from the source is looked up against this cache. So, the checking against the condition
port column is done in the Informatica Lookup cache and "not in the database". So any
index created in the database has no effect for this.

You may be wondering if we can replicate the same indexing here in Lookup Cache.
You don't have to worry about it. PowerCenter create "index" cache and "data" cache
for the Lookup. In this case, condition port data - "EMPNO" is indexed and hashed in
"index" cache and the rest along with EMPNO is found in "data" cache.

I hope now you understand why indexing condition port columns doesn't increase
performance.

Having said that, I want to take you to a different kind of lookup, where you would've
disabled the caching. In this kind of Lookup, there is no cache. Everytime a row is sent
into lookup, the SQL is executed against database. In this scenario, the database index
"may" work. But, if the performance of the lookup is a problem, then "cache-less"
lookup itself may be a problem.

I would go for cache-less lookup if my source data records is less than the number of
records in my lookup table. In this case ONLY, indexing the condition ports will work.
Everywhere else, it is just a mere chanse of luck, that makes the database pick up
index.

[edit]
Dynamic Lookups

Dynamic Lookups are used for implementing Slowly Changing dimensions. The ability
to provide dynamic caching gives Informatica a definetive edge over other vendor
products. In a Dynamic Lookup, everytime a new record is found (based on the lookup
condition) the Lookup Cache is appended with that record. It can also update existing
records in the cache with the incoming values.

Q> I have a mapping that has a source file. My source file is unique and there are
no duplicates. This source file goes to a lookup table to get some values based
on a condition that I have set. If the condition is met, a value will be retrieved
from the lookup. If a value does not meet the condition, NULL will be retrieved
from the lookup.

R> Here is the problem. While the source file is unique and contains no
duplicates, the lookup table may contain multiple matches to the source file.
When this happens, I want the records from the source file that have found
multiple matches on the lookup table to be re-directed to a table that will
undergo further processing.

S> I have tried to use Lookup Policy on Multiple Match=Report Error and it has
dropped the records from the source file that has multiple matches in the
lookup file. I don't want this to happen. I want the records from the source file
that have met multiple matches on the lookup table to be re-directed to another
table for re-processing.

Can this be done? Please help.


ANS> If your match conditions are equalities (=) and not greater than or less than then
you can use the joiner rather than the lookup. Bring your lookup table in in a separate
source and source qualifier and into the joiner. Now when there are multiple matches
you will get multiple rows out of the joiner. Bring this into an aggregator and get a
count. Use a router to route the multiple match records to your error file.

Lookup Policy on Multiple Match Infa 8.1.5+

What is the difference in the Lookup Policy for Multiple Matches within a lookup
between: Use First Value, Use Last Value and Use Any Value. When there are multiple
rows with the same key does Informatica do additional processing to determine which
row is the 'true' first' It would seem that Use Any Value would be a better when
checking the condition.

In a lookup, Informatica automatically inserts an ORDER BY clause that sorts the


returned rows in ascending order by the lookup key (specified on the condition tab).
The FIRST and LAST are ordered by these values. I believe that when ANY is used,
the cache file is just processed in the quickest manner possible, returning "any" value.

In a lookup, Informatica automatically inserts an ORDER BY clause that sorts the


returned rows in ascending order by the lookup key (specified on the condition tab).
The FIRST and LAST are ordered by these values. I believe that when ANY is used,
the cache file is just processed in the quickest manner possible, returning "any" value.

Re: What is a diff between joiner and lookup transformation


Answer . I) Joiner is active transformation
# 12 & lookup is passive
transformation.
II) Joiner operates on sources where
as lookup operates
source as well
as target.
III)Joiner doesnt support nonequi
joins whereas lookup
supports nonequi join
i.e. joiner transformation supports
only equality operator
in condition of join where as lookup
transformation can
support<=,>=,=,!= in the lookup
condition.
IV) Lookup uses dynamic and static
cache where as a joiner
doesn’t.
V) Joiner transformation does not
match for null values
whereas lookup transformation matches
for null values.
VI) Joiner will do left outer,right
outer,normal,full outer
types of joins whereas lookup will do
only left outer join.
Joiner is active transformation in
informatica to merge
nonsimilar structures into target
warehouse systems.
Joiner needs a condiotion for data
merging based on
following types
1.Normal join
2.Maste outer join
3.Detail outer join
4.Full outer join
Lookup is a passive transormation in
informatica.this
transformation is used for data
verfications of the source
table in assign lookup table
Lookup needs a condition if the
condition is satisfied
returns corresponding data else
returns null value.

RE: if source qualifier having employee details....

I think the question is :If EMPID is in 5th column/port(in source qualifier) DEPTNO is in
7th column/port(in source qualifier) and if we use No.of Sorted Ports as 2. How will
informatica know if it has to sort only those 2 ports ?

OK. Here is the reply to this question.

The Ports EMPID (5th port) and DEPTNO (7th port) should be moved to the first 2
ports by using the arrows which will make the columns move up and down as desired.
Make both the EMPID and DEPTNO as first 2 ports and then you could make the
informatica understand that its the first 2 ports that should be sorted.

You might also like