pipelineDB学习笔记-3. Continuous Transforms (连续转换)

  以下内容为本人根据pipelineDB官网内容进行翻译,如有不妥之处请指正,谢谢大家

        Continuous Transforms (连续转换)

  一、定义:

    Continuous Transforms (我意译为“连续转换”),是用来将没有进行存储的时序化数据连续不断的进行转换。由于没有数据被存储,所以“连续转换”不支持聚合功能。由“连续转换”得到的结果可以通过管道(pipe)连接到其他的流或者写入到外部数据来进行存储。简单的说就是将时序化数据转换为一个新的stream或者持久化数据进行存储。

   二、创建:

    创建语句与创建连续视图的语句相似,将”action”的参数换为”transform”即可。

    语句:CREATE VIEW  名称   (WITH action=transform  [ , outputfunc=输出函数(参数列表) ]) AS query;

    query: pipelineDB是基于postgreSQL改进的,这里的query是指 postgreSQL中的 “select ” 语句.

    

 

    (以上是官网关于 query 的截图,表示query可以支持的选项)

  三、 删除:

    DROP   VIEW    要删除的连续转换的名称;

  四、查看所有定义的“连续转换”:

     SELECT  *   FROM   pipelinedb.transforms;

  五、“连续转换”的输出流:

    所有的“连续转换”都有一个与它自身相关联的输出流,通过使用这个输出流可以“读取” “连续转换”所指定的数据.

    例如:通过join关联stream与table所生成的“连续转换”,“连续转换”中的数据可以通过 output_of( ) 函数读取。

  六、内置输出函数:

      为了比内置输出函数提供更多的灵活性,pipelinedb提供了一个使用“触发器函数”来接收“连续转换”中所有数据列的接口。 通过将“触发器函数”附加到“连续转换”上,你可以对接收到的数据做任何你想做的事,包括“写入”到其他的stream中.

      pipelineDB提供了一个内置触发器 “pipelinedb.insert_into_stream”,可以与“连续转换”一同使用。这个触发器会将数据插入到所有在参数列表中指定的stream中。下面的例子就是将stream中所有的偶数插入到“even_stream”中    注意:被插入数据的stream,必须是已经存在的,否则会抛出错误。

      

  七、创建自己的输出函数:

    1. 你也可以创建自己的输出函数,以便与”连续转换”一同使用.下面的例子就是将“连续转换”的指定的数据插入到一张表中.

    

 

posted @ 2018-12-11 11:03  朝花不夕拾  阅读(513)  评论(0编辑  收藏  举报