You are on page 1of 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@gmail.com


<= 10000 email@yahoo.com

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