非常抱歉,之前写了那篇怎样学习kdb+,本想多写几篇博客,然那段时间忙于跳槽就忘却了,最近回首一看,竟然还有一些盆友关注和支持,于是准备旧事重提,继续写下去,希望这次能够持久更新。
刚刚讲到跳槽,我从那家刚毕业的小私募跳槽到了一家还算出名的外企,投行来的,去做kdb开发和数据分析的工程师,从小作坊到大厂,花了一些时间才适应过来,大厂的kdb使用显得更加成熟,学到更多,目前已呆到大半年,收获良多,先打打嘴炮,吹吹水,本篇无干货。
1.官方的kdb短小精辟,犹如匕首一样便捷,然不适用于大厂,大厂讲究正规化,这样kdb的便携性就全抛弃了,但是换来的虽然是冗长的像是python的规范化代码,却也适合集成,组装,维护,和阅读。在官网的kdb原版的基础上,为了更好的使用,于是开发了各种模块,就像其他的编程语言语样,log模块,包管理模块,内部ipc通信模块,正则模块,测试模块等等,有的是纯q开发,有的是q c结合开发。比如说kdb本身对于正则的支持很弱也很不方便,官网上也有用re2自己编译so的样码,对于这样的问题,只能在c层完善。于是最后越来越大,越来越慢...跟其他语言差不多接地气了,哎。
2.公司的kdb主要用于数据库,分为hdb和rdb,这套解决方案与官网中的tickplant基本一致。前司主要用于存储行情,没有做rdb,相对简单。不过两者共同都是为了解决每日过千万条记录的数据库的存储,筛选问题,在这点上,前司选用了torq框架,适合起步。
最后,q语言大半是由k语言写的,k语言我记得github有个开源的项目叫做kona,可以直接编译使用,这样就可以开源的搭建属于自己的kdb,虽性能不及官方,但一切可以自己折腾优化,拓展性强。然我自己也没有抽出时间来细读kona的代码。
网友评论