Q Language - функции обслуживания
.Q.en
.Q.en- это двоичная функция, которая помогает развернуть таблицу путем перечисления столбца символов. Это особенно полезно, когда мы имеем дело с историческими БД (развернутыми, таблицами разделов и т. Д.). -
.Q.en[`:directory;table]
где directory это домашний каталог исторической базы данных, где sym file расположен и table таблица, которую нужно перечислить.
Перечисление таблиц вручную не требуется, чтобы сохранить их как развернутые таблицы, так как это будет сделано с помощью -
.Q.en[`:directory_where_symbol_file_stored]table_name
.Q.dpft
В .Q.dpftФункция помогает в создании многораздельных и сегментированных таблиц. Это продвинутая форма.Q.en, поскольку он не только разворачивает таблицу, но и создает таблицу разделов.
Четыре аргумента используются в .Q.dpft -
символический дескриптор файла базы данных, в которой мы хотим создать раздел,
q значение данных, с которым мы собираемся разбить таблицу,
имя поля, с которым будет применяться атрибут parted (`p #) (обычно` sym), и
имя таблицы.
Давайте рассмотрим пример, чтобы увидеть, как это работает -
q)tab:([]sym:5?`msft`hsbc`samsung`ibm;time:5?(09:30:30);price:5?30.25)
q).Q.dpft[`:c:/q/;2014.08.24;`sym;`tab]
`tab
q)delete tab from `
'type
q)delete tab from `/
'type
q)delete tab from .
'type
q)delete tab from `.
`.
q)tab
'tab
Мы удалили таблицу tabиз памяти. Давайте теперь загрузим его из базы данных
q)\l c:/q/2014.08.24/
q)\a
,`tab
q)tab
sym time price
-------------------------------
hsbc 07:38:13 15.64201
hsbc 07:21:05 5.387037
msft 06:16:58 11.88076
msft 08:09:26 12.30159
samsung 04:57:56 15.60838
.Q.chk
.Q.chk - это монадическая функция, единственным параметром которой является символический дескриптор файла корневого каталога. Он создает пустые таблицы в разделе, где это необходимо, проверяя подкаталоги каждого раздела в корне.
.Q.chk `:directory
где directory это домашний каталог исторической базы данных.