随着物联网和工业物联网的迅速发展、传感器采集数据成本的降低,使得基于传感器工况数据的工艺改进、运维服务等业务成为可能。这些传感器会产生海量的时间序列数据,如何高效地管理和分析时序数据成为一项重要的挑战。
PipeLineDB是基于PostgreSQL的一个流式计算数据库,纯C代码,效率极高(32c机器,单机日处理流水达到了250.56亿条)。同时它具备了PostgreSQL强大的功能基础,正在掀起一场流计算数据库制霸的腥风血雨。

在物联网(IoT)有非常广泛的应用场景,越来越多的用户开始从其他的流计算平台迁移到pipelineDB。pipelinedb的用法非常简单,首先定义stream(流),然后基于stream定义对应的transform(事件触发模块),以及Continuous Views(实时统计模块)。数据往流里面插入,transform和Continuous Views就在后面实时的对流里的数据进行处理,对开发人员来说很友好,很高效。
具有以下特点:
持续聚合: 使用连续的SQL查询实时连续聚合,过滤和提取流数据到摘要数据,并将结果存储在PipelineDB中。
滑动窗口查询: 在自定义时间窗口(1秒,1分钟,1天,30天等)上运行连续查询,然后将窗口查询结果存储在PipelineDB中,或者在窗口时间过后丢弃原始数据。
在表上加入Streams : 流式分析数据通常需要上下文。PipelineDB的集成关系存储引擎使您能够连接历史数据的流数据,以便实时进行比较和分析。
数据结构 : 通常,大规模的实时分析可以接受100%的准确性权衡交换。PipelineDB支持数据结构和算法,例如Bloom过滤器,count-min草图,Filtered-Space-Saving top-k,HyperLogLog和t-digest,以便在高容量流上进行非常精确的近似。
1. 实时监测与告警
流式监测传感器的数据,各类工业设备传感器指标的变化,动态的触发事件响应(transform中完成)如设备告警、环保水质受到污染。
2. 设备轨迹监测
结合PostGIS,实现对汽车的位置实时跟踪和轨迹合并,动态的绘制大盘数据(分时,车辆区域分布)。
3. AI智能识别
例如在已知可疑车辆的车牌时,在流式处理天眼拍摄并实时上传的车牌信息时,通过transform设置的规则,遇到可疑车牌时,触发事件,快速的知道可疑车辆的实时行踪。

PipelineDB是一个高性能的PostgreSQL扩展,用于在时间序列数据上连续运行SQL查询。这些连续查询的输出存储在常规表中,可以像查询任何其他表或视图一样查询这些表。因此,连续查询可以看作是非常高的吞吐量、增量更新的物化视图。简言之,与传统的实时计算引擎(storm、kafka streams等)相比,PipelineDB不需要写任何程序代码,只需要写SQL即可实现实时指标的聚合计算,统计实时指标开发耗时可以从原来的天级骤降到分钟级。
PipelineDB不是一个特定的数据仓库。流式查询的输出可能在特定方式下被访问,所有写入到PipelineDB中的原始数据都不会被持久化因为它们都会在读取后被销毁。此外,如果流式计算不能以SQL的形式表达,PipelineDB可能并不是一个合适的选择。
PipelineDB现在被打包成轻量级的扩充套件,使用者将可以期待更短的发布周期,而且在下一个版本中,将会新增连续视图自动分隔(Automated Partitioning for Continuous Views)功能。官方表示,这是一个常见的使用模式,以分、小时和天来总括时间序列,而且借由时间区间来分隔资料,将能让使用者在连续视图的查询结果随着时间推移。
过去PipelineDB是以GPL v3授权,但是PipelineDB现在重新以Apache 2.0授权。考虑要将PipelineDB以扩充套件形式释出时,官方重新思考了授权方式,官方提到,虽然强制性开源和自由开源许可都各有优劣,但最终还是选择较符合公司文化的自由开源许可,也希望借由更广泛的采用,建立出强大的社群,并以可持续业务模式,支援公司的这些开源软件。
更多精彩




