Прежде всего фактический потоковый источник потребовал бы надежного механизма для мониторинга обновлений, который просто не является частью интерфейса JDBC, и при этом он не является стандартизированной (если вообще вообще) функцией основных RDBM, а неупомяните другие платформы, к которым можно получить доступ через JDBC.Это означает, что потоковая передача из источника, подобного этому, обычно требует репликации журнала или аналогичных средств и сильно зависит от ресурсов.
В то же самое, что вы описали,
предполагает, что это хорошая идея - обрабатывать огромную таблицу JDBC, читая строки партиями и обрабатывая их с помощью Spark Streaming.Этот подход не требует чтения всех строк в память.Я полагаю, что нет мониторинга новых строк в таблице, но простое чтение таблицы один раз
на самом деле не является подходящим вариантом для потоковой передачи.Потоковое имеет дело с бесконечными потоками данных, в то время как вы спрашиваете это просто как сценарий для разбиения , и такие возможности уже являются частью стандартного соединителя JDBC (либо по диапазону, либо по предикату).
Кроме того, решения, основанные на приемниках, просто плохо масштабируются и эффективно моделируют последовательный процесс.В результате их приложения довольно ограничены и будут еще менее привлекательными, если данные ограничены (если вы собираетесь читать конечные данные последовательно на одном узле, нет смысла добавлять Spark в уравнение).