Запросы в RPostgreSQL очень медленные - PullRequest
0 голосов
/ 25 августа 2018

В настоящее время я создаю Shiny APP, используя несколько запросов к базе данных PostgreSQL (в основном операторы SELECT и INSERT).Приложение работает, но я пытаюсь сделать это быстрее.Когда я сравниваю время выполнения одного и того же запроса с использованием пакета RPostgreSQL и клиента db, такого как Postico, он берет в 8 раз больше с пакетом RPostgreSQL.

Любые идеи о способах повышения производительности или подключения к PostgreSQLбаза данных от R?

Спасибо

1 Ответ

0 голосов
/ 25 августа 2018

Слышали ли вы когда-нибудь о пакете dbplyrb )?

Я бы порекомендовал его, поскольку этот пакет позволяет dplyr (без b ) для использования с базами данных SQL.

Существует множество преимуществ, поскольку способ взаимодействия с базами данных изменится

от этого:

enter image description here

до этого:

enter image description here

Эти изображения взяты из замечательной статьи под названием "Базы данных с использованием R" Эдгара Руиса (2017).Вы должны взглянуть на это ЗДЕСЬ для получения более подробной информации.

Основные преимущества, представленные мистером Руисом, и я цитирую:

" 1)Проведите исследование данных по всем данным. Вместо того чтобы планировать, какие данные импортировать, мы можем сосредоточиться на анализе данных в базе данных, что, в свою очередь, должно дать более быстрое понимание.* 2) Используйте SQL Engine для запуска преобразований данных - фактически мы переносим вычисления в базу данных, потому что dplyr отправляет запросы SQL в базу данных.

3) Сбор целевого набора данных - после ознакомления с данными и выбора точек данных, которые будут совместно использоваться или моделироваться, можно будет использовать итоговый запрос для возврата только этих данных в память в R.

4) Весь ваш код находится в R! - поскольку мы используем dplyr для связи с базой данных, нет необходимости менять язык или инструменты для исследования данных."

Таким образом, вы, вероятно, получите скорость, которую вы ищете, с dbplyr / dplyr.

Вы должны попробовать.

Вы можете найти больше информации о нем и о том, как установить соединение с вашим PostgreSQL сервером, используя пакет DBI , по адресу:

https://cran.r -project.org / web / packages / dbplyr / vignettes / dbplyr.html

и

https://rviews.rstudio.com/2017/05/17/databases-using-r/

...