Среда - AWS Kinesis Analytics (но я могу взять любую предложенную концепцию потокового SQL и применить ее к своей среде)
У меня есть такие исходные данные, которые непрерывно передаются в:
epoc_timestamp baic_id station floor ap
1552314547 alex bloor platform be-ye12
1552314548 alex bloor platform be-ye12
1552314549 alex bloor platform ye-ab70
1552314550 alex bloor platform ye-ab70
1552314551 alex bloor platform ye-ab70
1552314555 alex bloor platform ye-ab70
1552314559 alex bloor platform ge-ye30
Я ищу, чтобы последний "ap" был записан, разделен по baic_id (есть несколько, а не просто "alex", как показано выше) и сгруппирован в 10-секундные окна.Таким образом, результат из приведенных выше данных будет выглядеть следующим образом:
epoc_timestamp baic_id station floor ap
1552314540 alex bloor platform ye-ab70
1552314550 alex bloor platform ge-ye30
Примечание : хотя это довольно просто в стандартном SQL с чем-то вроде
LAST_VALUE(ap) OVER (PARTITION by baic_id ORDER by epoc_timestamp RANGE МЕЖДУ НЕПРЕРЫВНЫМ ПРЕДВАРИТЕЛЬНЫМ И НЕПРЕРЫВНЫМ СЛЕДУЮЩИМ)
Я использую потоковый SQL, что означает отсутствие «конца» для потока, и Kinesis Analytics не разрешитИспользование СЛЕДУЮЩЕГО СЛЕДУЮЩЕГО.Поэтому, если я использую LAST_VALUE, он получает только значение CURRENT, поскольку не может видеть следующие строки.