pipelineDB初体验

官网: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 view's 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,性能应该会有很大一部分提升,有待测试。

  

上一篇:潭州课堂25班:Ph201805201 WEB 之 页面编写 第四课 登录注册 (课堂笔记)


下一篇:《TCP/IP详解卷1:协议》第4章 ARP:地址解析协议-读书笔记