Загрузка огромных таблиц с помощью INSERT INTO test VALUES в MonetDBLite

В моем случае я генерирую данные во время выполнения, и стоимость сериализации таких данных в файл CSV и последующей загрузки в MonetDBLite с использованием COPY будет потенциально выше, чем при использовании чего-то вроде INSERT INTO tablename VALUES. Учитывая, что MonetDBLite не использует DBConnections, как в ODBC/iODBC, означает ли это, что мне не нужно очищать память с помощью явных операторов COMMIT, или мне все равно нужно запускать COMMIT после загрузки некоторого ГБ данных в таблицу, чтобы не занять всю доступную основную память? Заранее спасибо.


person jackb    schedule 28.03.2019    source источник


Ответы (1)


Какой MonetDBLite вы используете? Я думаю, что в этом случае вы можете использовать добавление из памяти для очень быстрой загрузки данных. Для R/Python мы можем напрямую добавлять из фреймов данных, для C этот процесс немного менее удобен.

person Hannes Mühleisen    schedule 28.03.2019
comment
Да, я использую C, но я ищу не простое решение, а наиболее эффективное для MonetDBLite-C. Я использую тот, который находится прямо из репозитория github. Как я могу использовать добавление из памяти в текущем API? - person jackb; 28.03.2019
comment
Хорошо, я нашел ваш предыдущий ответ на stackoverflow.com/a/52254589/1376095. - person jackb; 29.03.2019