2015-12-16 6 views
1

Я вытаскиваю данные из базы данных оракула в R. Таблица данных слишком велика (> 15 ГБ) и поэтому рискует слишком много заполнить ОЗУ (32 ГБ) или сбой сессии R заставляет меня перезапустить процесс.Можно ли вытащить данные в R и сохранить входящий поток напрямую/одновременно на жесткий диск?

Возможно ли выполнить запрос в базе данных и сохранить входящие данные (данные, загружаемые) напрямую/одновременно на жесткий диск (.RDS и т. Д.)?

+0

Возможно, вы тянете слишком много данных? Все поля необходимы для того, что вы хотите сделать после? (запись на диск не решит проблемы здесь, вы можете просто попросить csv дамп таблицы, но это не решит вашу проблему с крахом, загрузив слишком много данных в ваш сеанс R в любом случае ...) – Tensibai

+0

Какой интерфейс вы используете? Если вы подключаетесь через «ROracle», вы можете отправить свой запрос через 'dbSendQuery' и' fetch' столько строк, сколько хотите, сохраните их и повторите. – nicola

+0

@ Tensibai Спасибо, но мне нужно вытащить всю таблицу для анализа. Пока вы не видите вариант, по крайней мере, пока я не пойму, как я хочу обобщить данные. – dsauce

ответ

0

Один из способов - это «страница» через строки сказать 100k за один раз с циклом и сохранить каждый как .rds, как table_1_100000.rds. Как только вы закончите, я рекомендую проверять идентификаторы (отдельно) от базы данных, чтобы убедиться, что у вас есть все строки (концепция контрольной суммы).