Вот казалось бы, берёшь sqlalchemy, делаешь SELECT, потом INSERT. Теоретически, sqlalchemy позволяет передавать сразу массив данных, который каким-то-там executemany отрабатывает за один раз. Я так и не смог заставить это работать для запросов типа
SELECT * FROM table WHERE id in (.....), так что пришлось делать их по одному, а INSERT при передаче массива, судя по всему, тоже выполняет их по одному и это жутко тормозит (полагаю, он синхронно ждёт своего ответа от сервера на каждую строчку прежде чем слать следующую). В конце-концов, пришлось по старинке самому формировать строчки, самому же разбивая данные на куски не очень большого размера. Но вот с текстами в utf8 это не сработало, пришлось так и оставить вставку по одной строчке.
Да и не только в питоне дело. Весь этот линукс -- неэргономичное говнище, в котором нельзя ни шагу ступить без часового гугления про всяческие засады на пути.