Скорость Dplyr при подключении к базе данных Monetdblite/RSQLite на внешнем жестком диске?

Вопрос новичка.

Я использую R с dplyr для анализа больших объемов данных, но у меня нет доступа к серверной базе данных. Кроме того, внутренний жесткий диск моего компьютера слишком мал для баз данных, которые мне нужно создать. До сих пор я использовал monetdblite и RSQLite для хранения данных.

В: Насколько уменьшится скорость monetdblite/RSQLite, если я сохраню базы данных на внешнем жестком диске и подключу его к компьютеру через usb? Какие факторы определяют, насколько это возможно?

Или есть лучший альтернативный подход (все еще полагающийся на подключение к базе данных dplyr) в моей ситуации?


person Maarölli    schedule 10.08.2017    source источник
comment
Это будет зависеть от того, какой у вас диск и какое соединение. С точки зрения потребительского оборудования, USB 3.1 в наши дни почти так же быстр, как внутренний накопитель.   -  person Hong Ooi    schedule 10.08.2017


Ответы (2)


Трудно сказать, работает ли внешний диск медленнее. Например, если внутренний накопитель — это SSD, а внешний — классический «крутящийся диск», падения производительности более-менее можно ожидать, особенно при использовании сложных запросов. Я предлагаю вам просто попробовать с базой данных разумного размера и вашими запросами на обоих дисках. Существуют также различные инструменты проверки производительности диска (например, XBench в OSX), которые можно использовать для проверки производительности. Интересными показателями, на которые стоит обратить внимание, являются скорость последовательного сканирования и скорость произвольного доступа.

person Hannes Mühleisen    schedule 22.08.2017

Я использую monetDBLite для загрузки больших наборов данных в Rstudio. Из соображений безопасности у меня есть внешний SSD с USB 3.0, но мой встроенный жесткий диск также является SSD. Я использовал его в течение нескольких месяцев, и мой опыт резюмируется в следующем запросе:

ВЫБЕРИТЕ * ОТ Drug_db ГДЕ atc = 'L02BX03' ИЛИ ​​atc = 'L02BB04';

На встроенном: ‹ 2 секунды,

На внешнем: 6-7 минут

Запрос сканирует базу данных объемом ~15 Гб и возвращает ~30 000 строк из 14 переменных. По моему опыту, на самом деле намного быстрее скопировать файл на встроенный накопитель и выполнить там запросы по сравнению с выполнением запросов на внешнем SSD.

person Oskar Gauffin    schedule 04.02.2019