PipeLineDB数据库介绍和总结

PipelineDB 是开源的关系型数据库,可以在 streams 中持续运行 SQL 查询,逐渐将结果存储在表中。本文将对PipelineDB做相应的总结。

1、基于Postgre数据库, 可以使用数据库库的函数,表达式,存储过程等功能,自身功能就已经足够强大了。而且还支持proxy等分表分库插件。

2、所有的流必须以Stream开始,先创建stream然后才可以使用view或者transform来查询。stream中的数据必须通过insert插入。

3、view和transform的区别在于,view的计算结果会保存在pg数据库中,transform不会保存,只能定义触发器来将结果输出到其他地方。

4、可以在存储过程中调用view,但是 transform由于结果已经被重定向了,所以无法调用。

5、在没有transofrm或者view的情况下性能很高,在8U32G的虚拟机下性能接近10WTPS。如果使用view之后性能会急剧下降。即使将pg的data空间放在内存盘中,性能也会下降的很厉害,一个stream下挂了10个view,TPS大约在3000左右。可见,PipelineDB的性能消耗在于计算部分,即使数据不落盘,但是计算仍然还是比较消耗性能。

窗口:

PipelineDB中只支持滑窗。使用当前时间和到达时间做对比,来确定窗口范围。

Clock_Timestmap:当前时间,Arrival_timestamp到达pipelinedb的时间。

比如一个最近1分钟的滑动窗:

[sql] view plain copy

  1. CREATE CONTINUOUS VIEW recent_users WITH (sw = '1 minute') AS
  2. SELECT user_id::integer FROM stream;  

pipelinedb会将语句改写为:

[sql] view plain copy

  1. CREATE CONTINUOUS VIEW recent_users AS
  2. SELECT user_id::integer FROM stream  
  3. WHERE (arrival_timestamp > clock_timestamp() - interval '1 minute');  

多个不同大小的滑窗之间可以进行合并,比如5分钟,10分钟的滑窗,在pipelinedb中会进行合并,值创建一个10分钟的滑窗。这样可以有效减少数据量。

步长决定了窗口内数据更新的频率,pipelinedb使用一个1-50的范围数字用来描述更新粒度,单位为百分比,步长是数据更新的间隔,数据一个步长一个步长的过期

一个较小的步长,滑窗统计会更加精确,但是会占用更多的数据存储空间,比如1小时的滑窗,步长为5,也就是3分钟更新一次数据,那么物化视图的表中数量就会比步长为10的窗口数据多出一倍。

但是这样统计结果也会更加精确,统计精度在3分钟,而10的步长,统计进度就会在6分钟。误差就大了一倍。

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏微信公众号:Java团长

从零讲Java,给你一条清晰地学习道路!该学什么就学什么!

主要学习: 1.向量,链表,栈,队列和堆,词典。熟悉 2.树,二叉搜索树。熟悉 3.图,有向图,无向图,基本概念 4.二叉搜索A,B,C类熟练,9大排序熟悉。 ...

371
来自专栏YoungGy

MMD_1a_MapReduce

MapReduce Distributed File System 传统的单机结构与分布式结构 分布式计算的难题 MR的解决 DFS概述 Computation...

2278
来自专栏人工智能的秘密

Tensorflow教程:GPU调用如何实现

今天,给大家分析一下Tensorflow源码之GPU调用是如何实现的?

6790
来自专栏java思维导图

从零讲JAVA ,给你一条清晰地学习道路!该学什么就学什么!!

主要学习: 1.向量,链表,栈,队列和堆,词典。熟悉 2.树,二叉搜索树。熟悉 3.图,有向图,无向图,基本概念 4.二叉搜索A,B,C类熟练,9大排序熟悉。 ...

1125
来自专栏瓜大三哥

视频压缩编码技术(H.264) 之SP/SI帧

当前视频编码标准主要包括三种的帧类型:I帧、P帧和B帧。随着H.264/AVC为了顺应视频流的带宽自适应性和抗误码性能的要求,又定义了两种新的帧类...

471
来自专栏专知

最新Apache Spark平台的NLP库,助你轻松搞定自然语言处理任务

【导读】这篇博文介绍了Apache Spark框架下的一个自然语言处理库,博文通俗易懂,专知内容组整理出来,希望大家喜欢。 ▌引言 ---- Apache S...

3908
来自专栏IT大咖说

小米深度学习平台架构与实现

摘要 深度学习的概念源于人工神经网络的研究,含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的...

3536
来自专栏数据和云

你不知道的事:AWR 基线和 AWR Compare Period Report 功能介绍

作者 | 邓秋爽:云和恩墨技术工程师,有超过七年超大型数据库专业服务经验,擅长 Oracle 数据库优化、SQL 优化和 Troubleshooting。

742

Ray:AI的分布式系统

随着机器学习的算法和技术的进步,越来越多的机器学习应用程序需要多台机器,并且必须利用并行性。但是,在集群上进行机器学习的基础设施仍然是特设的。尽管针对特定用例(...

2286
来自专栏小狼的世界

设备尺寸杂谈:响应性Web设计中的尺寸问题

目前在为移动设备设计界面时,最头疼的问题莫过于尺寸的问题。我们无法使用固定的尺寸来进行设计,因为不同设备的大小千变万化。但是如果我们了解了设备的物理特性后,这将...

862

扫码关注云+社区