任何人都可以在 Talend 的以下场景中帮助我

Can anyone help me in the below scenario in Talend

任何人都可以在 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.using taggregaterow 求和函数我能够获得求和函数

如果您要查找以下结果,请使用 tsplitrow 组件

tsplitrow 组件属性如下图

注意:在获取唯一记录后使用tsplitrow组件。

您可以使用问题底部屏幕截图所示的以下解决方案来实现您的输出结果。

我按顺序执行了以下步骤:-

  1. 读取 FF_STORE 和 DB_STORE 的数据并将两个输入的所有记录传播到 tHashOutput。

  2. 在下一步中,我将数据从 tHashOutput 提取到 tUnite 组件以合并两个数据源记录。

  3. 在下一步中使用 tSplitRow 拆分 Quarter 列以填充到 Quarter_Name 列中。

  4. 然后使用 tUniqRow 根据键列删除重复项。

请参考下图

解决方案图片