Postgresql - PipelineDB - Continuous Transforms

Continuous transforms 可以用来连续变换输入的时间序列数据,而不需要存储它。由于没有存储数据,Continuous transforms不支持聚合。转换的结果可以管道传输到另一个流中,或者写入外部数据存储。

 

==========================================================================

Creating Continuous Transforms

Transform被定义为PG视图,将参数action设置为transform。

CREATE VIEW name (WITH action=transform [, outputfunc=function_name( arguments ) ]) AS query

function_name 是一个可选的用户提供的函数,它被声明为不接受参数并返回类型触发器,该触发器对连续转换输出的每行执行。

arguments 是在执行触发器时要提供给函数的可选逗号分隔的参数列表。参数只能是文字字符串常量。

 

==========================================================================

Dropping Continuous Transforms

DROP VIEW continuous_transform;

 

==========================================================================

Viewing Continuous Transforms

SELECT * from pipelinedb.transforms;

 

==========================================================================

Continuous Transform Output Streams

所有 continuous transforms 都具有与之关联的输出流,这使得其他转换或连续视图很容易从它们读取。continuous transforms 的输出流只包含转换选择的任何行。

 

==========================================================================

Built-in Transform Output Functions

为了在连续转换的输出上比其内置输出流提供更大的灵活性,PipelineDB公开了一个接口,以使用触发器函数接收转换的行。附加到传输上的触发器函数然后可以对它们接收的行执行任何操作,包括写出到其他流。

目前,PipelineDB只提供一个内置的触发函数,即pipelinedb.insert_into_stream,可用于continuous transforms。它将continuous transforms的输出插入到作为字符串文字参数提供的所有流中。

 

==========================================================================

Creating Your Own Output Function

还可以创建自己的输出函数,该函数可用于 continuous transforms。

 

example:

CREATE TABLE t (user text, value int); CREATE OR REPLACE FUNCTION insert_into_t() RETURNS trigger AS $$ BEGIN INSERT INTO t (user, value) VALUES (NEW.user, NEW.value); RETURN NEW; END; $$ LANGUAGE plpgsql; CREATE VIEW ct WITH (action=transform, outputfunc=insert_into_t) AS SELECT user::text, value::int FROM stream WHERE value > 100;

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值