0% found this document useful (0 votes)
74 views12 pages

Transformation Notes

1. The document describes various Informatica transformations. It provides details about the properties and usage of source qualifier, filter, expression, joiner, sorter, aggregator, router, rank, sequence generator, union, lookup, update strategy, and normalizer transformations. 2. Transformations like source qualifier, filter, joiner, aggregator, rank and router are active while expression, sequence generator, and lookup can be active or passive. 3. The properties discussed include filter conditions, sort keys, group by columns, lookup policies, update strategies, and normalizing row to column format.

Uploaded by

Firoz Nurubhashu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
74 views12 pages

Transformation Notes

1. The document describes various Informatica transformations. It provides details about the properties and usage of source qualifier, filter, expression, joiner, sorter, aggregator, router, rank, sequence generator, union, lookup, update strategy, and normalizer transformations. 2. Transformations like source qualifier, filter, joiner, aggregator, rank and router are active while expression, sequence generator, and lookup can be active or passive. 3. The properties discussed include filter conditions, sort keys, group by columns, lookup policies, update strategies, and normalizing row to column format.

Uploaded by

Firoz Nurubhashu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 12

Active Transformation:

=====================

A transformation does change the number of records passed through it

Passive Transformation:
======================

A transformation does not change the number of records passed through it

1. Source Qualifier:
======================
-An Active, connected

It converts Source Datatype into Informatica native data type

Properties:
-----------

select all_columns from table_name;

1. SQL query: Sql override, --> by writing sql query, we can filter/restrict the
data from source itself --- 2

2. User defined join: Homogeneous join - tables from same type of data base

3. Source filter: filter condition (salary is not null)

4. select distinct: enable/disable -- full row duplicate

5. Pre-SQL: SQL, before data fetch (e.g index creation in source) ---
1

6. Post-SQL: SQL, After data fetch (e.g index drop in source) ---
3

7. Number of sorted port: 2 (1,2)

Date Format: dd-MON-yy

If source is FF, all of the above properties are disabled

--Core schema create new target table:

create table t_employees_dept as select * from t_employees where 1=2;

alter table t_employees_dept add department_name varchar2(50);

alter table t_employees_dept add location_id number(8);

select * from t_employees_dept;


-----------------------------------------------------------------------------------
-----------------------------------------

2. Filter Transformation:
=========================
--An Active, Connected

Filter transformation is used to filter out record any where in the pipeline

SQ Filter: Filter transformation is used to filter out record from source

Properties:
===========

filter condition: True -- It will pass all the record


False -- It will block all the reord
condition - passes ---> satisfied record

salary:
=======

10000
50000
null not isnull(salary)
80000
6000
12000

I have a ff and it has record for all the countries, i want to load india data to
target

s+sq+filter (country='India' AND salary>50000)

India
india
INDIA

s+sq+filter (lower(country)='india' AND salary>50000)


-----------------------------------------------------------------------------------
--------------------------------

3. Expression Transformation:
=============================

-- Passive, connected

input output variable expression(not a


port)

salary * *

new_salary * salary+
(salary*0.1)
variable: intermediate calculation -- you can't take variable port as output

v_c=a+b;
o_c=v_c
e=d+v_c;

Order of execution:

1. Input
2. Variable
3. Output

Can't filter record in expression transformation -- passive

'+1-('||substr(replacechr(0,PHONE_NUMBER,'.',null),1,3)||')-'||
substr(replacechr(0,PHONE_NUMBER,'.',null),4)

'

first_name uppercase

last_name 100_King (employee_id_last_name)

email -- salary > 10000 [email protected]


<= 10000 [email protected]

phone_number 515.123.4567 -- +1-5151234567

job_id from 4th char PRES

comm -- null --> 0

IIF(condition,true,false)

IIF(SALARY>10000,EMAIL||'@gmail.com',EMAIL||'@yahoo.com')

A b
a b

'+1-'||REPLACECHR(0,PHONE_NUMBER,'.','')

'T_FF_EMPLOYEES_'||to_char(SYSTIMESTAMP(),'YYYYMMDDHH24MI')||'.csv'

-----------------------------------------------------------------------------------
--------------------
4. Joiner:
==========
An active, connected

-- heterogeneous join, sources from various data bases

SQ Joiner: Homogeneous sources (sources from same type of data bases)

4 Types of join:

1. Normal join
2. Master Outer
3. Detail Outer
4. Full Outer Join

N number of heterogeneous sources ---> N-1 joiner

Performance in Joiner:

Master -- Smaller table --> less cache, less iteration


partitioning
sorted input
-----------------------------------------------------------------------------------
---------------------
5. Sorter Transformation:
=========================
--An Active, Connected

SQL: Order by

select * from employees order by salary;


select * from employees order by salary desc;
select * from employees order by salary desc, hire_date;

Informatica: Sorter

input output Key


direction

salary * * *
descending
hire_date * * *
ascending

can I select more than one key port in sorter? ---- Yes

properties:

distinct

to remove duplicate record from sorter:

source ff(duplicate) + SQ can't use sq distinct + sorter (use distinct)

case sensitive: Yes

Arun
Babu
Chandra
babu

Null treated as low: enable

null
8000
null
6000
9000

normal order:

null
null
null
9000
8000
6000

Null treated as low: enable

9000
8000
6000
null
null
null '
-----------------------------------------------------------------------------------
--------------------------------
6. Aggregator:
==============
-- Active, connected

min()
max()
sum()
avg()
count()

Irrespective of number of record --> you will get only one record in output
--> last record will get aggregate value

Group by:

sum(salary) group by department_id

Properties:

sorted input: enable

Aggregator ==> Sorting + aggregation


performance:
sorted input
incremental aggregation

-----------------------------------------------------------------------------------
-------------------------------------------------

7: Router Transformation:
=========================
-An Active, connected

-- Single pipeline input --> Multiple pipeline output


-- Mutiple filter condition ---> Multiple group
-- Default
-- exactly opposite to Union transformation

IIF(condition,IIF(condition,true,false),'NON-LEAP')

8. Rank Transformation: NiC IT Academy


=======================
-- An Active, connected

-- Rank on only one column

input output rank group by

salary * * *

department_id *

Properties:
===========

Top/Bottom: Top
Number of Rank: 5

Can't do dense rank by using Rank transformation,


instead we can do by using expression transformation

-------------------------------------------------------------
9. Sequence Generator:
=======================
-- Passive, Connected
-- Auto increment numbers

Properties:
-----------
1. Start value: 10000000
2. increment by: 1
3. End value: 92142342353544454
4. current value: 10000000
5. cycle: enable/disable
6. Reset: enable/disable
7. Number cached values: 1000

10000000
10000100

10000000
10000200

1 4
2 5
3 1
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3

To generate surrogate key, Unique key --> Sequence generator


-------------------------------------------------------------------------------
10: Union Transformation:
=========================
-An Active, connected
same structured table
Heterogeneous sources

Infa ---> Union acts as Union ALL --> it will not remove duplicate
Union ==> Union + Sorter(distinct)

Exactly opposite to router

multiple pipeline input ---> Single pipeline output

-------------------------------------------------------------------------------

11. Lookup Transformation:


==========================
--An active, connected, unconnected

Connected lookup:
=================

It will be in the pipeline

input output lookup return

lookup sql override: by writing sql query we can restrict the data from
lookup table itself

lookup filter:

can take multiple return port:

Lookup policy on multiple match:

Use Any value(default)


Use first value
Use last value
report error - session failed
lookup import ----------- return All values on
multiple match

UnConnected lookup:
===================

only one return port


can take multiple port by using concatenation operation, expression
transformation to call

-- Expression Transformation

:LKP.LKPTRANS(lookup_field)

why unconnected:
lookup reusablity
Conditional lookup:

IIF(isnull(name),:LKP.lkptrans(ssn),name)

-----------------------------------------------------------------------------------
-

ADD_TO_DATE (TO_DATE('01-JAN-1970','dd-mon-yyyy'),'DD',(1526357743/60/60/24))

-------------------------------------------------------------------------------
12. Update Strategy:
===================

- An Active, Connected

dd - Data Driven

dd_insert 0
dd_update 1
dd_delete 2 (instead of delete, we will soft delete -- Inactive)
dd_reject 3

Target ---> Primary key

e.g SCD Type 1 Implementation:

13. Normalizer:
===============
-- An Active, connected Transformation

row --> column

Transpose the data (SQL: pivot Unpivot)


Cobol source ==> VSAM file ==> Instead of SQ, Normalizer will be used.

GK - generated Key value


GC ID - Generated column value

14: Transaction Control:


==========================
active, connected

commit
rollback

TC_COMMIT_BEFORE
TC_COMMIT_AFTER
TC_ROLLBACK_BEFORE
TC_ROLLBACK_AFTER
TC_CONTINUE_TRANSACTION

Dynamic file in target

1
2
3
4
5
1
2
3
4
5
1
2
3
4
5

india 1
india 0
india 0
uk 1
uk 0
uk 0
usa 1
usa 0

-----------------------------------------------------------------------------------
----

SCD: Slowly Changing Dimensions


dimension table:

customer
product
account
user
employee
region
location
time

Type: 1 - No history will be maintained


Simple update

Type: 2 - History will be maintained


Row level history

Method - 1 - Flag
Method - 2 - Version
Method - 3 - Date

Type: 3 - Recent history will be maintained


Column level history

Surrogate Key:

-----------------------------------------------------------------------------------
-------

You might also like