вставить данные в vertica из MATLAB

Мне нужно вставить миллионы данных из MATLAB в Vertica. Я попытался использовать функцию datainsert, представленную в MATLAB, но она кажется медленной, так как для 3000 записей требуется около 6 секунд. Другие функции fastinsert и insert работают еще медленнее. Есть ли более быстрый способ вставки данных?


person Hariprasad Rao    schedule 25.02.2016    source источник
comment
Есть ли какой-нибудь метод для Vertica, который, как известно, работает быстрее (другой язык программирования/импорт из файла или что-то еще)?   -  person Daniel    schedule 25.02.2016
comment
Собственный COPY Vertica - это один из методов, упомянутых @Up_One, но я не уверен, смогу ли я вставить в таблицу только выбранные столбцы, что мне нужно для моей работы. Только выбранные столбцы должны быть вставлены, а другие должны быть оставлены нулевыми для более поздних целей.   -  person Hariprasad Rao    schedule 26.02.2016


Ответы (1)


Сделайте себе одолжение и экспортируйте данные в формат csv. Подробнее см. по этой ссылке. Производительность Vertica на последовательных операторах вставки низкая. Вы должны использовать собственную команду Vertica COPY для загрузки данных из экспортированного CSV-файла, которая будет выполнять около 1 миллиона строк в секунду в небольшом кластере с одним узлом.

person Up_One    schedule 25.02.2016
comment
Мои данные находятся в массиве ячеек, который нельзя записать с помощью функции csvwrite, указанной в ссылке. - person Hariprasad Rao; 26.02.2016
comment
Массив ячеек имеет временную метку даты и времени, которая представляет собой строку для всех записей. - person Hariprasad Rao; 26.02.2016
comment
Также мне нужно вставить данные только в несколько столбцов таблицы, а не во все. - person Hariprasad Rao; 26.02.2016
comment
Итак, я думаю, вы не можете передать данные в текстовый файл? - и вы можете использовать команду копирования для вставки только в несколько столбцов, а не во все, используя опцию заполнителя. - person Up_One; 29.02.2016