毕业后,我在一家私募公司做数据工程师,一来就用kdb做各种数据的处理和管理。回想起那段学习kdb的日子,对于一个刚毕业的大学生来说简直是充满了挑战。公司里没有专门人培训,只有靠去不断地请教一两个前辈,和频繁地去刷kdb的官网来学习。不知不觉已经两年过去,已经熟练地用kdb做各种开发了,居然却已经沉迷其中,被kdb的魅力所折服。现在回想起曾经的痛苦,竟发现很是值得。
我觉得kdb给我一种很爽的感觉,我感觉写代码能够像数学家推导数学公式一样美妙。代码的简洁和优雅给我留下很深的印象。虽然我在大学也学过java,在工作的时候也用过python和c++,然而我却发现kdb却是我最喜欢的,而且让我却很难再欣赏别的语言了。
kdb之所以难主要是下面几点:
1.参考的资料太少,论坛,社区,书籍都很少,没有任何中文材料,我之前逛的只有官网,书本只有三本,几乎没有人会,更别说精通。
2.思维与传统的相差太大,一般的编程模式很难转变和欣赏。
3.代码需要记忆的符号,函数很多,可读性不好,“天书”因此而得来。
官网首页对于kdb的介绍:
1.a high-performance historical time-series columnar database
2.an in-memory compute engine
3.a real-time streaming processor
4.an expressive query and programming language called q
kdb的好处主要表现在下面几点:
1.官网宣称的高性能(速度)。
2.数据库和q语言无缝结合,不需要像python+mysql这样编程语言调用数据库接口。
3.矢量化和函数化的书写方法,写起来简洁,惜墨如金,而且十分优雅。