zoukankan      html  css  js  c++  java
  • 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,性能应该会有很大一部分提升,有待测试。

      

  • 相关阅读:
    第八周上机作业
    第七次作业
    第七周上机
    第六周作业
    4.9上机作业
    第五周作业
    第四周作业
    第二次上机作业
    第三周作业
    第九周上机练习
  • 原文地址:https://www.cnblogs.com/sangli/p/4701311.html
Copyright © 2011-2022 走看看