Как импортировать большую таблицу базы данных в R - PullRequest
1 голос
/ 06 мая 2019

Я пытаюсь импортировать большую таблицу базы данных в R, чтобы провести глобальный анализ.Я подключаюсь к Oracle DB с помощью ROracle и использую dbGetquery.Сделайте минимальный выбор и необходимо, чтобы предложения непосредственно в запросе уменьшали объем набора данных, но все равно это 40 столбцов для 12 миллионов строк.

Мой компьютер имеет только 8 ГБ ОЗУ, как я могу справиться с этим?Нет способа хранить эти данные на диске, а не в оперативной памяти?или что-то подобное?То же самое, что сделано в SAS, прекрасно работает.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 06 мая 2019

Мало идей:

  1. Может быть, можно выполнить какое-то агрегирование на стороне сервера?

  2. Вы собираетесь что-то сделать с этими даннымив R, верно?Таким образом, вы можете попытаться не загружать данные, а создать объект tbl и произвести манипуляции и агрегирование в R

    library(dplyr)

    my_tbl <- 'SELECT ... FROM ...' %>% sql() %>% tbl(con, .)

где con ваше соединение

0 голосов
/ 11 июля 2019

Вот пара идей, которые вы можете рассмотреть.

library(RODBC)
dbconnection <- odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server;Server=Server_Name; Database=DB_Name;Uid=; Pwd=; trusted_connection=yes")
initdata <- sqlQuery(dbconnection,paste("select * from MyTable Where Name = 'Asher';"))
odbcClose(channel)

Если вы можете экспортировать таблицу в виде файла CSV ...

require(sqldf)
df <- read.csv.sql("C:\\your_path\\CSV1.csv", "select * from file where Name='Asher'")
df
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...