2013-03-14 8 views
1

У меня есть задача, которая требует загрузки файлов журнала, которые слишком велики для моей памяти, чтобы она сразу загружалась. Поэтому мне нужно, как загрузить файл на разных кусках ..Q/kdb + чтение файлов журнала по chunk

Я знаю, что:

-11!(n; filename) 

загружает первый п кусок из файла, но как я могу загрузить остальные куски ??

Спасибо!

ответ

3

Возможно, ваш файл журнала вызывает функцию upd, если это типичная установка тикер-установки. Переопределите эту функцию, чтобы игнорировать начальные значения во втором прогоне, не вставляя их в таблицу, позволяя разделить загрузку на части.

upd:{i+:1; if[i within 100000 200000; ignore x; storeSomewhere x]}; 

Затем воспроизведите весь файл -11!. Контролируйте, какие части фактически сохраняются, изменяя условность в предложении if.

+0

Спасибо за ответ! Только еще пару вещей, для переопределения обновления, какую функцию я должен использовать? И после того, как я переопределяю обновление, должен ли я использовать -11! (N; filename), чтобы получить следующие n строк? – user1948847