Чтение Kafka topi c через код Pyspark и обновление событий (Вставка, Обновление, Удаление) на сервере SQL не будет правильным подходом, что я чувствую.
Причина почему?
Рассмотрим событие вставки, которое происходит в Кафке. В этом случае соответствующий ключ не будет доступен в целевой таблице и может быть записан непосредственно в целевой таблице без каких-либо проблем. Но когда вы обрабатываете другие события (обновление и удаление) из Кафки. Мы не можем записать его в таблицу Target напрямую, не сравнивая существующее значение ключа. Чтобы сравнить это значение ключа, весь набор данных необходимо вернуть в память в виде фрейма данных или RDD (как мы знаем, pyspark работает в памяти) для сравнения и перезаписи целевой таблицы. Обработка записей всей целевой таблицы В памяти не будет правильного подхода.
Альтернативное решение: Мы можем выбрать Cassandra для этого решения, так как C* работает в режиме Upsert. Но моделирование данных Cassandra отличается от SQL server.