Прилагане на Pivot в Pentaho Kettle

Използвам pentaho kettle 5.2.0 версия. Опитвам се да направя пивоти на моите изходни данни, тук е структурата на моя източник

Billingid   sku_id    qty
  1           0        1
  1           0        12
  1           0        6
  1           0        1
  1           0        2
  1           57       2
  1          1430      1
  1          2730      1
  2          3883      2
  2          1456      1
  2          571       9
  2          9801      5
  2          1010      1

И това е, което очаквам

billingid   0   57  1430  2730  3883  1456  571  9801  1010
   1                *******sum of qty******
   2

това са стъпките, които направих в денормализатора на редове, но не можах да получа очаквания резултат

Всяка помощ ще бъде високо оценена .. БЛАГОДАРЯ предварително


person Deepesh    schedule 26.02.2016    source източник
comment
Просто се опитвате да преброите qty pr. billingid?   -  person bolav    schedule 27.02.2016
comment
Не @bolav, опитвам се да събера количеството спрямо billingid спрямо sku_id. Искам сумата от qty срещу колона billingid и sku_id   -  person Deepesh    schedule 27.02.2016
comment
Можете ли да направите с формат, в който получавате ред, където комбинацията billingid и sku_id е уникална и получавате billingid, sku_id, sum_qty, или трябва да денормализирате? (Първата алтернатива е много по-лесна за правене)   -  person bolav    schedule 27.02.2016
comment
Въпреки че първото ви предложение е по-лесно, но все пак, ако искам да използвам денормализатор, как да продължа? Какви могат да бъдат необходимите промени, които трябва да направя в екранната снимка на стъпката за денормализатор?   -  person Deepesh    schedule 27.02.2016


Отговори (1)


За да работи denormaliser, първо трябва да сортирате и да групирате редовете, за да имате sum of qty. Така че трансформацията ще изглежда така:

екранна снимка на трансформация

Сортирайте по billingid и sku_id, а след това sum qty, групирайте по billingid и sku_id:

екранна снимка на група от

След това в denomaliser трябва да изброите всеки различен sku_id, за да направите колона pr id.:

екранна снимка на denomaliser

Това ще даде очаквания резултат:

екранна снимка на очаквания резултат

person bolav    schedule 27.02.2016
comment
това е страхотно!!! наистина ми направи деня :) Благодаря много. единственото нещо, за което се притеснявам сега, е, че ако броят на записите се увеличи в колоната sku_id, тогава ще бъде много досадна задача да напиша ръчно всички стойности в колоната с ключова стойност на стъпката на денормализатора. някакво предложение за това? - person Deepesh; 27.02.2016
comment
@Deepesh: Можете да използвате ETL Metadata Injection. - person bolav; 27.02.2016
comment
Със сигурност ще опитам тази стъпка. Още веднъж благодаря :) @bolav - person Deepesh; 27.02.2016