Ускорить odb c :: dbFetch - PullRequest
       14

Ускорить odb c :: dbFetch

8 голосов
/ 05 марта 2020

Я пытаюсь проанализировать данные, хранящиеся в базе данных SQL (сервер MS SQL) в R и в ма c. Типичные запросы могут возвращать несколько ГБ данных, а вся база данных - несколько ТБ. До сих пор я использовал пакет R odbc, и он, кажется, работает довольно хорошо.

Однако dbFetch() кажется очень медленным. Например, несколько сложный запрос возвращает все результаты за ~ 6 минут на сервере SQL, но если я запускаю его с odbc, а затем пытаюсь dbFetch, потребуется около часа, чтобы получить полные 4 ГБ в data.frame. Я пробовал извлекать куски, что помогает скромно: { ссылка }. Я задаюсь вопросом, есть ли другой способ более быстрой передачи данных на мою ма c, и мне здесь нравится мысль: Быстрое чтение очень больших таблиц в виде фреймов данных

Каковы некоторые стратегии для ускорения dbFetch, когда результаты запросов представляют собой несколько ГБ данных? Если проблема заключается в создании объекта data.frame из больших таблиц, можно ли сэкономить путем «выборки» другим способом? Есть ли другие пакеты, которые могут помочь?

Спасибо за ваши идеи и предложения!

...