У меня есть очень большой текстовый файл (> 100 ГБ), который я хочу загрузить в разделенную разделенную базу данных KDB.
Следующее руководство похоже на то, что я хотел использовать https://code.kx.com/v2/kb/loading-from-large-files/
Следующий код из руководства делает разбиение по дате.
$ cat fs.q
\d .Q
/ extension of .Q.dpft to separate table name & data
/ and allow append or overwrite
/ pass table data in t, table name in n, : or , in g
k)dpfgnt:{[d;p;f;g;n;t]if[~&/qm'r:+en[d]t;'`unmappable];
{[d;g;t;i;x]@[d;x;g;t[x]i]}[d:par[d;p;n];g;r;<r f]'!r;
@[;f;`p#]@[d;`.d;:;f,r@&~f=r:!r];n}
/ generalization of .Q.dpfnt to auto-partition and save a multi-partition table
/ pass table data in t, table name in n, name of column to partition on in c
k)dcfgnt:{[d;c;f;g;n;t]*p dpfgnt[d;;f;g;n]'?[t;;0b;()]',:'(=;c;)'p:?[;();();c]?[t;();1b;(,c)!,c]}
\d .
r:flip`date`open`high`low`close`volume`sym!("DFFFFIS";",")0:
w:.Q.dcfgnt[`:db;`date;`sym;,;`stats]
.Q.fs[w r@]`:file.csv
Однако вместо этого я хочу выполнить автоматическое разбиение по месяцу или году даты (я не хочу преобразовывать сам столбец даты, я просто хочу, чтобы данные были разделенывместо месяца или года).Как мне изменить приведенный выше код, чтобы сделать это?Вместо этого я попытался изменить date to
мм $ дату, но это не сработало.