• Stars
    star
    188
  • Rank 205,283 (Top 5 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

用SQL来描述Reactor API. 可用SQL来实现数据处理逻辑,支持实时数据处理,支持聚合,分组,自定义函数等功能,让数据处理更简单.

用SQL来描述ReactorAPI进行数据处理

Codacy Badge Maven Central Maven metadata URL Build Status codecov

Reactor + JSqlParser = ReactorQL

场景

  1. 规则引擎,在线编写SQL来定义数据处理规则.
  2. 实时统计每分钟平均温度.
  3. 统计每20条滚动数据平均值.
  4. ........

特性

  1. 支持字段映射 select name username from user.
  2. 支持聚合函数 count,sum,avg,max,min.
  3. 支持运算 select val/100 percent from cpu_usage.
  4. 支持分组 select sum(val) sum from topic group by interval('10s'). 按时间分组.
  5. 支持多列分组 select count(1) total,productId,deviceId from messages group by productId,deviceId.
  6. 支持having select avg(temp) avgTemp from temps group by interval('10s') having avgTemp>10 .
  7. 支持case when select case type when 1 then '警告' when 2 then '故障' else '其他' end type from topic.
  8. 支持Join select t1.name,t2.detail from t1,t2 where t1.id = t2.id.

例子

引入依赖

<dependency>
 <groupId>org.jetlinks</groupId>
    <artifactId>reactor-ql</artifactId>
    <version>{version}</version>
</dependency>

用例:

  ReactorQL.builder()
        .sql("select avg(this) total from test group by interval('1s') having total > 2") //按每秒分组,并计算流中数据平均值,如果平均值大于2则下游收到数据.
        .build()
        .start(Flux.range(0, 10).delayElements(Duration.ofMillis(500)))
        .doOnNext(System.out::println)
        .as(StepVerifier::create)
        .expectNextCount(4)
        .verifyComplete();

更多用法请看 单元测试

More Repositories

1

jetlinks-community

JetLinks 基于Java8,Spring Boot 2.x ,WebFlux,Netty,Vert.x,Reactor等开发, 是一个全响应式的企业级物联网平台。支持统一物模型管理,多种设备,多种厂家,统一管理。统一设备连接管理,多协议适配(TCP,MQTT,UDP,CoAP,HTTP等),屏蔽网络编程复杂性,灵活接入不同厂家不同协议等设备。实时数据处理,设备告警,消息通知,数据转发。地理位置,数据可视化等。能帮助你快速建立物联网相关业务系统。
Java
5,219
star
2

jetlinks-ui-antd

jetlinks community ant design 演示地址:http://demo.jetlinks.cn 账号/密码: test/test123456
TypeScript
517
star
3

jetlinks

JetLinks Core
486
star
4

rule-engine

基于流程,事件驱动,可拓展,响应式,轻量级的规则引擎。
Java
259
star
5

jetlinks-core

jetlinks 核心模块,统一相关API
Java
90
star
6

jetlinks-ui-vue

JetLinks 前端Vue版本
Vue
87
star
7

device-simulator

基于netty的设备模拟器,模拟设备消息收发,压力测试。
Java
74
star
8

jetlinks-official-protocol

jetlinks 官方设备接入协议
Java
68
star
9

demo-protocol

此协议已弃用,请使用官方协议 https://github.com/jetlinks/jetlinks-official-protocol
Java
60
star
10

jetlinks-docs

相关文档
JavaScript
50
star
11

netty-mqtt-client

Java
41
star
12

jetlinks-gateway

设备协议网关,用于接收(MQTT,UDP)消息并将报文协议转换为jetlinks协议
Java
40
star
13

jetlinks-supports

JetLinks 提供的一些默认实现以及集成
Java
35
star
14

jetlinks_app

基于Flutter的Jetlinks APP
Dart
26
star
15

jetlinks-platform

已迁移到. https://github.com/jetlinks/jetlinks-community
JavaScript
24
star
16

jetlinks-ui-components

JetLinks 前端通用组件库
HTML
16
star
17

jetlinks-registry-redis

设备注册中心redis实现
Java
11
star
18

coap-codec

coap编解码器
Java
10
star
19

ui-visualization

可视化
TypeScript
10
star
20

jetlinks-plugin

插件化
Java
8
star
21

jetlinks-openapi-demo

Java
8
star
22

micro-service-examples

微服务接入例子
Java
5
star
23

jetlinks-api-sdk

OpenAPI SDK
Java
4
star
24

transparent-protocol

透传协议
Java
3
star
25

zlmedia4j

内嵌运行ZLMediaKit
Java
3
star
26

jetlinks-sdk

JetLinks 开发统一SDK包
Java
2
star
27

reactor-mqtt

reactor mqtt
1
star