kdb - 将大文件加载到在 KDB 上按月而不是每天分区的自动分区数据库中
问题描述
我有一个非常大的文本文件(> 100 GB),我想将它加载到分区的展开 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
mm$date ,但这没有用。
解决方案
推荐阅读
- python - Flask/Python 中的 SQL:不同的值?
- python - 如何从现有的 sql DDL 文件中获取基础?
- angular7 - 如何在 Visual Studio for Mac 2019 中打开 Angular 7 应用程序?
- excel - 如何制作动态下拉列表?
- android - Firebase 中的应用内消息和应用内消息显示有什么区别
- bots - 使用nodejs通过用户名自动从电报机器人发送和推送通知给用户
- javascript - 在折线图中使用一般更新模式
- wordpress - 如何强制网站重定向到 https
- php - 在自定义导航栏 wordpress 中突出显示当前页面
- angular - 角度 6 文件上传预览仅在第二次上传后工作