gpt4 book ai didi

stream - 如何从 pipelinedb 中的连续 View 流式传输输出?

转载 作者:行者123 更新时间:2023-12-01 11:58:13 26 4
gpt4 key购买 nike

我已经设置了 pipelinedb 并且效果很好!我想知道是否可以在更新 View 中的值后从连续 View 中流式传输数据?也就是说,让一些外部进程对 View 的更改采取行动。

我希望将 View 生成的指标流式传输到仪表板中,我不想使用轮询数据库来实现此目的。

最佳答案

从 0.9.5 开始,连续触发器已被移除,取而代之的是使用输出流和连续转换。 (首先由 DidacticTactic 建议)。连续 View 的输出本质上是一个流,这意味着您可以基于它创建连续 View 或转换。

简单示例:

  1. 首先创建流和连续 View 。
CREATE STREAM s (
x int
);

CREATE CONTINUOUS VIEW hourly_cv AS
SELECT
hour(arrival_timestamp) AS ts,
SUM(x) AS sum
FROM s GROUP BY ts;
  1. 现在每个连续 View 都有一个输出流。您可以使用 output_of 创建基于 View 输出的转换。在转换中,您可以访问分别代表旧值和新值的元组 oldnew。 (0.9.7 有第三个称为 delta)因此您可以创建一个使用“hourly_cv”输出的转换,如下所示:
CREATE CONTINUOUS TRANSFORM hourly_ct AS
SELECT
(new).sum
FROM output_of('hourly_cv')
THEN EXECUTE PROCEDURE update();
  1. 在这个例子中,我调用了 update,我们仍然需要定义它。它需要是一个返回触发器的函数。
CREATE OR REPLACE FUNCTION update()
RETURNS trigger AS
$$
BEGIN
// Do anything you want here.
RETURN NEW;
END;
$$
LANGUAGE plpgsql;

我找到了 0.9.5 release notes blog post有助于理解输出流以及为什么不再需要连续触发器。

关于stream - 如何从 pipelinedb 中的连续 View 流式传输输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44185327/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com