1.0.0-a6 |
|
---|
#6 in #spring-ql
660KB
16K SLoC
SpringQL
物联网设备和车载计算机的流处理器
什么是SpringQL?
SpringQL是一个开源的流处理器,它使用低和硬限制的工作内存。它应该在资源匮乏的环境中运行,例如物联网设备和车载计算机。
-
SQL支持
与其他流处理器类似,无限数量的行通过SpringQL系统流动。您可以注册类似SQL的(连续)查询来过滤、转换和分析行。SpringQL能够从行流中创建窗口,从而可以对有限数量的行执行
GROUP BY
、JOIN
等操作。 -
小内存占用
SpringQL通常与大约1MB的工作内存一起工作。即使在处理重负载(例如,使用大型窗口或快速流输入)时,SpringQL也会通过切换内部任务调度器来尝试从高内存压力中恢复。
您可以通过配置设置SpringQL允许消耗的最大内存。
为什么选择SpringQL?
-
边缘端完成实时流处理
某些计算使用来自边缘设备本身的实时数据,例如传感器数据。如果这些计算需要快速计算结果,您可能没有时间将数据发送到服务器并从它们那里获取结果。
对于边缘设备的实时处理,SpringQL提供了通过类似SQL语言进行时间序列计算的基本工具,包括窗口操作。
-
在发送到服务器之前减少数据大小
如果您要执行复杂的流分析,例如使用来自边缘设备的数据进行重机器学习或可视化,您可能主要在资源丰富的服务器上执行流处理。
如果您拥有大量边缘设备并需要减少数据传输、存储和服务器计算的成本,您可能希望在将数据发送到服务器之前在边缘减少数据大小。
SpringQL可以帮助您通过过滤、聚合和投影来减少数据大小。
文档
阅读https://SpringQL.github.io/获取安装指南、教程和参考。
许可
本软件受Apache License, Version 2.0或MIT许可的许可,您可任选其一。
除非您明确声明,否则您向SpringQL提交的任何贡献,根据Apache-2.0许可定义,将双重许可,如上所述,无需任何额外条款或条件。
版权所有 (c) 2022 丰田汽车公司。
依赖项
~18–33MB
~546K SLoC