Kdb+
文章目录
强大的编程和查询语言q
kdb+内置了高速应用开发和数据查询的一体化语言—q。q可以直接对数据做出运算,最大限度的减少中间成本。它无需先读取数据,然后再送到外部的程序进行分析,当接收到数
Java连接Kdb+最流行和使用最广的包排名:
- qJava:这是Kx Systems官方提供的Java API,作为官方解决方案,使用人数必然是最多的。绝大多数需要在Java中连接Kdb+的开发者,qJava会是首选。
- kdb-jdbc:这是一个实现JDBC接口的Kdb+驱动,可以让标准JDBC应用连接Kdb+数据库。由于JDBC是Java数据库访问的业界标准,所以这种解决方案的使用人数也较多,覆盖的用户群体较广。
- kx-api:这是一个开源的第三方Java API,虽然不是官方提供的,但因为易用和社区活跃,已经积累了较多的用户。尤其对初学者而言,由于kx-api的简单易用,是连接Kdb+的理想选择。
- jquantlib:这是一个量化金融工具库,内置对Kdb+的支持。所以主要用户群是金融领域的开发者。虽然针对性较强,但在量化金融领域已经有了较广泛的应用。
- vert.x-kdb:这是一个基于Vert.x的Kdb+客户端,主要面向采用Vert.x架构的应用。所以用户群体相对较小且定位更清晰。
kdb+ Mac配置使用教程
1.下载
download url:
12个免费试用
包含文件:
将q , q.k , k4.lic文件放置在同一目录下
- q.k 配置文件
- q 执行器
- k4.lic 许可证签名 申请后邮箱会发送下载链接
2.配置QHOME环境变量
如不配置会报错’/Users/xxx/q/q.k. OS reports: No such file or directory 默认加载当前用户下的/q/q.k文件
open -e ~/.bash_profile
添加以下内容
export PATH=$PATH:/Users/chuxianbo/home/kdb
export QHOME=/Users/chuxianbo/home/kdb
保存并关闭文件,运行 **source ~/.bash_profile
**来立即应用新的环境变量
3.测试验签
- 打开终端,键入./q来启动Kdb+的REPL(Read-Eval-Print-Loop)接口:
xxx@MacBook-Pro-78 kdb % ./q
KDB+ 4.0 2023.01.20 Copyright (C) 1993-2023 Kx Systems
m64/ 16(24)core 16384MB xxx macbook-pro-78.local 192.168.3.13 EXPIRE 2024.06.27 pwn2ownyearn@gmail.com KOD #5014978
q)1+1
2
q)9*8+14
198
q)\\
Kdb+可视化工具
按照流行度和使用广度排列:
- KX Dashboards:这是KX Systems(Kdb+的开发公司)自家的可视化工具,可以直接与Kdb+集成。KX Dashboards提供了丰富的数据可视化选项,包括图表、地图和表格等。用户可以通过拖放界面创建和编辑仪表板,无需编写代码。
- Grafana:Grafana是一个开源的数据可视化和监控平台,支持多种数据源,包括Kdb+。Grafana提供了丰富的图表类型和高度可配置的仪表板,可以满足复杂的数据可视化需求。
- Tableau:Tableau是一个商业的数据可视化工具,广泛用于商业智能和数据分析。Tableau提供了Kdb+的连接器,可以直接从Kdb+读取数据。
- Panopticon:Panopticon是一个专门为实时数据和时间序列数据设计的可视化工具。Panopticon支持Kdb+,并提供了一些针对时间序列数据的特殊可视化选项。
- QStudio:QStudio是一个针对Kdb+的开发和可视化工具。QStudio提供了代码编辑、数据查询和数据可视化等功能。
KX Dashboards Mac配置使用教程
download url:
Get started - KX Dashboards
进入下载目录
xxx@MacBook-Pro-78 dash % q dash.q
KDB+ 4.0 2023.01.20 Copyright (C) 1993-2023 Kx Systems
m64/ 16(24)core 16384MB xxx macbook-pro-78.local 192.168.3.13 EXPIRE 2024.06.27 pwn2ownyearn@gmail.com KOD #5014978
Kx Dashboards - free to 5 concurrent users (update before 5th October 2023)
Go to http://localhost:58174
q)'TLS not enabled
默然路径:http://localhost:58174/
java kdb+ qJava
https://github.com/exxeleron/qJava
需要下载后放在本地maven库依赖
以下是代码使用案例
import com.kx.c;
import java.io.IOException;
public class KdbPlusExample {
public static void main(String[] args) {
try {
// 创建连接
c con = new c("localhost", 5001, "user:pass");
// 实时订阅
con.ks(".u.sub[`trade;`AAPL]");
Object[] response = (Object[]) con.k();
System.out.println("Subscribed to trade table for AAPL");
// 循环接收实时更新
new Thread(() -> {
while (true) {
try {
Object[] data = (Object[]) con.k();
System.out.println("Received data: " + data[0]);
} catch (IOException | c.KException e) {
e.printStackTrace();
}
}
}).start();
// 列式数据分析
Object[] result = (Object[]) con.k("select avg price by date from trade where sym=`AAPL");
System.out.println("日期平均价格: " + result[0]);
} catch (IOException e) {
e.printStackTrace();
} catch (c.KException e) {
e.printStackTrace();
}
}
}