断断续续的利用业余时间学习了大半年的KDB数据库,相对于Mysql和Oracle数据库,KDB数据库在时间序列数据上的处理有着强大的优势,目前能够找到的中文资料非常的少,所以打算抽出一些时间分享一下本人学习KDB数据库的经验,仅供参考,本文文笔不好,如有错误或者理解不对之处还请指正。
kdb+时间序列数据库是世界上小(只有几十KB)和快的。它的单一集成平台使其非常有效地分析超大型数据集,并加快了基于我们的高性能核心技术构建的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、强类型(*)
kdb+数据库的查询语言q-sql与我们传统的SQL语言非常的相似,但其内部机制是不同的。与传统的关系型数据库相比,根本区别在于:
1. kdb是基于列表(list)的,列表示允许重复的有序结合。而SQL是基于不同元素的无序集合。
2. kdb+是将数据作为连续型元素存储在列的列表中,而传统关系型数据库将数据以行的形式来存储,并且是非连续的。可以说在kbd+中是没有行的。
3. kdb+表的操作是在每个字段上基于向量的操作,而SQL是对各个字段和行的一个操作。
我们可以从下面的表格中来看kdb+与RDBMS(关系型数据库)的区别:
- 二、目前发展状况
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的文件夹下。
k4.JPG
- 四、参考链接与文献
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/