Я работаю над сценарием использования, когда мне нужно выполнить разовую разгрузку источника данных 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 в основном он состоит из сопряженных ключей (нескольких ключей для формирования первичного ключа).
Как spark читает источник JDBC?считывает ли он все данные из таблицы, а затем разделяет их по разделам в памяти между работниками?
Как можно указать такую опцию при чтении из источника JDBC SAP Hana и выполнить параллельное выполнение?прочитайте, уменьшив количество ошибок OOM (в приведенном выше случае вопрос № 1 - да)
В некоторых таблицах SAP Hana даже нет первичных ключей, что является проблемой в наборах данных arge для переноса.
Пожалуйста, помогите мне в формировании правильного подхода и стратегии.
Заранее спасибо.
Маниш