news 2026/5/16 21:47:50

EventQL:专为事件溯源设计的类 SQL 查询语言,让事件存储易用又强大!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
EventQL:专为事件溯源设计的类 SQL 查询语言,让事件存储易用又强大!

查询事件的难题

在处理事件溯源系统时,面对的数据结构与传统数据库不同。事件含丰富元数据,通过主题分层组织,需对事件流过滤、聚合和转换,性能依赖合适索引。传统 NoSQL 查询接口难满足需求,因其未考虑事件特定特性。

认识 EventQL

EventQL 由 The Native Web 为 EventSourcingDB 设计,保留 SQL 表达能力,抓住事件查询本质。给出简单示例,若写过 SQL 会感熟悉,它专为事件查询定制,可按事件类型过滤、访问嵌套数据负载、重塑输出结果。

EventQL 设计的重要性

一流的事件属性:EventQL 将事件元数据视为一等公民,如 e.type、e.subject 等,每个属性代表索引机会,设计良好的事件存储可在类型、主题和时间戳上创建索引,使查询速度快。

主题层次结构实现智能范围界定:EventQL 主题模式匹配强大,主题层次结构常见,可限定查询范围、创建基于主题的索引、构建支持层次结构的查询,让浏览事件数据直观。

类 SQL 的表达能力:借鉴 SQL 成熟模式,如 WHERE 子句、ORDER BY 等,可精确表达复杂查询,并给出示例。

投影作为一等概念:与 SQL 中可选的 SELECT 不同,EventQL 要求用 PROJECT INTO 进行显式投影,对事件查询有意义,投影语法支持任意对象构造,可构建所需输出格式。

设计上对索引友好

EventQL 能引导编写可索引的查询,WHERE 子句常用属性如事件类型、主题等可映射到复合索引,语言结构让人清楚索引作用之处。

使解析器达到生产就绪状态

最初开发 GethDB 时编写的 EventQL 解析器与特定用例紧密耦合,现使其成为独立库达到生产就绪状态。最终得到强大的 Rust 解析器,提供详细错误信息、构建强类型抽象语法树、支持完整语法、有全面测试覆盖、可嵌入基于 Rust 的事件存储。

类型推断:即将推出:GethDB 版本含类型推断系统,计划移植到库中。类型推断器可收集类型信息,排除不合理查询,防止运行时失败。可在 GitHub 上找到解析器。

重要性所在

事件溯源需良好工具支持,EventQL 在熟悉、表达能力强、事件感知、对索引友好方面表现出色,为构建事件溯源系统提供有效查询方法。

亲自尝试

解析器以 Rust crate 形式提供,给出开始使用的方法示例。

结论

优秀语言设计要理解领域知识、创建自然抽象,EventQL 在事件溯源方面做到了,证明调整 SQL 模式适应事件流效果好,查询语言强大易用。从事事件溯源工作可了解 EventQL,需要生产就绪解析器可使用 Rust 实现版本。此解析器为支持相关工作构建,欢迎反馈和贡献代码。

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

终极指南:如何让苹果触控板在Windows上获得专业级体验

终极指南:如何让苹果触控板在Windows上获得专业级体验 【免费下载链接】mac-precision-touchpad Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad 项目地址: https://gitcode.com/gh_mirrors/ma/mac-precision-touchpad …

作者头像 李华
网站建设 2026/5/16 21:46:00

Glur:SwiftUI渐进模糊效果库的终极指南

Glur:SwiftUI渐进模糊效果库的终极指南 【免费下载链接】Glur A library for progressive blurs in SwiftUI. 项目地址: https://gitcode.com/gh_mirrors/gl/Glur Glur是一款专为SwiftUI打造的渐进模糊效果库,能够帮助开发者轻松实现高质量的视觉…

作者头像 李华
网站建设 2026/5/16 21:45:31

ComfyUI IPAdapter Plus 节点缺失问题深度修复指南

ComfyUI IPAdapter Plus 节点缺失问题深度修复指南 【免费下载链接】ComfyUI_IPAdapter_plus 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_IPAdapter_plus 在AI图像生成领域,ComfyUI IPAdapter Plus扩展作为图像引导生成的核心工具,为…

作者头像 李华
网站建设 2026/5/16 21:43:45

Django 表单(Forms)与数据验证:处理用户提交与防止常见攻击

> 10余年一线大厂经验,专注 IT 思维、架构、职场进阶。我会在公众号、今日头条持续发布最新文章,助你少走弯路。 试想你的应用是一间屋子,表单就是那扇唯一向外界打开的门。不经检验的数据如未经盘问的陌生人,涌入房间的可能不…

作者头像 李华
网站建设 2026/5/16 21:43:28

Blender FLIP Fluids源码解析:深入理解FLIP流体模拟引擎

Blender FLIP Fluids源码解析:深入理解FLIP流体模拟引擎 【免费下载链接】Blender-FLIP-Fluids The FLIP Fluids addon is a tool that helps you set up, run, and render high quality liquid fluid effects all within Blender, the free and open source 3D cre…

作者头像 李华