The source data contains only column 'id'. It will have
sequence numbers from 1 to 1000. The source data looks like as
Id
1
2
3
4
5
6
7
8
....
1000
Create a workflow to load only the Fibonacci numbers in the target table. The target table data should look like as
Id
1
2
3
5
8
13
.....
In Fibonacci series each subsequent number is the sum of previous two numbers. Here assume that the first two numbers of the fibonacci series are 1 and 2.
Id
1
2
3
4
5
6
7
8
....
1000
Create a workflow to load only the Fibonacci numbers in the target table. The target table data should look like as
Id
1
2
3
5
8
13
.....
In Fibonacci series each subsequent number is the sum of previous two numbers. Here assume that the first two numbers of the fibonacci series are 1 and 2.
Solution:
STEP1:
Drag the source to
the mapping designer and then in the Source Qualifier Transformation
properties, set the number of sorted ports to one. This will sort the source
data in ascending order. So that we will get the numbers in sequence as 1, 2,
3, ....1000
STEP2: Connect the
Source Qualifier Transformation to the Expression Transformation. In the
Expression Transformation, create three variable ports and one output port.
Assign the expressions to the ports as shown below.
Ports in Expression
Transformation:
id
v_sum
= v_prev_val1 + v_prev_val2
v_prev_val1 = IIF(id=1 or id=2,1, IIF(v_sum = id, v_prev_val2, v_prev_val1) )
v_prev_val2 = IIF(id=1 or id =2, 2, IIF(v_sum=id, v_sum, v_prev_val2) )
o_flag = IIF(id=1 or id=2,1, IIF( v_sum=id,1,0) )
v_prev_val1 = IIF(id=1 or id=2,1, IIF(v_sum = id, v_prev_val2, v_prev_val1) )
v_prev_val2 = IIF(id=1 or id =2, 2, IIF(v_sum=id, v_sum, v_prev_val2) )
o_flag = IIF(id=1 or id=2,1, IIF( v_sum=id,1,0) )
STEP3: Now connect the
Expression Transformation to the Filter Transformation and specify the Filter
Condition as o_flag=1
STEP4: Connect the
Filter Transformation to the Target Table.
No comments:
Post a Comment
Thank you :
- kareem