Упорядочивание событий в агрегатах окна структурированной потоковой передачи в режиме добавления - PullRequest
0 голосов
/ 06 мая 2020

Я столкнулся с проблемой структурированной потоковой передачи с помощью Spark.

Текущая настройка: у меня есть поток данных, исходящий от kafka. У каждого сообщения есть время события. Я использую это время событий, чтобы создать агрегаты окон и правило водяного знака для удаления состояния. Режим вывода - это режим добавления.

Цель: мне нужно упорядочить агрегаты окон по мере их истечения, чтобы я мог обрабатывать эти события в порядке четности windows. Я ожидаю, что состояние windows истечет последовательно из-за моего скользящего окна.

Проблема: Иногда порядок печати сообщений не является последовательным на основе windows. Например,

| [2020-06-11 08:02:00, 2020-06-11 08:03:00] |

| [2020-06-11 08:01: 00, 2020-06-11 08:02:00] |

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

1 Ответ

1 голос
/ 07 мая 2020

Это не в архитектуре (пока). Многие сообщения здесь на ТАК развеивают это понятие.

Как cricket_007 заявляет в многочисленных сообщениях, лучше всего оставить сортировку нижестоящим системам в целом. Это также более гибко, вся идея РСУБД заключается в том, что исправление порядка сортировки данных менее актуально - если не учитывать кластеризацию.

Если вы посмотрите на этот вариант использования https://mapr.com/blog/real-time-analysis-popular-uber-locations-spark-structured-streaming-machine-learning-kafka-and-mapr-db/ тогда вы видите, что сортировка не играет никакой роли. Тем не менее, я вижу много запросов, но многие могут достичь цели без сортировки.

Темы с одним разделом являются результатом для меньших объемов, при условии, что порядок сортировки установлен «производителем» и этот порядок приемлем. Кроме того, вы можете рассмотреть K SQL и записать в один раздел KAFKA Topi c для последующего чтения или потоки KAFKA с Java, Scala.

Я думаю, проблема в том, что как из сообщения, которое я видел несколько лет, go:

Основа c t enet структурированной потоковой передачи заключается в том, что запрос должен возвращать тот же ответ в потоковом или пакетном режиме. Мы поддерживаем сортировку в полном режиме, потому что у нас есть все данные, и мы можем правильно их отсортировать и вернуть полный ответ. В режиме обновления или добавления сортировка вернет правильный ответ только в том случае, если мы можем пообещать, что записи с более низкой сортировкой поступят позже (а мы не можем). Следовательно, это запрещено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...