запись данных в кассандру с определенным интервалом - PullRequest
0 голосов
/ 05 октября 2018

Я выполняю какую-то обработку в spark и хочу реализовать функциональность, которая независимо от выполняемой обработки, я хочу запланировать таймер (с интервалом в 5 минут), который будет сохранять некоторые данные в Cassandra (или позволитьскажем, любой другой источник)

Чтобы сделать его более простым для понимания, это может звучать как две задачи, выполняющиеся параллельно, одна отслеживает 5-минутный интервал, который записывает в Cassandra, а другая выполняет всеобработка, о которой я сказал, это сделать.

Это похоже на то, что я делаю обработку потоковых данных, а затем я кэшировал выходные данные этой обработки в spark как временную таблицу, и эта кэшированная таблица снова используется где-то в sparkсценарий, но только через некоторое время я хочу сохранить в Кассандре.

Любая помощь приветствуется

1 Ответ

0 голосов
/ 06 октября 2018

Существует два API, которые вы можете использовать:

1 - Spark Streaming и использовать функцию mapWithState: https://spark.apache.org/docs/latest/streaming-programming-guide.html

В этом случае вы можете установить тайм-аут на 5 минут для mapWithState и записатьвыход на Кассандру.

2 - Spark Structured Streaming и функция mapGroupsWithState / flatMapGroupsWithState: это дает вам большую гибкость в установке времени ожидания (вы можете использовать как время события, так и время обработки).Недостатком является то, что API является очень новым, а поддержка Cassandra ограничена.

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