esber 团队自豪地宣布, 从2018年11月起, 第一个编译器将流媒体 sql 转换为 jvm 字节代码, 该代码可与刚刚发布的 esber 版本8.0.0 一起使用。
自2003年商业供应商开始提供复杂事件处理产品以来, sql 流式处理一直存在 [1, 见2003年的斯特雷布塞 (2003年)、coral8 和 aleri (2006年)]。
esber 是流媒体 sql 和复杂事件处理的第一个开源实现, 并于2006年发布了第一个版本 [1, 2]。esber 是 gplv2 许可下的开源软件。
esber 编译器将流 sql 编译为本机 jvm 字节代码。esber 运行时动态地在运行时加载字节代码, 以便为到达的事件执行。在内部, esber 运行时管理数据结构和索引, 以便快速匹配传入事件和查询的时间, 并处理原始数据, 从而允许查询生成具有接近零延迟和出色吞吐量的回调输出。
esber 对流式 sql 的实现称为事件处理语言 (epl)。它是一种声明性的、面向数据的语言, 用于处理基于高频时间的事件数据。epl 符合 sql-92 标准, 并扩展用于分析一系列事件和时间 [3]。
复杂事件处理是一种技术, 它将来自多个源的数据组合在一起, 并考虑时间的流逝, 以便推断建议更复杂情况的事件或模式。目标是吸收原始数据, 确定有意义的事件 (如机会或威胁), 并尽快做出回应 (来源:维基百科)。
流式 sql 与复杂事件处理相关, 因为 sql 是包含流和分析事件和时间的语言的基础。
将 sql 编译为 jvm 字节代码允许在编译时和运行时进行优化。编译时优化包括对象的同地置, 这减少了堆内存占用和相关成本。编译到字节代码允许 java 实时编译器将字节代码转换为本机代码 [4]。esber 允许在运行时编译、部署和取消部署查询。
引用
[1]环保市场调查-2016
[2]埃斯伯改变历史
[3]电子文档