Size: a a a

2020 September 05

IK

Igor K in pro.kafka
Доброе! Подскажите, поставил ksql из rpm пакета (CLI v5.3.3, Server v5.3.3) и в CLI на многие команды пишет InputMismatchException, хотя аналогичные команды отрабатывают на тестовом окружении к docker (CLI v0.10.0, Server v0.10.0)
Может кто встречался с проблемой
источник

ЕК

Евгений Кирин... in pro.kafka
Igor K
Доброе! Подскажите, поставил ksql из rpm пакета (CLI v5.3.3, Server v5.3.3) и в CLI на многие команды пишет InputMismatchException, хотя аналогичные команды отрабатывают на тестовом окружении к docker (CLI v0.10.0, Server v0.10.0)
Может кто встречался с проблемой
Давай весь стек ошибки.
источник

IK

Igor K in pro.kafka
Евгений Кирин
Давай весь стек ошибки.
ksql> SELECT * FROM riderLocations WHERE GEO_DISTANCE(latitude, longitude, 37.4133, -122.1162) <= 5 EMIT CHANGES;
line 1:95: mismatched input 'EMIT' expecting ';'
Statement: SELECT * FROM riderLocations WHERE GEO_DISTANCE(latitude, longitude, 37.4133, -122.1162) <= 5 EMIT CHANGES;
Caused by: line 1:95: mismatched input 'EMIT' expecting ';'
Caused by: org.antlr.v4.runtime.InputMismatchException
источник

IK

Igor K in pro.kafka
это пример из quickstart с https://ksqldb.io/quickstart.html, в докере всё отлично, а вот на бариметал с пакетами (confluent-ksql-5.3.3-1) никак
получилось только select стартануть в таком виде
ksql> SELECT * FROM riderLocations WHERE GEO_DISTANCE(latitude, longitude, 37.4133, -122.1162) <= 5;

Press CTRL-C to interrupt

ещё на инсерте ошибка
ksql> INSERT INTO riderLocations (profileId, latitude, longitude) VALUES ('c2309eec', 37.7877, -122.4205);
line 1:90: extraneous input '-' expecting {'NULL', 'TRUE', 'FALSE', STRING, INTEGER_VALUE, DECIMAL_VALUE}
Statement: INSERT INTO riderLocations (profileId, latitude, longitude) VALUES ('c2309eec', 37.7877, -122.4205);
Caused by: line 1:90: extraneous input '-' expecting {'NULL', 'TRUE', 'FALSE',
 STRING, INTEGER_VALUE, DECIMAL_VALUE}
источник

ЕК

Евгений Кирин... in pro.kafka
Коллеги, у меня вопрос про exactly-once (EOS): Если продьюсер отправил сообщение брокеру, брокер сохранил сообщение и отправил акноледжмент(ack), но ack не дошел по причине падения продьюсера. Поднялся новый инстенс продьюсера и отправил это сообщение еще раз (снова прочитал из источника). Как я понимаю sequence number у сообщения будет другой и брокер не распознает, что это дубликат и сохранит его. Есть способ, чтобы брокер определял сообщения по timestamp, а не sequence number?
источник

ER

Evgeny Rachlenko in pro.kafka
Евгений Кирин
Коллеги, у меня вопрос про exactly-once (EOS): Если продьюсер отправил сообщение брокеру, брокер сохранил сообщение и отправил акноледжмент(ack), но ack не дошел по причине падения продьюсера. Поднялся новый инстенс продьюсера и отправил это сообщение еще раз (снова прочитал из источника). Как я понимаю sequence number у сообщения будет другой и брокер не распознает, что это дубликат и сохранит его. Есть способ, чтобы брокер определял сообщения по timestamp, а не sequence number?
Есть чудная лекция Вик Гамов в ней подробно разбирает дополнительные опции , которые позволяют избежать дупликаций . idenpotence= true
источник

ER

Evgeny Rachlenko in pro.kafka
если я правильно запомнил добавляются в тело сообщения два дополнительный поля ProducerId , Sequence .
источник

ЕК

Евгений Кирин... in pro.kafka
источник

ЕК

Евгений Кирин... in pro.kafka
Evgeny если ты про это видео, то этот кейс там не объяснен.
источник

ЕК

Евгений Кирин... in pro.kafka
Evgeny Rachlenko
если я правильно запомнил добавляются в тело сообщения два дополнительный поля ProducerId , Sequence .
Это не поможет т.к. инстенс продьюсера будет новый, соответственно pid и seq number тоже обновятся
источник

ER

Evgeny Rachlenko in pro.kafka
Да это самое оно . там как раз пояснял Вик все стандартные моды работы кафки , а попутно растолковал что добавление опций producer idenpotence=true. позволяет кафке самой игнорировать дупликации. Она как я понял делает это за тебя,
источник

ER

Evgeny Rachlenko in pro.kafka
посмотри еще раз внимательно :)
источник

ЕК

Евгений Кирин... in pro.kafka
Evgeny Rachlenko
Да это самое оно . там как раз пояснял Вик все стандартные моды работы кафки , а попутно растолковал что добавление опций producer idenpotence=true. позволяет кафке самой игнорировать дупликации. Она как я понял делает это за тебя,
Это работет в случае, если брокер пропал, а тут продьюсер и это не решит проблему дубликатов.
источник

ER

Evgeny Rachlenko in pro.kafka
Евгений Кирин
Это работет в случае, если брокер пропал, а тут продьюсер и это не решит проблему дубликатов.
ладно покажи тест код , который дублит и падает.
источник

ES

Evgenii S in pro.kafka
Евгений Кирин
Коллеги, у меня вопрос про exactly-once (EOS): Если продьюсер отправил сообщение брокеру, брокер сохранил сообщение и отправил акноледжмент(ack), но ack не дошел по причине падения продьюсера. Поднялся новый инстенс продьюсера и отправил это сообщение еще раз (снова прочитал из источника). Как я понимаю sequence number у сообщения будет другой и брокер не распознает, что это дубликат и сохранит его. Есть способ, чтобы брокер определял сообщения по timestamp, а не sequence number?
Можно делать дедупликацию на консюмере. Вроде в кафка нет возможности делать дедупликацию кроме sequence number и idempotence=true
источник

VG

Vik Gamov in pro.kafka
Igor K
ksql> SELECT * FROM riderLocations WHERE GEO_DISTANCE(latitude, longitude, 37.4133, -122.1162) <= 5 EMIT CHANGES;
line 1:95: mismatched input 'EMIT' expecting ';'
Statement: SELECT * FROM riderLocations WHERE GEO_DISTANCE(latitude, longitude, 37.4133, -122.1162) <= 5 EMIT CHANGES;
Caused by: line 1:95: mismatched input 'EMIT' expecting ';'
Caused by: org.antlr.v4.runtime.InputMismatchException
Похоже это разные версии. Мне кажется (не помню точно) но в 5.3 ещё 0.9
источник

IK

Igor K in pro.kafka
Vik Gamov
Похоже это разные версии. Мне кажется (не помню точно) но в 5.3 ещё 0.9
я показал, что из примера, я не лоханулся
а так всё ставится из од одной репы
одна репа, все пакеты 5.3
источник

IK

Igor K in pro.kafka
]$ rpm -qa | grep -i confl
confluent-rest-utils-5.3.0-1.noarch
confluent-ksql-5.3.3-1.noarch
confluent-kafka-2.11-5.3.0-1.noarch
confluent-common-5.3.2-1.noarch
источник

VG

Vik Gamov in pro.kafka
Igor K
я показал, что из примера, я не лоханулся
а так всё ставится из од одной репы
одна репа, все пакеты 5.3
После выходных проверю
источник
2020 September 06

IK

Igor K in pro.kafka
Vik Gamov
После выходных проверю
Спасибо!
источник