Как выполнить массовое обновление в kdb+

Возможна массовая вставка в секционированную таблицу. Я пробовал несколько комбинаций синтаксиса, и ни одна из них не работает.

Ex.

`:2015.12/calls/ upsert (1; 4389; 2015.12.01T07:56:50) // single upsert works
`:2015.12/calls/ upsert (1 2; 4389 4397; 2015.12.01T07:56:50 2015.12.01T07:56:58) // do not work
`:2015.12/calls/ upsert ((1; 4389; 2015.12.01T07:56:50);(2; 4397; 2015.12.01T07:56:58)) // do not work.

Спасибо


person nohros    schedule 11.02.2016    source источник


Ответы (1)


Вам нужно upsert создать таблицу, т. е.:

/ substitute `COL1`COL2`COL3 with actual column names
`:2015.12/calls/ upsert flip `COL1`COL2`COL3!(1 2; 4389 4397; 2015.12.01T07:56:50 2015.12.01T07:56:58)
person Igor Korkhov    schedule 11.02.2016
comment
Вы знаете, как это сделать с помощью интерфейса java или c#? Мне нужно построить гигантскую струну или есть лучшая альтернатива? - person nohros; 12.02.2016
comment
@nohros использует объект c.Flip для создания таблицы в java/c#. Это будет правильно сериализовано через API. Итак, вы можете сделать что-то вроде (при условии, что k - это объект c) k.k("upsert", ":2015.12/calls/",flip) - person Manish Patel; 12.02.2016