Spark JDBC параллелизм - PullRequest
       5

Spark JDBC параллелизм

0 голосов
/ 18 сентября 2018

Я работаю над сценарием использования, когда мне нужно выполнить разовую разгрузку источника данных JDBC, в моем случае это база данных SAP Hana.Я хотел разгрузить всю базу данных SAP Hana в HDFS / MapR FS.Изначально мы пробовали sqoop, но проблема с Sqoop зависит от поля первичного ключа, и он поддерживает только одно поле первичного ключа с помощью аргумента --split-by.Затем мы подумали, что планируем использовать Spark для создания Sqoop наборов данных.Просматривая различные опции JDBC, доступные в spark, например, этот пост https://forums.databricks.com/questions/14963/problems-doing-parallel-read-from-jdbc.html.Он также принимает только один столбец, тогда как в случае таблиц SAP Hana в основном он состоит из сопряженных ключей (нескольких ключей для формирования первичного ключа).

  1. Как spark читает источник JDBC?считывает ли он все данные из таблицы, а затем разделяет их по разделам в памяти между работниками?

  2. Как можно указать такую ​​опцию при чтении из источника JDBC SAP Hana и выполнить параллельное выполнение?прочитайте, уменьшив количество ошибок OOM (в приведенном выше случае вопрос № 1 - да)

  3. В некоторых таблицах SAP Hana даже нет первичных ключей, что является проблемой в наборах данных arge для переноса.

Пожалуйста, помогите мне в формировании правильного подхода и стратегии.

Заранее спасибо.

Маниш

1 Ответ

0 голосов
/ 18 сентября 2018

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

Контроллер Spark SAP HANA обеспечивает интеграцию HANA с Spark. Вам придется проверить его поддержку для таблиц с сопряженными первичными ключами и без первичных ключей.

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