2016-12-07 7 views
1

Может кто-нибудь помочь мне в приведенном ниже сценарии в 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: (Flat File)

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 сумму я могу получить функцию суммы

+0

Немного нечитаемым. Можете ли вы уточнить больше? –

+0

Смотрите Ват должны сделать у вас создать работу в Talend, который будет иметь цель, как показано ниже Store_Target: SNO целое, STORE_NAME varchar2 (20), QUARTER_NAME varchar2 (20), номер SALES_PER_QUARTER (10, 4) Но в двух исходных плоских файлах есть Q1, Q2, Q3, Q4. как это сделать? Target будет что-то вроде этого SNO, STORE_NAME, QUARTER_NAME, SALES_PER_QUARTER 1001, XYZ, Q1,100 1002, XYZ, Q2,200 1003, XYZ, Q3,150 1004, XYZ, Q4,900 1005, ABC, Q1,111 – Abhijit

+0

@Abhijit: В принципе, я понимаю, вам нужно сделать PIVOT, что означает строки в столбце, поэтому вы можете использовать ниже компонент в Talend https://help.talend.com/display/TalendComponentsReferenceGuide61EN/tPivotToColumnsDelimited –

ответ

2

Если вы ищете результат ниже, а затем использовать tsplitrow компонент

enter image description here

tsplitrow свойств компонента в изображении ниже

enter image description here

Примечание: используйте компонент tsplitrow после того, как вы взяли уникальные записи.

+0

привет, ваш ответ был полезен. :) – Abhijit

0

Вы можете использовать нижеследующее решение, как показано на скриншоте в нижней части вопроса, чтобы достичь результата.

Я следовал ниже шагов в последовательности: -

  1. Считывание данных из обоих FF_STORE и DB_STORE и распространяются все записи обоих входов к tHashOutput.

  2. На следующем шаге я взял данные из tHashOutput в компонент tUnite, чтобы объединить обе записи источника данных.

  3. На следующем шаге используется tSplitRow для разделения столбца Quarter для заполнения в столбце Quarter_Name.

  4. Затем с помощью tUniqRow удаляются дубликаты на основе столбца ключа.

Пожалуйста, обратитесь к ниже изображения

solution image