как заставить ksql печатать только последние записи - PullRequest
0 голосов
/ 06 декабря 2018

Я выполняю следующий запрос на ksql.но я хочу только последние 20 записей .

SELECT MAX(ROWTIME),TIMESTAMPTOSTRING(ROWTIME, 'yyyy-MM-dd HH:mm:ss'),SERIAL,COUNT FROM MY_STREAM WHERE TIMESTAMPTOSTRING(ROWTIME, 'yyyy-MM-dd HH:mm:ss') >= DATE AND TIMESTAMPTOSTRING(ROWTIME, 'yyyy-MM-dd HH:mm:ss') <= DATE2 GROUP BY SERIAL,COUNT LIMIT 20;

1 Ответ

0 голосов
/ 06 декабря 2018

Вы не можете сделать это в KSQL в настоящее время.Поскольку KSQL имеет дело с неограниченными данными, «последние» записи не имеют особого смысла, потому что данные (потенциально) всегда поступают.

В зависимости от того, что вы пытаетесь сделать, вы можете использовать предикат ROWTIME для фильтрации данных на основе временного диапазона.

Возможно, вам придется использовать вместо этого Kafka Streams для доступа к данным в шаблоне, который вы описываете.

Возможно, вы также захотите проверить существующую проблему, чтобы сообщить об этом здесь: https://github.com/confluentinc/ksql/issues/ и, если ее нет, создайте ее https://github.com/confluentinc/ksql/issues/new

...