Как выборочно удалять строки из многораздельной базы данных kdb?

Я хочу удалить некоторые строки из таблицы многораздельной базы данных, но этот запрос не будет работать:

delete from myPartTable where date=2013.05.30,col1<>"A"

Я бы предпочел не загружать всю таблицу в память, удалять из rdb, а затем записывать обратно на диск. Можно ли удалить с диска таблицу напрямую?


kdb
person Robert Kubrick    schedule 17.06.2013    source источник


Ответы (1)


kdb сам по себе не предоставляет простой способ управления секционированными таблицами. Два варианта:

  1. Чтобы уменьшить использование памяти, получите индексы строк, которые вы хотите удалить. Пройдитесь по столбцам и удалите. Это стандартная практика сокращения использования памяти для операций с многораздельной базой данных.

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

person Ryan Hamilton    schedule 17.06.2013