Q/kdb+ чтение файлов журнала по частям

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

Я знаю это:

-11!(n; filename)

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

Спасибо!


person user1948847    schedule 14.03.2013    source источник


Ответы (1)


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

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

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

person John at TimeStored    schedule 15.03.2013
comment
Спасибо за ответ! Еще пара моментов, для переопределения upd, какую функцию мне следует использовать? И после того, как я переопределю upd, должен ли я просто использовать -11!(n; имя файла), чтобы получить следующие n строк? - person user1948847; 15.03.2013