sSpark структурированная потоковая передача PostgreSQL updatestatebykey

#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 и обрабатывать их в любом желаемом формате приемника.