KDB/Q是啥语言

昨天刚刚听了Kx公司在都柏林的宣讲会。
KDB/Q,简称q语言,它一款基于Kdb+数据库技术的程序语言。而Kdb+正是Kx公司在Kx系统基础上开发出来的。
虽然有兴趣但是目前也是门外汉,只懂一点皮毛,简单地根据他们宣讲会的内容说一下。
Kdb+数据库技术的特点包括同步多层线程(multi-threading),同步多处理(multi-processing)以及同步多服务器联合工作(multi-sever)。对于实时数据和历史数据采取相同构架,数据库查询语言为q语言。
由于程序特别轻量,因此仅仅基于磁盘(diskbased)便可以驱动。此外它是一种列储存的数据库。这项技术是专门针对大数据应用开发的,比较鲜明好理解的特征就是速度快,数据体积小以及贵,死贵。不过售后服务据说也是特别的好,这一点从Kx售后工程师的人数来说应该是可信的。
Q语言是一种抽象编程的APL(ArrayProcessing Language)语言,只能被kdb+数据库调用,可以实现对传输过程的即席查询。集成度非常高,看起来和SQL有点类似,有数据库技术基础的人应该很容易掌握。
维基百科(Q (programming language from Kx Systems))上面给出了一个q语言的例子,如下:
计算X的阶乘的两种方法
1. 直接调用q语言里面阶乘的语句:{prd 1+til x}
2. 递归算法:{$]}
最后KDB/Q的免费试用版下载地址:
https://kx.com/software-download.php
第一答,希望有帮助:)

■网友
泻药http://kx.com/software.php
■网友
本答案来源于 kdb大神徐zq老师PPT、kdb白皮书、kx公司产品介绍材料。
如果涉嫌侵权,立马删除!
20180806 补充 : 目前有64位的kdb 可以试用一年 kdb+ on demand | Kx Systems
20190617 补充 :强烈推荐 人民英雄cxs 的 kdb中文教程 KDB数据库 专栏
--------------------------
一、KDB是什么kdb+是支持实时业务的高效的一体化数据库和应用平台。
l KDB+是KX公司开发的一款64位跨平台高性能数据库产品
l 使用统一的数据库处理实时数据(内存)和历史数据磁盘(),完成数据的采集/存储和分析工作。
l 同时具备CEP(复杂事件处理)引擎/内存数据库/数据仓库的功能。
l 内置通用开发语言q:q语言是向量化函数式交互式脚本语言,卡法效率和运行效率极佳,功能远比传统数据库的存储过程强大。
Kx系统创立于1993年,其目的是为了解决传统关系数据库技术无法跟上这些不断上升的数据量。公司的核心产品kdb+建立在一个能操作实时数据和历史数据的单一架构。数据库有其自己强大的查询语言q,所以能直接对数据进行分析。多年来,K x大幅改进了kdb+的效能以跟上数据量上升的需求。许多大客户都使用我们的kdb+作为整个企业的市场数据服务器, 而OEM 客户则使用 K x 技术以提供包括数据分析、投资、保险及业务性能监控等类型广泛的软件和服务。
二、kdb+的主要应用领域:金融业
交易:每秒百万级消息
分析:万亿记录级数据库:orders,quotes,trades…
实时风险管理
实施风险监控
Monte carlo仿真
三、主要客户
大型金融机构:银行、投行、券商、基金
对冲基金
交易所
数据服务商
四、KDB的三层架构:
底层:两种解释型通用编程语言:K和Q
K解释器由约1200行ANSI C代码实现。
Q语言是由K语言实现,在没有效率损失的前提下提供了更好的代码可读性。
K函数和Q函数在加载时预编译为字节码,其执行效率远高于一般的解释型脚本语言。
运行于windows、linux/solaris/macosx的32位或64位环境下
中间层:同时具备内存数据库和磁盘数据库的时间序列数据库:kdb+
一、效能。
Kdb+所提供的显著效能之所以能优于其它数据库系统,全因专注于以下多个关键因素:


推荐阅读