码迷,mamicode.com
首页 > 数据库 > 详细

pipelineDB初体验

时间:2015-08-04 12:43:52      阅读:745      评论:0      收藏:0      [点我收藏+]

标签:

官网:http://www.pipelinedb.com/

pipelineDB是基于postgres的stream数据库。完全兼容pg的东西。

由于产品需要解决性能这块瓶颈,老大让试试这款基于流计算的数据库。

 

[pipeline@localhost ~]$ pipeline

pipeline (9.4.4)

Type "help" for help.

 

Create a static stream

CREATE STREAM stream_test1 (x integer, y integer,z text);

 

Create a CONTINUOUS 

CREATE CONTINUOUS VIEW v_sum as select sum( x + y ) FROM stream_test1;
CREATE CONTINUOUS VIEW V_GROUP AS SELECT count(*) as coun,x,y,z FROM stream_test1 GROUP BY x,y,z;

 

Stream 只能被CONTINUOUS查询,如果直接查询会报错:

pipeline=# select * from stream_test1;
ERROR:  "stream_test1" is a stream
HINT:  Streams can only be read by a continuous views FROM clause.

 

 

插入数据到Stream

pipeline=# INSERT INTO stream_test1(x,y,z) VALUES(1,2,A),(3,4,B),(5,6,C),(7,8,D),(1,2,A);
INSERT 0 5

 

查询结果

pipeline=# select * from v_sum;
 sum 
-----
  39
(1 row)

pipeline=# select * from v_group;
 coun | x | y | z 
------+---+---+---
    1 | 5 | 6 | C
    1 | 7 | 8 | D
    1 | 3 | 4 | B
    2 | 1 | 2 | A
(4 rows)

 

在创建CONTINUOUS,后面select能写分析函数,各种over(),这样数据在不同窗口内时时计算,能很方便的解决性能问题。

这个view没太详细研究,貌似跟oracle的物化视图类似。

 

关于UDF

PG是支持存储过程的,自己写FUNCTION,也支持PLLUA。

因为数据是从外部入库,我这块想把PLLUA集成到PG里面来,自己写LUA来做库内计算。

拿LUA替代plpgsql,性能应该会有很大一部分提升,有待测试。

 

  

pipelineDB初体验

标签:

原文地址:http://www.cnblogs.com/sangli/p/4701311.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!