KDB数据库简介与安装

2022-05-25 00:00:00 序列 数据 数据库 时间 提供
  • 前言
    断断续续的利用业余时间学习了大半年的KDB数据库,相对于Mysql和Oracle数据库,KDB数据库在时间序列数据上的处理有着强大的优势,目前能够找到的中文资料非常的少,所以打算抽出一些时间分享一下本人学习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的文件包放置的目录)

    相关文章