Как получить время начала или окончания окна из темы кафки, соответствующей оконной таблице KSQL? - PullRequest
0 голосов
/ 26 июня 2018

Я хочу получить метку времени запуска окна (здесь это 1530008520000) из команды kafka-console-consumer.

Работает с KSQL:

ksql> select * from DEV_MONITOR_RULE_2557_104782_233_2_TABLE;

1530008581051 | 2557 : Window{start=1530008520000 end=-} | 2557 | 2 | 1530008581051

а с кафкой-консоль-потребителем не работает?

./bin/kafka-console-consumer --zookeeper 10.12.0.157:2181 --topic DEV_MONITOR_RULE_2557_104782_233_2_TABLE

{"HITCOUNTS":2,"TENANTID":2557,"HITTIME":1530008581051}

Как напечатать время запуска окна (здесь 1530008520000) из kafka-console-consumer?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Вы пробовали опцию kafka-console-customer print.timestamp=true?

$ kafka-console-consumer --property print.timestamp=true ...
0 голосов
/ 27 июня 2018

Время начала окна отражается в ROWTIME сообщения KSQL и в метке времени сообщения Kafka. К этой отметке времени вы можете получить доступ, используя стандартные API для работы с сообщениями Kafka.

AFAIK kafka-console-consumer не поддерживает отображение метки времени. Однако что-то вроде kafkacat делает.

Вот некоторые агрегированные данные в KSQL, где ROWTIME показывает начало окна (и TIMESTAMPTOSTRING используется для его симпатичной печати):

ksql> SELECT TIMESTAMPTOSTRING(ROWTIME, 'yyyy-MM-dd HH:mm:ss'), ROWTIME, STARS, STAR_COUNT FROM RATINGS_AGG2;
2018-06-27 09:30:00 | 1530091800000 | 1 | 2
2018-06-27 09:30:00 | 1530091800000 | 4 | 6
2018-06-27 09:30:00 | 1530091800000 | 2 | 2
2018-06-27 09:30:00 | 1530091800000 | 3 | 3

Теперь та же тема в kafkacat:

$ kafkacat -b localhost:9092 -C -K: \
  -f '\nTimestamp: %T\t\tValue (%S bytes): %s' \
  -t RATINGS_AGG2

Timestamp: 1530091800000                Value (26 bytes): {"STAR_COUNT":1,"STARS":1}
Timestamp: 1530091800000                Value (26 bytes): {"STAR_COUNT":2,"STARS":1}
Timestamp: 1530091800000                Value (26 bytes): {"STAR_COUNT":3,"STARS":3}
Timestamp: 1530091800000                Value (26 bytes): {"STAR_COUNT":5,"STARS":1}
Timestamp: 1530091800000                Value (26 bytes): {"STAR_COUNT":6,"STARS":3}
Timestamp: 1530091800000                Value (26 bytes): {"STAR_COUNT":7,"STARS":1}
Timestamp: 1530091800000                Value (26 bytes): {"STAR_COUNT":7,"STARS":3}
Timestamp: 1530091800000                Value (26 bytes): {"STAR_COUNT":9,"STARS":1}
Timestamp: 1530091800000                Value (26 bytes): {"STAR_COUNT":9,"STARS":3}
...