Pipelinedb的实现原理是啥

PipelineDB中的3个概念
1:Stream
2:Continuous Views
3:Transform

Stream在PG中是以FDW来实现的。而用ZMQ来做数据的接收
Pipelinedb的实现原理是啥

数据的流程大概如上图。
CV在PG中是一个物化视图,具体数据会存储在CV_mrel中。这个就是物理表数据文件
Pipelinedb的实现原理是啥

如果想你问的做5分钟做agg这种属于sliding window Sliding Windows - PipelineDB 0.9.7 documentation
这种数据大部分存储未Bytea\u0026amp;hll。
Pipelinedb的实现原理是啥

这部分的工作是通过combiner来完成的。数据插入Stream(FDW)后,然后通过ZMQ到对应的worker process 然后再到对应的combiner process 最后写对应的物理表。Combiner 主要的工作就是你提到的5分钟聚合,这个对应的内部实现你可以看看
numeric_poly_sum
numpolyaggstaterecv这2个函数。

【Pipelinedb的实现原理是啥】 而5分钟这个就是通过arrival_timestamp来实现的。
可以通过看CV_mrel发现创建的sliding windown CV会多一个字段,在进行查询的时候就会用这个字段来判断的。

Transform这个功能主要是Stream to any.Continuous Transforms
因为官方给出的接口是个trigger,所以可以自定义,Tuple可以transform到你想的任何地方。
Pipelinedb的实现原理是啥

大概的一个套路是这样的。
如果有什么疑问欢迎讨论。

■网友
应该是基于sliding window的,当这个记录进入window的时候就会加入计算,至于avg,是一种stateful的计算,保存了中间状态(比如记录sum和count),再加入一个元素计算新的avg也不难


    推荐阅读