There are 2 files, Master and User. We need to compare 2
files and prepare a output log file which lists out missing
Rolename for each UserName between Master and User file.
Please find the sample data-
MASTER.csv
----------
Org|Tmp_UsrID|ShortMark|Rolename
---|---------|----------|------------
AUS|0_ABC_PW |ABC PW |ABC Admin PW
AUS|0_ABC_PW |ABC PW |MT Deny all
GBR|0_EDT_SEC|CR Edit |Editor
GBR|0_EDT_SEC|CR Edit |SEC MT103
GBR|0_EDT_SEC|CR Edit |AB User
USER.csv
--------
Org|UserName|ShortMark|Rolename
---|--------|---------|------------
AUS|charls |ABC PW |ABC Admin PW
AUS|amudha |ABC PW |MT Deny all
GBR|sandya |CR Edit |Editor
GBR|sandya |CR Edit |SEC MT103
GBR|sandya |CR Edit |AB User
GBR|sarkar |CR Edit |Editor
GBR|sarkar |CR Edit |SEC MT103
Required Output file:
---------------------
Org|Tmp_UsrID|UserName|Rolename |Code
---|---------|--------|------------|--------
AUS|0_ABC_PW |charls |ABC Admin PW|MATCH
AUS|0_ABC_PW |charls |MT Deny all |MISSING
AUS|0_ABC_PW |amudha |ABC Admin PW|MISSING
AUS|0_ABC_PW |amudha |MT Deny all |MATCH
GBR|0_EDT_SEC|sandya |Editor |MATCH
GBR|0_EDT_SEC|sandya |SEC MT103 |MATCH
GBR|0_EDT_SEC|sandya |AB User |MATCH
GBR|0_EDT_SEC|sarkar |Editor |MATCH
GBR|0_EDT_SEC|sarkar |SEC MT103 |MATCH
GBR|0_EDT_SEC|sarkar |AB User |MISSING
Both the files are mapped through Organization, Shor_mark.
So, based on each Organization, Short_Mark, for each
UserName from User.csv, we need to find the Matching and
Missing Rolename. I am able to bring Matching records in
the output. But really I don't find any concept or logic to
achieve "MISSING" records which are present in Master and
not in User.csv for each UserName. Please help out guys.
Let me know if you need any more information.
Note:- In User.csv file, there are n number of
Organization, under which n number Shortmark comes which
has n number of UserName.
Answer / zer0
Create the mapping as below:
LKPTRANS
Master_SQ /\
\ / \
/JNRTRANS ---> EXP1 ---> AGG ---> EXP2 ----> EXP3 ---> Targ
User_SQ
In Joiner, use the join as per requirement. For the
scenario given a normal join is enough. Take all the ports
from Master_SQ and User_SQ into an expression after joiner.
From Expression pass it on to an aggregator. In aggregator,
group by based on the ports Master.ShortMark,
Master.Rolename and Master.Username .
From aggregator take the following ports - Master.Org,
Master.Tmp_UsrID, Master.ShortMark, Master.Rolename and
User.UserName
Make a lookup on the User.csv file and from Expression take
Master.ShortMark, Master.Rolename and User.UserName as
input into the lookup trans. Join on the basis of the input
ports and output LKP_UserName from the lookup
transformation.
Also, from EXP2 take all the ports as input into EXP3. Make
a CODE column in EXP3 with the condition IIF(ISNULL
(LKP_UserName),'MISSING','MATCHING')
From EXP3 pass all the ports into target. You will have
your desired answer.
| Is This Answer Correct ? | 0 Yes | 0 No |
hi real timers . iam waiting for ur reply regarding ETL TESTING
Explain the types of lookup transformation?
What is a router transformation?
i have a wf i want to run this very day 3 time every 3 hours how can you scheduled that?
What are active and passive transformations?
Calculate sum of salaries department wise. Then the sum will be repeat for all columns in each department. Develop a mapping for this.
how will u take the data from clint server and next what u do in datamodeling what u will u do in staging area what u will u do next what u are doing please give the step by step by process
why we use datawarehouse
How to create a non-reusable instance of reusable transformations?
If there are more than one sessions running parallel in a worklet, which will be the last session ?
What are the options in the target session of update strategy transsformatioin?
What will be the approach?