TorQ: Kdb+ 生产框架

Hacker News Top 工具

摘要

TorQ是一个面向kdb+的开源生产框架,提供核心功能、工具和最佳实践,帮助开发者高效构建和管理kdb+系统。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/05/22 21:26

DataIntellectTech/TorQ

来源:https://github.com/DataIntellectTech/TorQ

TorQ 标志

阅读我们的文档 (https://DataIntellectTech.github.io/TorQ/)

该框架通过在 kdb+ 之上实现一些核心功能和实用工具,构成了生产级 kdb+ 系统的基础,使开发者能够专注于应用业务逻辑。它尽可能多地融入了最佳实践,特别关注性能、进程管理、诊断信息、可维护性和可扩展性。在可能的情况下,我们尽量避免重新发明轮子,而是使用来自 code.kx.com 的贡献代码(直接使用或修改)。该框架适用于那些希望从零开始创建新的 kdb+ 系统,或者希望为其现有 kdb+ 系统添加额外功能的人。

快速浏览我们的宣传册 以获取更多信息。开始生产环境捕获的最简单方法是下载并安装其中一个 Starter Packs (https://github.com/DataIntellectTech),或阅读我们的 Github-Pages 网站 (https://DataIntellectTech.github.io/TorQ/)。我们还有一个 Google Group 用于提问/讨论 (https://groups.google.com/forum/#!forum/kdbtorq)。

快速开始

要启动一个包装在框架中的进程,你需要设置环境变量,并为该进程指定类型和名称。类型和名称可以通过命令行显式传递。setenv.sh 是 Unix 类型系统上如何设置环境变量的示例。对于 Windows 系统,请参见 http://www.computerhope.com/issues/ch000549.htm。kdb+ 期望所有路径使用 /(正斜杠)分隔,因此所有操作系统上的所有路径都应使用正斜杠分隔。

为了避免标准输出/错误被重定向,请使用 -debug 标志 ./setenv.sh /- 假设为 Unix 类型操作系统 q torq.q -proctype test -procname mytest -debug

要加载文件,请使用 -load q torq.q -load mytest.q -proctype test -procname mytest -debug 这将启动一个在框架内运行的进程,并使用所有默认值。其余内容请阅读文档!

使用 Mkdocs 更新文档

要对文档网站进行更改,你只需在你做出更改的分支中使用以下命令:

mkdocs gh-deploy

系统会提示你输入用户名和密码,之后网站应该已经更新。如果你想在本地测试网站,可以使用 mkdocs。首先使用命令:

mkdocs build

然后:

mkdocs serve -a YourIp:Port

前往它给出的地址,检查你的更改是否生效。有关使用 mkdocs 的更多信息,请参见 (http://www.mkdocs.org/)

许可证

使用了第三方许可证,参见 Licenses、Apache 2.0 和 OpenLDAP、kdbldap.so

发布说明

  • 5.2.12, 2025年11月
    • 更新 Partbyfirstchar 以按首字符分组保存
  • 5.2.11, 2025年11月
    • Partbyfirstchar 用于按第一个符号字符对 WDB 磁盘分区
  • 5.2.10, 2025年9月
    • 基于 int 列的 Partbyenum
    • 当 STP 处于内存批处理模式时更新 .z.exit
    • 修复:tickerlogreplay.q 中默认 tempdir 为 hsym
    • 为多线程进程添加并行压缩
  • 5.2.9, 2025年3月
    • 每个表分区排序并应用一次属性
    • 移除 kill 命令覆盖
    • 添加 replaymaxrows 用于恢复时的可选行数限制
  • 5.2.8, 2025年1月
    • 修复 partbyenum 以针对占位符号进行枚举
  • 5.2.7, 2025年1月
    • 向 CTP 添加订阅者信息
    • 修复 IDB 日内写入
  • 5.2.6, 2024年12月
    • 如果环境变量未设置则添加警告并改进日志记录
    • 修复 idbreload 问题
  • 5.2.5, 2024年11月
    • 使排序进程转而调用 initmissingtables 和 notifyidbs
  • 5.2.4, 2024年11月
    • 支持 WDB 中的即时写入
  • 5.2.3, 2024年11月
    • 修正 .merge.mergebypart 在 upsert 时的错误捕获
    • 修正 .merge.getpartchunks 以使用过滤后的视图
    • IDB WDB 连接重试
    • 确保在 WDB 保存后重新加载 idb 进程
  • 5.2.2, 2024年10月
    • IDB 默认写入模式修复,修复表行计数
    • WDB 0 秒 eodwaittime - 修复后端重新加载
    • IDB 文档增强
  • 5.2.1, 2024年9月
    • 修复 Windows 上的 IDB:WDB EOD 现在在删除 WDB 文件夹时不会失败
    • IDB 通知错误修复:WDB 不断发送 IDB 重新加载,即使没有发生写入操作
  • 5.2.0, 2024年9月
    • 新的 IDB(日内数据库)进程
    • 新的 WDB 写入模式 partbyenum
    • 修复 pubsub 初始化后进程存储整个表而非模式的问题
    • Datecheck 函数周期修复
  • 5.1.0, 2024年5月
    • 添加了对使用 int 分区的 DataAccess API 的支持
    • 添加了对 FinSpace STP、WDB 和 AWS Dataviews 的支持
    • 新增 .os.hdeldir 函数。使用 hdel 代替 rm 删除目录,或仅删除其内容
    • 与 kdb 版本 4.1 相关的错误修复
  • 5.0.3, 2024年3月
    • 修复 rdb 中 .save 配置的默认值
    • 修复 HTTP/qcon 上的 syncexec 查询错误
    • 修复 dataaccess API 初始化的错误
    • 延迟响应现在在失败或发出错误信号时返回
    • 更新 finspace.q API 参数以跟上 AWS 文档
    • 在 FinSpace 中设置默认启动参数
    • finspaceservers.q 将直接使用 aws.list_kx_clusters 而不是与 csv 匹配
    • 代码重构/小幅更改以对齐 Finspace 变化(发布时未使用)
  • 5.0.2, 2023年12月
    • 从必需的启动变量列表中移除 KDBFINSPACE 环境变量
  • 5.0.1, 2023年12月
    • 将 TorQ Amazon Finspace 项目引用重命名为 TorQ-Amazon-FinSpace-Starter-Pack
  • 5.0.0, 2023年12月
    • 更新 TorQ 以支持使用新的 TorQ-Amazon-Finspace-Starter-Pack 时的 AWS Finspace (https://dataintellecttech.github.io/TorQ-Amazon-FinSpace-Starter-Pack/)
    • 更新了支持电子邮件引用
    • 更新了安装指南
    • 日志输出现在可以是 json 文件格式:启动时添加 ‘-jsonlogs true’ 标志
    • 处理器现在可以从 appcode 加载
    • 现在可以指定多个 LDAP 服务器
    • 改进了测试
    • 修复了 LDAP 错误
    • 修复了心跳禁用逻辑
    • 修复了权限错误
    • 修复了数据质量进程
    • 修复了因许多小分区导致按部分合并中断的问题
    • 修复了 DQE 使用替代 hdb 类型时的保存问题
    • 修复了 help.q 错误
    • loadaddcnfg 中的错误修复
  • 4.4.0, 2023年5月
    • 品牌重塑:将 AquaQ 引用更新为 Data Intellect
  • 4.3.0, 2023年1月
    • 错误修复
    • 更新文档
    • 增加了在 q 进程内以编程方式启动额外 TorQ 进程的功能
    • 改进了使用条带函数时的符号分布
    • 改进了 WDB 重新加载功能
    • 改进了 Data Access API 的功能并应用了错误修复
    • 添加了可配置的 WDB 合并功能
    • 修复了在批处理模式下使用 .u.sub 时的订阅者功能
    • 修复了通过 .u.end 的日终消息传递
    • 修复了日终保存进程以防止数据保存到第二天的问题
    • 修复了 analyticslib.q 中的 rack 函数
  • 4.2.0, 2021年12月
    • 为 Data Access API 添加了功能
    • 添加了数据条带化
    • 错误修复
    • 改进了测试
  • 4.1.1, 2021年6月
    • Data Access API 错误修复
    • 改进了重叠进程周围的属性路由
  • 4.1.0, 2021年4月
    • Data Access API 更新博客文章 (https://dataintellect.com/data-access-api/) 和 文档
  • 4.0.1, 2021年3月
    • 错误修复
    • 文档改进
    • 测试改进
  • 4.0.0, 2020年12月
    • 更新文档
    • 分段 Tickerplant
    • 测试框架
  • 3.8.0, 2020年10月
    • 更新文档
    • 添加安装脚本
    • 包容性术语
    • DQS、DQC 和 DQE 升级
    • PCAP 功能添加
  • 3.7.0, 2020年5月
    • 添加了数据质量系统(博客文章 (https://dataintellect.com/torq-data-quality-system/) 和文档 (http://dataintellecttech.github.io/TorQ/Processes/#torq-data-quality-system-architecture))
    • 修复 k4unit 测试使其能与 kdb+ 4.0 一起工作。
  • 3.6.0, 2020年4月
    • 添加了用于监控的 DataDog 集成:([博客文章] (https://dataintellect.com/monitoring-a-torq-system-with-datadog/)
    • 改进了 k4unit 集成
    • 已通过 kdb+ 4.0 测试
    • 修复通过网关的 reval 调用
    • 修复在指定 -T 时 RDB 日终超时问题
    • 各种小改进和错误修复
  • 3.5.0, 2019年8月
    • 更新了 .torq stop 和 .torq summary 函数
    • 添加了 .torq restart 函数
    • 更新了 Grafana
    • 添加了监控检查脚本
    • 如果尝试在 Win64 上运行,则禁用电子邮件
    • 修改 Opencon 以将 user:password 附加到 tcps 连接
    • 错误修复
  • 3.4.1, 2019年1月
    • 发现并修复了网关查询 .gw.syncexec 的错误
  • 3.4.0, 2018年12月
    • 更新了 torq.sh 脚本,包含调试和打印启动行。
    • 集成 Monit 用于监控 TorQ。
    • 集成 Grafana 适配器,允许可视化 TorQ 进程数据。
    • 添加了服务层,用于跨所有应用程序的客户端特定自定义。
    • 错误修复包括:
    • 支持在通过 torq.q 启动时为进程指定 parentproctype
    • 检查非 TorQ 进程的 .proc.getattributes 的函数。
    • 当未加载 setenv 时退出
    • 现在允许在调试模式下使用 qcon
    • 异步网关请求返回空结果时挂起的问题
  • 3.3.0, 2018年5月
    • 升级至 kdb+ v3.6 运行。请注意,它仍然向后兼容以前的版本。
    • 实现了并发同步请求,作为 3.6 升级的一部分
    • 为网关添加了响应格式化器
    • 添加了低功耗模式 - 旨在与 Kx On Demand 许可证一起使用
    • 添加了初始化函数,在加载脚本并建立连接后调用。
    • 更改了启动脚本,可以单独、批量或一次性启动或停止进程。所有进程配置现在位于 $KDBCONFIG/process.csv 中的一个位置。
    • 修复了错误括号导致权限配置以错误顺序加载的错误
  • 3.2.0, 2018年2月
    • 添加了分析库的初始版本 (http://dataintellecttech.github.io/TorQ/analyticslib/),这是一组辅助数据操作的函数
    • 添加了可选的依赖检查器 (http://dataintellecttech.github.io/TorQ/gettingstarted/#application-dependency),供应用程序检查它们是否具有最低的 TorQ 和 kdb+ 依赖
    • 向 filealerter 添加了 kdb 压缩 (https://github.com/DataIntellectTech/TorQ/commit/1b048d5e52fa26d537d6c88064b533f376ef08c6)。用例是压缩 tickerplant 日志文件,因此可以直接回放日志文件,而无需单独的解压缩步骤
    • 添加了 -onelog 命令行 (http://dataintellecttech.github.io/TorQ/gettingstarted/#logging) 选项,将 stdout/stderr 写入同一个日志文件
    • 向数据加载工具添加了文件模式选项 (http://dataintellecttech.github.io/TorQ/utilities/#dataloaderq)
    • 错误修复
  • 3.1.0, 2017年5月
    • 添加了 kafka,这是一个具有消息日志持久存储的实时消息传递系统
    • 添加了 datareplay.q,其功能是从历史数据生成 tickerplant 函数调用,可由订阅者函数执行
    • 添加了 subscribercutoff.q,其功能可用于从进程中切断缓慢的订阅者
    • 为 tickerlogreplay 添加了新的写入方法,以匹配 WDB 中的写入方法
  • 3.0.0, 2017年1月
    • 添加了权限系统,允许对用户和组进行细粒度访问控制
    • 添加了 LDAP 支持,允许用户针对 LDAP 服务器进行身份验证
    • 改进的文档现已可在 http://dataintellecttech.github.io/TorQ/ 获取
  • 2.7.0, 2016年11月
    • 整合了 Tickerplant。Tickerplant 为实时订阅者提供更快的恢复,并改进了时区处理
    • Filealerter 使用一张展开表来存储已处理数据的表。如果它找到当前格式(平面)的表,会将其改为展开格式
    • 网关错误修复
    • 小改进
  • 2.6.2, 2016年9月
    • 向 wdb.q 添加了 .z.pd 和 peach 逻辑
    • 错误修复
  • 2.6.0, 2016年8月
    • 添加了广播发布
    • 添加了域套接字和 tcps 作为 IPC 连接机制
    • 添加了从域套接字回退到 tcp 的功能
    • 新网关(允许发送属性,而不是指定要访问的进程)
    • 心跳订阅更简单
    • 支持 snappy 压缩
    • 已通过 kdb+ 3.4 测试
    • 错误修复
  • 2.5.0, 2016年4月
    • 添加了 u.q - 来自 KDB+ Tick 的发布/订阅代码
    • 改进了 memusage.q 以进行采样
    • 更新了 dataloader.q
    • 确保所有配置都可以从 KDBAPPCONFIG 读取
  • 2.4.0, 2016年2月
    • 添加了 k4unit,允许通过 -test 参数自动运行测试
    • 扩展了应用配置处理,使得所有默认配置都可以在 $KDBAPPCONFIG 中找到
    • 错误修复
  • 2.3.0, 2015年12月
    • 向 wdb 进程添加了可选的写入方法,允许在白天将数据写入自定义分区方案。 在日终数据被移动到 hdb 之前,数据被合并而不是排序,这将使数据能够更早被访问。 对于基数较低的(不同元素数量较少)数据集,例如外汇市场数据,可选方法可能节省大量时间
    • 向消息处理器添加了写入访问控制(使用 reval),限制查询客户端在原位修改数据的能力
    • 添加了返回 kdb+ 对象近似内存大小的功能
    • 错误修复
  • 2.2.1, 2015年11月
    • 错误修复 - 修复了当 par.txt 可用时 endofdaysort 不抛出类型错误的问题
    • 错误修复 - 修复了网关,使得当客户端断开连接而另一个客户端查询多个服务器时,结果不会被丢弃
  • 2.2.0, 2015年10月
    • 使用 $KDBAPPCONFIG 环境变量添加了应用配置管理
    • 在心跳表中添加了 pid、主机和端口
    • 更改了网关以使其非侵入性
    • 错误修复
  • 2.1.0, 2015年7月
    • 添加了链式 tickerplant 进程
    • 更新了 housekeeping.csv 以包含额外列 agemin,表示在 find 函数中使用分钟还是天
    • 更新了电子邮件库
  • 2.0.1, 2015年5月
    • 添加了 RDB 进程,扩展了 kdb+ tick 中的 r.q。
    • 添加了 WDB 以在白天定期写入数据。扩展了 w.q。
    • RDB 和 WDB 允许无缝的日终事件(无数据中断,无 tickerplant 背压)
    • 添加了报告进程,定期运行报告并处理结果
    • 向 process.csv 添加了环境变量解析,以提高可移植性。如果进程启动时未指定端口,它将根据 proctype 和 procname 从 process.csv 中查找。
    • 添加了 -localtime 标志,允许进程在本地时间而非 GMT 运行(日志消息、定时器调用等)。此更改向后兼容 - 没有 -localtime 标志时,进程将在 GMT 中打印日志等,但也可以拥有不同的 .z.P
    • 添加了订阅代码,用于管理对多个数据源的多个订阅
    • 添加了使用 libcurl 的电子邮件库。用于从 TorQ 进程发送电子邮件
    • 向数据库代码添加了标准监控检查
    • 添加了数据加载器脚本。实用函数,用于将数据目录分块加载到数据库中,最后进行排序和分区
    • 添加了 tickerplant 日志恢复实用程序,以从日志文件中恢复尽可能多的消息,而不是在第一个错误消息处停止
    • 添加了压缩进程,用于运行并压缩给定数据库
    • 修改了压缩代码以处理 par.txt 数据库
    • 修改了压缩代码和 housekeeping 进程以与 kdb+ 2.* 一起运行
    • 修改了标准输出/错误日志记录和使用日志记录,以包含进程名称和进程类型(logmsg 表已更改,以及一些函数)

相似文章

dbt-labs/dbt-core

GitHub Trending (daily)

dbt Core v2.0 是一个基于 Rust 的彻底重写版本,目前处于 Alpha 阶段。它承诺实现更快的解析速度、更严格的语言规范以及可扩展的 Parquet 工件,使分析师和工程师的数据转换更加高效。

l: 用于 k 和 q 的新运行时

Hacker News Top

l 是一个用于 k4、q 和 qSQL 的新运行时,提供透明的 SIMD、压缩向量和自动并行性,同时保持与现有代码的完全兼容。它针对华尔街的高性能计算。

@no_stp_on_snek: 如果你想试试,可以在这里找到:

X AI KOLs Following

这是一个 llama.cpp 的分支,集成了 TurboQuant+,用于先进的 KV 缓存和权重量化,支持跨后端内核(Apple Silicon、NVIDIA CUDA、AMD ROCm、Vulkan),并被 LocalAI、Chronara 和 AtomicChat 用于生产环境。