Q) How to implement slowly changing dimension (SCD) Type 2 Effective Date mapping in Informatica cloud data Integration?
Step1: Create 2 tables in oracle database as follows
--Source Table
Create Table SCD2_Source
(
ID Number ,
Name Varchar2(30),
Role Varchar2(30),
Sal Varchar2(30)
);
--Target Dimension Table
Create Table SCD2_Dim
(
S_key NUMBER PRIMARY KEY,
ID NUMBER ,
Name Varchar2(30),
Role Varchar2(30),
Sal Varchar2(30),
Start_Date DATE,
End_Date DATE,
Flag char(1),
OPERATION Varchar2(100)
);
Step2: Login to Infa cloud and select Data Integration services
Step3: Click on New Asset-> Mappings-> Mapping
Drag below components from the toolbar and configure as suggested below
Step1: Create 2 tables in oracle database as follows
--Source Table
Create Table SCD2_Source
(
ID Number ,
Name Varchar2(30),
Role Varchar2(30),
Sal Varchar2(30)
);
--Target Dimension Table
Create Table SCD2_Dim
(
S_key NUMBER PRIMARY KEY,
ID NUMBER ,
Name Varchar2(30),
Role Varchar2(30),
Sal Varchar2(30),
Start_Date DATE,
End_Date DATE,
Flag char(1),
OPERATION Varchar2(100)
);
Step2: Login to Infa cloud and select Data Integration services
Step3: Click on New Asset-> Mappings-> Mapping
Drag below components from the toolbar and configure as suggested below
1.Drag source and configure it with source table
2. Drag a lookup transformation and configure it with the target dimension table
3. Connect the source to Lookup and include only the ID field and add a condition Target_Id = Source_id
4. Drag an expression transformation and connect lookup and Source to it ( It may ask you to resolve name conflicts, resolve them by using prefix or suffix)
5. Include only the fields that may change from the lookup (Ex., LKP_Role, LKP_Salary, and LKP_S_Key)
6. Add an output port o_SRC_Hashkey as type string(200) and configure it with the expression MD5(Role||To_Char(Sal)) this will be compared with the lookup HashKey to check if there is any change.
7. Add another output port o_LKP_Hashkey as type string(200) and configure it with the expression MD5(LKP_Role||To_Char(LKP_Sal))
8. Add Router and connect the Expression to Router.
9. Create two groups Insert and Update and configure them INSERT when LKP_S_key is NULL -- (ISNULL(LKP_S_key ) and update when LKP_S_key is not NULL and o_SRC_Hashkey is not equal to o_LKP_Hashkey -- (NOT ISNULL(LKP_S_key ) AND o_SRC_Hashkey <> o_LKP_Hashkey
10. Drag an expression and connect the insert group to it and only include source fields in it and add 2 output fields.
o_Start_Date -- sysdate
o_flag -- "Y"
11. Drag target (INSERT)and connect the above expression transformation to it and create a sequence generator and also connect it with the target.
12. Map target fields (NEXTVAL from seq will be given to S_Key, o_Start_Date will be given to Start_Date and o_flag will be given to Flag and End_Date will be NULL fro insert Record)
13. Drag an expression and connect the output group of Router to it and include only LKP_S_KEY, Role, SRC. Add two output ports
o_End_Date -- sysdate
o_flag -- "N"
14. Drag Target(Existing_Update) and connect the above expression to it. The select operation to Data Driven and Data Driven Condition is DD_UPDATE also add the Surrogate key(S_KEY) as the update column
15. Map S_Key to LKP_S_KEY and o_End_Date to End_Date and o_flag to Flag
16. Add expression and connect the update group from the router to it.
17.Include only the source rows and create two output fields
o_Start_Date -- sysdate
o_flag -- "Y"
18. Add target (EXISTING_INSERT) and connect the sequence and the above expressions to it.
19. Map the fields like we did for insert and save the mapping.
Step4: Close the mapping and click on New Asset -> Tasks -> Mapping Task
Input Task Name and select Runtime Environment and Mapping which we created
Step5: Click Next ( Sequence) and Finish
Step6: The Mapping Task will be saved then run the task.
This job is very help ful .Thanks a lot
ReplyDeleteGreat explanation thank you.
ReplyDeleteAwesome content sir. Thanks for your help.
ReplyDeleteNice explanation and its really very helpful for me. Thanks a lot Sir.
ReplyDeleteAnenterprise data warehouse is a database that integrates data from one or a variety of sources to enable business users to run analytical queries. The data warehouse is one of the most powerful tools in corporate data analysis and reporting. An EDW is a repository of historical data that is updated regularly. Data warehouses are used for data mining, data integration, data analysis, and reporting.
ReplyDeleteThank you so much for providing such an informative and nice article on the usage of Informatica.
ReplyDeleteInformatica Read Soap API
am sure it will help many people. Keep up the good work.
ReplyDeletePTE Coaching in ambala
Best IELTS Institute in Ambala
PTE institute in ambala
Thank You for the information. This is very helpful
ReplyDeleteInformatica Cloud Training Course Online
Informatica Cloud certification Training
Thanks for the great article,..keep it up .
ReplyDeleteEry helpful
ReplyDelete