Просто вы говорите, что посмотрели руководство. А в руководстве есть функция setDTthreads. Она и нужна. Дальше, я думаю, понятно, сколько потоков выставлять
Возможно оперативной памятью сервера с базой пользуется не только ваш процесс по загрузке. Возможно там ещë куча фоновых процессов (разложить по партициям, мало ли что ещë)
К тому же есть системы управления базами данных, которые наоборот лучше работают, если вставлять много, а не по строчке. Потому что каждая вставка инициирует кучу процессов в фоне. И вот вы, не дожидаясь окончания фоновых процессов, вставляете следующую пачку. А вся оперативка занята ещё фоновой обработкой предыдущей пачки
сейчас залили обе эти большие таблицы по 6 млн строк через питон чанками по 100 тыс строк. Никаких проблем не возникло... А через R эти же таблицы не заливаются даже чанками по 50 тыс строк..
Думаю тут дело именно в настройках data.table в R или может в найтройках dbi ...
Полезные запросы в кликхаусе: SHOW PROCESSLIST (текущие запросы показывает с метриками, в том числе память на запрос), посмотрите системную таблицу с мëрджами (system.merges). Показывает, какие мëрджи (объединения партов, сортировка, чистка) сейчас идут на сервере. Эти мëрджи бывают очень затраты по ресурсам