news 2026/10/12 5:41:26

SonnetDB 多条件过滤:标签、时间与剩余谓词

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SonnetDB 多条件过滤:标签、时间与剩余谓词

SonnetDB 多条件过滤:标签、时间与剩余谓词

SonnetDB 的时序查询可以用WHERE组合标签、时间和字段条件。理解哪些条件可以下推、哪些需要逐点求值,比调整条件在 SQL 中的书写顺序更有用。本文以已有cpumeasurement 为例;示例假定host、region是 TAG,usage是数值 FIELD,throttled是 BOOL FIELD。

先限定标签和时间

SELECTtime,host,region,usageFROMcpuWHEREhost='server-01'ANDregion='cn-hz'ANDtime>=1713657600000ANDtime<1713657900000;

这些条件必须同时满足。Unix 时间戳采用毫秒;>=与<表示左闭右开的窗口,相邻窗口共用边界时不会重复包含边界点。

当前WhereClauseDecomposer会展开顶层 AND,把标签等值条件收集到过滤集合,把可下推的时间比较转换为时间窗口。SelectExecutor再按标签匹配 series,并沿查询路径读取相应时间范围。把host写在第一行并不是启用某个索引的开关,不能据此承诺性能提升。

字段条件与 OR 是剩余谓词

SELECTtime,host,usage,throttledFROMcpuWHEREhost='server-01'ANDtime>=1713657600000ANDtime<1713657900000ANDusage>0.7ANDthrottled=TRUE;SELECTtime,host,usageFROMcpuWHEREregion='cn-hz'ANDtime>=1713657600000ANDtime<1713657900000AND(host='server-01'ORhost='server-03');

当前源码已把字段比较、非等值标签比较、OR、NOT、IN 等不能下推的条件保留为剩余谓词,供扫描路径逐点求值。支持表达式不意味着全部条件都有索引访问路径;OR 分支里的标签条件也不能简单当作顶层 AND 的标签等值集合。

SQL 谓词采用三值逻辑,NULL 可能产生 UNKNOWN,WHERE 只保留明确为 TRUE 的记录。IN与NOT IN的常量列表已是实际表达式能力,不应把用 OR 写出的例子称作 IN 语法示例。本篇只解释已有查询路径,不把它推广为所有模型、所有组合表达式或生产性能的验收结论。

先观察计划和数据,再决定优化

EXPLAINSELECTusageFROMcpuWHEREhost='server-01'ANDtime>=1713657600000ANDtime<1713657900000;

EXPLAIN用于查看扫描范围等估算信息,不能替代真实执行时间和资源测量。为查询加上业务上合理的时间窗口有助于控制读取范围,但时间条件不是 SQL 的强制语法要求;需要全历史数据时,应明确评估数据量与执行预算。

对于删除,先使用相同的标签与时间范围查询检查目标数据。SELECT 的剩余谓词能力不能直接推广成 DELETE 的完整合同;DELETE 的底层墓碑、后续查询过滤和 compaction 行为需要单独核对。本文没有执行删除、SQL 实验或生产性能测试。

资料与代码:SonnetDB 仓库。本文依据当前 SQL 参考和查询分解源码核对,示例需结合实际 schema 与使用版本验证。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/12 5:38:39

AI Agent跑起来容易管住难:生产环境治理与可观测性实践

最近两个月&#xff0c;我在持续做一件事&#xff1a;每周把开源社区新出现、或者热度飙升的项目过一遍&#xff0c;整理成一份“开源雷达周刊”。看得越多&#xff0c;越有一个强烈的感受——AI Agent 现在真是什么人都能跑起来了。GitHub Trending 上&#xff0c;隔三差五就冒…

作者头像 李华
网站建设 2026/10/12 5:37:37

小白程序员必备:收藏这份意图识别学习指南,轻松入门大模型应用!

意图识别是任务型多轮对话中的关键环节&#xff0c;用于分析并判断用户意图&#xff0c;有效引导对话流程、提高对话效率、增强用户体验。文章介绍了单轮和多轮意图识别的原理、方法及难点&#xff0c;包括基于规则、向量检索、深度学习、大模型及融合方案等&#xff0c;并探讨…

作者头像 李华
网站建设 2026/10/12 5:37:35

上位机开发日记 · 第 8 篇 · 界面与实时绘图:四条性能红线

上位机开发日记 第 8 篇 界面与实时绘图&#xff1a;四条性能红线阅读时长&#xff1a;约 5 分钟  难度&#xff1a;进阶  前置知识&#xff1a;第 6 篇&#xff08;并发&#xff09;、第 7 篇&#xff08;数据&#xff09; 数据已经是可信的&#xff0c;本篇让它好看又好…

作者头像 李华
网站建设 2026/10/12 5:37:34

告别手动改编号:Word多级标题自动编号全攻略

文档里最让人头疼的事&#xff0c;不是内容本身写不出来&#xff0c;而是写到中途突然发现要在第3章前面加一整章&#xff0c;结果后面所有“第4章”“第5章”“4.1”“4.2”全都乱了&#xff0c;只能一个个手动改。拿我自己来说&#xff0c;早几年写一份上百页的投标文件&…

作者头像 李华
网站建设 2026/10/12 5:36:22

小白程序员必看:多Agent不等于企业智能, Ontology才是关键!

本文探讨了多Agent架构在企业智能中的应用。多Agent协同需要Ontology作为中间层&#xff0c;以解决各Agent之间缺乏统一业务世界的问题。直接接数据的多Agent架构存在语义副本增多、业务一致性难以保证等问题&#xff0c;而以Ontology为中间层的架构则能实现统一对象身份、业务…

作者头像 李华