Как сохранить набор данных в jdbc одновременно в разных таблицах?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как сохранить набор данных в jdbc одновременно в разных таблицах?

Сообщение Anonymous »


У нас есть набор данных со столбцом с именем «таблица», который нужно сохранить в jdbc, в зависимости от значения таблицы.

Мы должны фильтровать по таблице и каждому хранилищу результатов присваивать собственную таблицу.

final Dataset пыли = (создать набор данных).cache(); окончательный список таблиц = пыль.выбрать("таблица") .collectAsList() .транслировать() .map(s -> s.getAs("таблица")) .collect(Коллекторы.toList()); table.forEach(таблица -> { окончательный набор данных tableDs = пыли.фильтр(col("таблица").equalTo(таблица)).drop(col("таблица")); таблицаDs.write() .format("jdbc") .option(URL, etlConfig.getUrl() + "?currentSchema=" + схема) .option(ПОЛЬЗОВАТЕЛЬ, etlConfig.getUserName()) .option(ПАРОЛЬ, etlConfig.getPassword()) .option(DRIVER, ORG_POSTGRESQL_DRIVER) .option(DB_TABLE, имя_таблицы) .mode(ДОБАВЛЕНИЕ) .сохранять(); }); [*]Как заменить tables.forEach на перераспределение по столбцу «таблица» для одновременного сохранения в разных таблицах?

Каждый раз при выполнении tables.forEach мы ожидаем операции записи.
[*]
Я не хочу использовать функции параллелизма Java, такие как ExecutorService или другие. Потому что я хочу удалить ...cache(); и выполнить изменения через один канал (создать набор данных => фильтровать по таблице => сохранить в jdbc). Все сохранения в таблицы начинаются одновременно (а не по одному)
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»