#postgresql #scala #apache-spark #spark-structured-streaming
#postgresql #scala #apache-spark #spark-структурированная потоковая передача
Вопрос:
Как обновить состояние ВЫХОДНОЙ ТАБЛИЦЫ с помощью вычисления Spark structured streaming, запускаемого изменениями во ВХОДНОЙ таблице PostgreSQL?
Поскольку таблица пользователей реального сценария была обновлена user_id = 0002
, как запустить Spark-вычисления только для этого пользователя и записать / обновить результаты в другую таблицу?
Комментарии:
1. необходимо ли использовать kafka с bottledwater ? или это может быть достигнуто только с помощью потоковой передачи spark?
2. На данный момент Spark не поддерживает потоки, инициируемые событиями. Вы могли бы написать приемник, который использует NOTIFY Postgres.
3. Bottledwater больше не разрабатывается активно. Я бы посоветовал перейти на Linkedin databus.
Ответ №1:
Хотя готового решения не существует, вы можете реализовать его следующим образом.
Вы можете использовать шину данных Linkedin или другие подобные инструменты, которые обрабатывают журналы базы данных и создают соответствующие события для kafka. Инструмент отслеживает изменения в журналах bin базы данных. Вы можете написать соединитель kafka для преобразования и фильтрации данных. Затем вы можете использовать события из kafka и обрабатывать их в любом желаемом формате приемника.