Как обновлять sh фрейм метаданных в потоковом приложении каждые 5 минут? - PullRequest
0 голосов
/ 08 января 2020

Я использую версию spark- sql 2.4.x, разъем datastax-spark-cassandra для версии Cassandra-3.x. Наряду с kafka.

У меня есть сценарий для некоторых финансовых данных, поступающих из kafka topi c, скажем, financeDf Мне нужно переназначить некоторые поля из metaDataDf = //, загруженного из таблицы cassandra для просмотра. Но эту таблицу cassandra (metaDataDf) можно обновлять один раз в час.

В потоковом приложении spark- sql как получать последние данные из таблицы cassandra за каждый час?

Я не хочу загружать эти данные metaDataDf для каждой записи, которую я получаю из topi c, т.е. financeDf.

Как это должно быть сделано / обработано? любая помощь, пожалуйста ..

1 Ответ

1 голос
/ 08 января 2020

У вас есть больше вариантов, как сделать что-то подобное, в основном, когда вы гуглите, попробуйте сосредоточиться на искровом обогащении со стати c данных . Уже есть некоторые ответы на переполнение стека.

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

  1. Введите какое-то специальное событие в Кафке, которое будет создано внешней системой и уведомит вас, что ваша Кассандра была изменена (это полностью точно и немедленно обновлено)
  2. Ввести постоянный входной поток или, возможно, существует аналогичный механизм в структурированной потоковой передаче. В основном, это создаст отдельную операцию вывода, которая будет читать Cassandra каждый интервал потоковой передачи и обновлять кеш, если он отличается (конечно, он не обновляется сразу после изменения, но с ближайшим интервалом потоковой передачи).
  3. У меня есть Также видно решение с оконной функциональностью, но опять оно обновляется только через некоторое время.

Конечно, есть и другие возможности, все зависит от ваших предпочтений.

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