前言
断断续续的利用业余时间学习了大半年的KDB数据库,相对于Mysql和Oracle数据库,KDB数据库在时间序列数据上的处理有着强大的优势,目前能够找到的中文资料非常的少,所以打算抽出一些时间分享一下本人学习KDB数据库的经验,仅供参考,本文文笔不好,如有错误或者理解不对之处还请指正。
一、KDB数据库简介
kdb+时间序列数据库是世界上最小(只有几十MB)和最快的。它的单一集成平台使其非常有效地分析超大型数据集,并加快了基于我们的高性能核心技术构建的Kx解决方案的开发和部署(官方描述)。
kdb+(基于q或者k语言的db, 增强版,也简称kdb)被官方称为世界上最快的时间序列数据库,它有非常高的性能和丰富高效的时间序列函数。列式存储的特性,使得对于某个列的统计分析操作异常方便。全球顶尖的投行、高盛、摩根、国内许多证券公司和私募基金也开始使用,在延迟性上有着苛刻要求的金融领域,kdb+有着独特的优势。
特点:
1、内存数据库(In Memory Database),将数据放置在内存中
2、解释型语言(Interpreted)
3、有序列表(Ordered Lists), 实现高速处理数据的关键,区别于传统数据库。
4、赋值顺序(Evaluation Order)
5、面向表编程(Table Oriented)
6、面向列编程(Column Oriented)
7、强类型(Types)
二、目前发展状况
kdb+数据库目前在人工智能、机器学习、物联网、智能电网、运输运营管理、国家情报应用以及某些复杂的欺诈检测、交叉销售和定位服务中发挥越来越大的作用。2019年开始与亚马逊网络服务(AWS)、工智能和机器学习的开源领导者(H2O.ai)有着深度的合作。
2019年2月27日:kx将与Urban Institute一起为全球智慧城市建设提供动力
2019年2月7日:kx在AWS Marketplace上提供kdb+数据库,以提高速度与效率
2019年2月5日:H2O.ai和Kx Partnership为时间序列数据提供更快的解决方案
2018年12月12日:kx技术为GIC的交易分析平台提供支持
2018年10月30日:kx被Survalent Technology选中用于高级传感器分析
2018年10月29日:kdb+在首次STAC-M3测试中为Google Cloud Platform设定了基准
2018年9月12日:在Anaconda的分销平台上提供kx技术和相关的机器学习库
2018年8月7日:kx为Gyana AI的下一代分析平台提供技术支持
三、下载与安装
kdb+数据库提供Windows、macOS、Linux操作系统的32位(免费)和64位版本。均可用于非商业用途。
下载地址:https://kx.com/connect-with-us/download/
文本将介绍一下Windows平台下的安装操作
1、下载w64.zip或w32.zip文件。将文件解压缩到C:\(C盘根目录),生成一个新文件夹C:\q,打开cmd直接输入一个q便开始运行。
2、如果想将该数据库放置在其他目录或输入q提示命令不存在时,则需要添加环境变量。才cmd下添加方式如下:
C:\Users\cao>setx QHOME "C:\q"
SUCCESS: Specified value was saved.
C:\Users\cao>setx PATH "%PATH%;C:\q\w64"
SUCCESS: Specified value was saved.
C:\Users\cao>exit
(C:\q和C:\q\w64可以替换为自己q的文件包放置的目录)
3、若下载的为64位版本,则需要通过官网获得一个k4.lic或者kc.lic的许可证,免费获取地址:https://ondemand.kx.com
4、将获取到的许可证放置在q的文件夹下。
四、参考链接与文献
1、KDB数据库官方网站:https://kx.com/
2、下载地址:https://kx.com/connect-with-us/download/
3、更多发展信息:https://kx.com/news/
4、参考书籍:Q for Mortals,https://code.kx.com/q4m3/
5、参考书籍:Tips Fast Scalable Maintainable Kdb
6、谷歌讨论小组:http://groups.google.com/group/personal-kdbplus
7、GitHub:https://kxsystems.github.io/](https://kxsystems.github.io/
8、知乎专栏:https://zhuanlan.zhihu.com/kdb2019