1.基本介绍

Siddhi 提供以下功能,

流式数据分析

为分析操作员提供编排数据流、计算分析和检测 来自多个不同实时数据源的事件数据模式的软件,以允许开发人员构建能够实时感知、思考和行动的应用程序。

复杂事件处理 (CEP)

“CEP 是一种计算,其中有关事件的传入数据被提炼成更有用、更高级别的‘复杂’事件数据,从而提供对正在发生的事情的洞察力。”

“ CEP 是事件驱动的,因为计算是由接收事件数据触发的。CEP 用于要求高、持续智能的应用程序,以增强态势感知并支持实时决策。”

流数据集成

流数据集成是一种通过处理、关联和分析内存中的数据来集成多个系统的方法,同时不断地将数据从一个系统实时移动到另一个系统。

警报和通知

该系统根据定义的 KPI 和其他分析持续监控事件流,并发送警报和通知。

自适应决策一种根据预定义规则、连接系统的当前状态和机器学习技术动态做出实时决策的方法。


2.使用流程

当Siddhi 应用程序启动时:

定义输入流,输出流,编写Siddhi查询sql;
接收各种流将事件传递给查询以进行处理。
根据查询完成的处理生成新事件。
最后,通过输出将新生成的事件发送到流。

3.sql样例

define stream TemperatureStream(sensorId string, temperature double);@info(name = 'Overall-analysis')
from TemperatureStream#window.timeBatch(1 min)
select avg(temperature) as avgTemperature,max(temperature) as maxTemperature,count() as numberOfEvents
insert into OverallTemperatureStream;@info(name = 'SensorId-analysis')
from TemperatureStream#window.timeBatch(30 sec, 0)
select sensorId,avg(temperature) as avgTemperature,min(temperature) as maxTemperature
group by sensorId
having avgTemperature > 20.0
insert into SensorIdTemperatureStream;
define stream InputStream(jsonString string);from InputStream
select json:toObject(jsonString) as jsonObj
insert into PersonalDetails;from PersonalDetails
select jsonObj,json:getString(jsonObj,'$.name') as name,json:isExists(jsonObj, '$.salary') as isSalaryAvailable,json:toString(jsonObj) as jsonString
insert into OutputStream;from OutputStream[isSalaryAvailable == false]
selectjson:setElement(jsonObj, '$', 0f, 'salary') as jsonObj
insert into PreprocessedStream;
TemperatureStream  (sensorId  string ,  temperature  double );define table TemperatureLogTable (sensorId string, roomNo string, temperature double);@store(type="rdbms",jdbc.url="jdbc:mysql://localhost:3306/sid",username="root", password="root",jdbc.driver.name="com.mysql.jdbc.Driver")
define table SensorIdInfoTable (sensorId string, roomNo string);@info(name = 'Join-query')
from TemperatureStream as t join SensorIdInfoTable as son t.sensorId == s.sensorId
select t.sensorId as sensorId, s.roomNo as roomNot.temperature as temperature
insert into TemperatureLogTable;

4.总结:
优点:
1.sql模式,本身支持一些函数运算;

2.量词,组合模式,连续策略较为丰富;

3.支持不发生算子;

4.时间窗口内,数据聚合在函数支持下较为方便;

5.事件流可以支持和外部存储join;

缺点:

1.使用Siddhi Streaming SQL语言将处理逻辑编写为Siddhi 应用程序,开发和维护比java代码高,在sql里数据处理/异常/监控等不够灵活可控;

2.sql模式开发,对于现有的复杂json结构数据源,解析处理不友好;

3.长窗口聚合数据时,数据在内存中累积;

4.海外项目,文档资料少,维护成本高;

5.当前的复杂嵌套回溯类型,sql模式难以实现;

Siddhi cep相关推荐

  1. cep java_使用两次窗口查询Siddhi CEP

    您可以执行以下操作: define stream webvisit (idClient string, idProduct string, chanel string) from visits[pro ...

  2. 【Siddhi】Siddhi的window操作

    1.概述 fxjwind Siddhi CEP Window机制 https://docs.wso2.com/display/CEP400/SiddhiQL+Guide+3.0#SiddhiQLGui ...

  3. 盘点2021年Apache年报中出现的国产项目

    盘点2021年Apache年报中出现的国产项目:ShardingSphere, IoTDB, Carbon Data, Eagle, Kylin, Apisix, DolphinScheduler A ...

  4. 盘点2017年晋升为Apache TLP的大数据相关项目

    本文原文:https://www.iteblog.com/archives/2310.html,如下面格式排版错乱,请点击下面阅读原文进入本博客阅读. 本文主要盘点了 2017 年晋升为 Apache ...

  5. cep java_Siddhi cep java 集成简单使用

    Siddhi 是一个开源的cep (Complex Event Processing)类库,有一个明显的例子是uber 的事件处理,具体可以google 几张参考cep 以及siddhi 图 java ...

  6. GPS定位精度单位CEP、RMS、2DRMS

    GNSS定位准确度: 指的是是否与事实一致,"正确性"或者"准确度".英文accuracy. GNSS定位精度:  指的是所得数值与真实值之间的精确程度,&qu ...

  7. 定位的准确度与精度指标定义——RMS,CEP,Sigma

    GNSS定位准确度: 指的是是否与事实一致,"正确性"或者"准确度".英文accuracy. GNSS定位精度:  指的是所得数值与真实值之间的精确程度,&qu ...

  8. sql 差值_使用Blink CEP实现差值聚合计算

    简介: 本文介绍通过CEP实现实时流上的差值聚合计算. 使用Blink SQL+UDAF实现差值聚合计算介绍了如何使用Blink SQL+UDAF实现实时流上的差值聚合计算,后来在与@付典就业务需求和 ...

  9. v4l2 框架下如何设置分辨率_如何在端外投放的场景下实现前端实时CEP框架?

    背景 复杂事件处理(Complex Event Processing,以下简称CEP)在闲鱼内得到了广泛应用,基于用户使用闲鱼的实时行为,为用户提供更加丰富的优质信息与服务.闲鱼技术公众号有介绍过CE ...

最新文章

  1. 相比Redis,Memcached真的过时了吗?
  2. 尝试在视图不在窗口层次结构中的UIViewController上呈现UIViewController
  3. Unity 编辑器扩展 场景视图内控制对象
  4. python读取文件数据堆栈溢出的原因_堆栈溢出一般是什么原因?
  5. Android逆向笔记-通过ApkTool源码分析未能反编译APK的原因
  6. linux bash技巧_Bash提示技巧和窍门
  7. php mysql 框架 php5.2_简单快速安装Apache+PHP+MySql服务环境(四)—— 将php版本升级到7.2...
  8. 程序发布以后,如何修改安装URL
  9. 数据说话!UCloud「硬刚」腾讯云,高性能 AMD 云主机哪家强?
  10. git pull命令报错
  11. String类两种实例化方式的区别
  12. python安装scipy库出错_安装Scipy失败 解决途径
  13. 网络打印机 这台计算机上没有安装,Win7添加网络打印机时提示打印处理器不存在怎么办?...
  14. matlab 载波相位估计,光纤通信相干检测系统中波形处理与载波相位估计的研究...
  15. 关闭计算机的正确操作方法,电脑基础知识启动和关闭电脑的正确方法
  16. 战胜拖延症的利器—Product Backlog
  17. Zabbix 监控 Windows主机
  18. python mac可以运行win不能运行_Pymssql程序可以在mac上运行,但不能在windows上运行...
  19. 【啃书】《智能优化算法及其MATLAB实例》例9.3运用BP网络预测数据
  20. Kmp算法之 求最大公共前后缀

热门文章

  1. 网络游戏防沉迷系统7月16日起正式执行
  2. 平安科技有新招:游戏防沉迷更彻底 1
  3. 为给定的Lambda表达式构建表达式树
  4. c++ strcat
  5. 12306自动刷票下单-查票下单
  6. 中小型企业erp选型
  7. 2018-09-25工作日报
  8. iVox (Faster-Lio): 智行者高博团队开源的增量式稀疏体素结构
  9. 揭秘:各大视频网站是这样密谋秀场的
  10. 团队作业第二次—项目选题报告(待就业六人组)