#流处理 #物联网设备 #SpringQL #低内存 #SQL 查询 #任务调度器

springql-core

SpringQL:适用于物联网设备和车载计算机的开源流处理器

27 个版本 (17 个重大变更)

0.18.1 2022 年 10 月 7 日
0.17.1 2022 年 7 月 13 日
0.3.3 2022 年 3 月 30 日
0.1.1 2021 年 12 月 7 日

#1408嵌入式开发

Download history 9/week @ 2024-04-02

每月 120 次下载
用于 springql

MIT/Apache

630KB
16K SLoC

SpringQL

物联网设备和车载计算机的流处理器

crates.io Crates.io docs.rs MSRV codecov License: MIT License: Apache 2.0

什么是 SpringQL?

SpringQL 是一个开源的流处理器,它使用低内存和硬限制的工作内存。它应该运行在资源有限的设备上,如物联网设备和车载计算机。

  • SQL 支持

    与其他流处理器一样,无限数量的行通过 SpringQL 系统流动。您可以将类似 SQL(连续)查询注册到系统中,以过滤、转换和分析行。SpringQL 有能力从行流中创建窗口,以便您可以执行 GROUP BYJOIN 以及针对有限行数的更多操作。

  • 小内存占用

    SpringQL 通常使用大约 1MB 的最低工作内存。即使在处理重负载(例如,使用大型窗口或快速流输入)时,SpringQL 也会尝试通过切换内部任务调度器来从高内存压力中恢复。

    您可以通过配置设置 SpringQL 允许消耗的最大内存。

为什么选择 SpringQL?

  • 边缘设备上的实时流处理完成

    某些计算使用来自边缘设备本身的实时数据,例如传感器数据。如果此类计算需要快速计算结果,您可能没有时间将数据发送到服务器并从它们那里获取结果。

    对于边缘设备上的实时处理,SpringQL 提供了通过类似 SQL 语言进行时间序列计算的基本工具,包括窗口操作。

  • 在发送到服务器之前减少数据大小

    如果您要对来自边缘设备的数据执行复杂的流分析,例如重机器学习、可视化等,您可能主要在资源丰富的服务器上执行流处理。

    如果您有大量边缘设备并且需要降低服务器中的数据传输、存储和计算成本,您可能希望在将数据发送到服务器之前先在边缘处缩小数据大小。

    SpringQL通过过滤、聚合和投影帮助您减小数据大小。

文档

请参阅https://SpringQL.github.io/以获取安装指南、教程和参考资料。

许可

根据您的选择,SpringQL遵循Apache License, Version 2.0MIT license

除非您明确表示,否则根据Apache-2.0许可协议定义的任何有意提交以供SpringQL包含的贡献,将按上述方式双重许可,不附加任何额外条款或条件。

版权(c)2022 丰田汽车公司。

依赖项

~17–32MB
~525K SLoC