当前位置: 首页 > news >正文

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 实现版本。此解析器为支持相关工作构建,欢迎反馈和贡献代码。

http://www.jsqmd.com/news/830679/

相关文章:

  • JS逆向实战:瑞数412会话还原
  • 2026年南京AI搜索推广公司权威榜单 首选南京微尚信息技术有限公司 - 奔跑123
  • 植物大战僵尸 (废物版 杂交版 融合版)2026最新版免费下载(看到请立即转存 资源随时失效)pc手机通用
  • OpenAI IPO 前夕大重组:三大产品线合并,超级应用能否助力突围?
  • osu!framework 项目模板详解:从空项目到完整游戏
  • Word里MathType插件报错?别慌,手把手教你搞定MathPage.wll文件丢失问题
  • 在.NET 5/6控制台项目里,用IronPython 3.4调用Python的requests库做爬虫(附虚拟环境配置)
  • 3D打印螺纹强度提升实战指南:Fusion 360 FDM螺纹优化完整方案
  • 鲸鱼蜣螂算法光伏MPPT优化技术【附代码】
  • Apple Music JS部署与发布:从开发到生产环境的完整流程
  • Blender FLIP Fluids源码解析:深入理解FLIP流体模拟引擎
  • aztfexport完整指南:从零开始将Azure基础设施纳入Terraform管理
  • STM32F030驱动74HC595:硬件SPI与软件SPI的保姆级对比教程(附代码)
  • Hash-Buster未来展望:AI驱动的智能哈希破解技术
  • MATLAB bandpass函数实战:用音乐合成和滤波案例,5分钟搞懂信号处理核心参数
  • 模拟人生4mod整合包下载及安装使用指南(已汉化)2026最新版分享
  • 暗黑破坏神2重制版自动化工具:D2R像素机器人完整指南
  • 保姆级教程:用Allegro 17.4给你的PCB走线“美颜”,从泪滴到渐变线的完整设置与避坑指南
  • ArcMap出图布局避坑指南:从图例乱跑到比例尺不显示,一次搞定所有小毛病
  • Tokio异步运行时CPU绑定实践:提升Rust高并发服务性能
  • 你的电脑风扇为什么总是“神经质“?用FanControl实现智能静音控制的5个关键思维转变
  • X2BOT轮式机器人室内路径规划算法【附程序】
  • 为什么7-Zip-zstd让我的压缩效率提升了3倍?
  • 刻划光栅与全息光栅:原理、性能对比与工程选型指南
  • PyVista
  • 电力电子变换器多时间尺度建模算法【附模型】
  • C++高效神器 boost::circular_buffer 深度解析与实战
  • 终极免费Switch模拟器:Ryujinx完整使用指南与配置教程
  • AI产业发展全景解析:技术突破、行业落地与未来展望
  • 抖音弹幕抓取工具DouyinBarrageGrab:3步实现实时弹幕数据采集与分析