Как добавить новую строку в качестве итога группы, используя Data Stage
У меня есть входные данные, как показано ниже
CovNo type Price
10 med tot 110
10 med tot 120
10 dent tot 140
20 med tot 110
20 dent tot 130
20 med tot 120
Как я могу сгенерировать выходные данные, как показано ниже
CovNo type Price
10 med tot 110
10 med tot 120
10 dent tot 140
10 Group tot 370
20 med tot 110
20 dent tot 130
20 med tot 120
20 Group tot 360
Должен ли я знать логику для реализации вышеупомянутого сценария в Datastage.
Заранее спасибо,
Shanmugam
2 ответа
Для приведенного выше примера мы могли бы добиться этого в преобразователе, используя функции SaveInputRecord() и GetSavedInputRecord() и LastRowInGroup().
IBM предоставила прекрасный пример для этого типа сценария.
Примечание. На производительность будет влиять, если данные огромны, поскольку они используют кэш-память. Так что, если ваши данные огромны, то лучше разделить источник и выполнить объединение после агрегирования, или вы можете легко сделать это с помощью sql, если ваш источник является базой данных.
В зависимости от источника ваших данных одним из способов может быть их решение с помощью SQL, если вашим источником является таблица.
Если вы хотите или должны делать это только в DataStage, вы можете раскошелиться на данные, используя стадию копирования, и получить один вывод на стадию агрегатора, где вы рассчитываете суммы для группы. Другие выходные данные копии затем объединяются с результатами агрегатора с этапом последовательности (который ведет себя как объединение в SQL). Вот и все.