Почему нет приемника JDBC Spark Streaming? - PullRequest
0 голосов
/ 09 февраля 2019

Я предлагаю неплохо обработать огромную таблицу JDBC, читая строки партиями и обрабатывая их с помощью Spark Streaming.Этот подход не требует чтения всех строк в память.Я полагаю, что нет мониторинга новых строк в таблице, а просто прочитал таблицу один раз.

Я был удивлен отсутствием реализации приемника JDBC Spark Streaming.Реализация Receiver не выглядит сложной.

Не могли бы вы описать, почему такой приемник не существует (этот подход плохая идея?) Или предоставить ссылки на реализации.

Я нашел Stratio / источник данных-получатель .Но он читает все данные в DataFrame перед обработкой Spark Streaming.

Спасибо!

1 Ответ

0 голосов
/ 09 февраля 2019

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

В то же самое, что вы описали,

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

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

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

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