Я хочу разбить таблицу kdb, поэтому мне нужно сначала перечислить столбцы символов. Я использую оператор .Q.en
для выполнения этой задачи:Как перечислить несколько столбцов в таблице kdb?
mytable_mem_enum: .Q.en[`$sym_path] mytable_mem
/generate partition schema
(`$db_path;``!((17;2;9);(17;2;9))) set ([]ts:`time$(); msg_type:`symbol$(); price_type:`byte$(); memo:`symbol$())
/store
(`$db_path) upsert (select ts,msg_type,pricetype,memo from mytable_mem_enum)
Q создает файл с именем sym
в каталоге I, указанном в sym_path
. Этот файл содержит перечисления для всех столбцов символов? В чем разница между .Q.en
и синтаксисом:
([] ti:09:30:00 09:31:00; s:`:/db/sym?`ibm`msft; p:101 33f)
Интересно, делает .Q.en всегда создает «сим» файл или можно выбрать другое имя? Если мы будем перечислять вручную, мы должны создать один файл для каждого столбца символов, я думаю. –
Вы можете изучить исходный код 'k' .Q.en, чтобы узнать, как именно он делает то, что он делает. Он определен в 'q.k', или вы можете увидеть его, оценив' .Q.en'. Короткий ответ: да, это возможно, и вам не нужно иметь отдельные файлы для каждого столбца. Например, вы можете сделать новую версию .Q.en для перечисления на основе собственного файла sym. – skeevey