任何人都可以在Talend的以下场景中帮助我: -
根据以下方案创建映射
来源结构及其数据,
STORE_NAME Varchar2 (20)
Q1_SALES number (10, 4)
Q2_SALES number (10, 4)
Q3_SALES number (10, 4)
Q4_SALES number (10, 4)
DB_Store_Source :(平面文件)
STORE_NAME Q1_SALES Q2_SALES Q3_SALES Q4_SALES
XYZ 100 200 150 900
ABC 111 222 789 763
DEF 333 444 555 2000
FF_Store_Source :(平面文件)
STORE_NAME Q1_SALES Q2_SALES Q3_SALES Q4_SALES
XYZ 100 200 150 900
ABC 111 222 789 763
ZZZ 200 200 200 300
目标结构,
Store_Target:
SNo integer,
STORE_NAME varchar2 (20),
QUARTER_NAME varchar2 (20),
SALES_PER_QUARTER number (10, 4)
从上面的场景中,创建一个映射以合并来自DB_Store_Source和FF_Store_Source的数据,并将唯一记录传递到Store_Target。 应该使用序列生成的值填充SNo(第一个记录以1000开头),其余列根据规范化从源填充
我可以使用唯一的行进行提取。即使我能够规范化但无法实现最后一部分,即如何存储quarter_name。使用taggregaterow sum函数我能够得到求和函数
答案 0 :(得分:3)
答案 1 :(得分:0)
您可以使用以下解决方案,如问题底部的屏幕截图所示,以获得输出结果。
我按顺序执行了以下步骤: -
读取FF_STORE和DB_STORE的数据,并将两个输入的所有记录传播到tHashOutput。
在下一步中,我已将tHashOutput中的数据转移到tUnite组件以合并两个数据源记录。
在进一步的步骤中,使用tSplitRow拆分要在Quarter_Name列中填充的Quarter列。
然后使用tUniqRow根据键列删除重复项。
请参考下图