Как создать значение Buffer в Pentaho Kettle Transformation - PullRequest
1 голос
/ 04 июня 2019

У меня есть некоторые значения, поступающие с течением времени (поток) и по нескольким различным строкам, которые необходимо обработать как одну строку.

Входящие данные выглядят примерно так:

|timestamp   |temp|otherStuff|
|------------|----|----------|
|...         |    |other     |
|04:20:00.321|19.0|other     |
|04:20:01.123|20.5|other     |
|04:20:02.321|22.5|other     |
|04:20:03.234|25.5|other     |
|04:20:04.345|23.5|other     |
|...(new data coming in)     |

То, что мне нужно, может выглядеть примерно так:

|val0|val1|val2|...|valN  |
|----|----|----|   |------|
|... create new row,      |
|as new data arrives      |
|23.5|25.5|23.5|...|valN  |
|25.5|22.5|20.5|...|valN-1|
|22.5|20.5|19.0|...|valN-2|

Я не нашел хорошего способа решить это с чайником. Я также использую службу данных (в основном, базу данных с предопределенным количеством строк, которые обновляются при поступлении нового набора данных), которая хранит данные так же, как показано в первом примере.

Это означает, что я также мог бы использовать SQL, чтобы перевернуть таблицу (что я тоже не знаю, как это сделать). Он не был бы таким же чистым, как чайник, но сработал бы.

Для лучшего понимания, еще один пример: это то, что входит:

enter image description here

И вот что мне нужно для преобразования моих данных:

enter image description here

Есть ли какой-нибудь хороший способ добиться этого?

Приветствие.

1 Ответ

1 голос
/ 07 июня 2019

Спасибо @ jxc,

шаг Analytic Query сделал свое дело.

Вот скриншот того, как я это сделал.

enter image description here

как указано @jxc, вам необходимо

Добавить N + 1 полей с Subject = temp, Type = Lag N строк BACKWARD в get Subject и N от 0 доN

(temp = Value в моем случае)

...