table 可以用作 PipelineDB 中的流吗

Can table be used as a stream in PipelineDB

假设我们有一个像这样的 table test_table

create table test_table(x integer);

是否可以从此 table 创建连续视图?像这样:

create continuous view test_view as select sum(x) as x_sum from test_table;

当我运行上面的命令时,我得到错误:

test=# create continuous view test_view as select sum(x) as x_sum from test_table; 错误:连续查询必须在 FROM 子句中包含一个流 LINE 1: ...ous view test_view as select sum(x) as x_sum from test_table... ^ 提示:要在连续查询中包含关系,请将其与流连接。

这是文档:

创建连续视图的语法如下:

CREATE CONTINUOUS VIEW name AS query

其中查询是 PostgreSQL SELECT 语句的子集:

SELECT [ DISTINCT [ ON ( expression [, ...] ) ] ]
    expression [ [ AS ] output_name ] [, ...]
    [ FROM from_item [, ...] ]
    [ WHERE condition ]
    [ GROUP BY expression [, ...] ]
    [ HAVING condition [, ...] ]
    [ WINDOW window_name AS ( window_definition ) [, ...] ]

其中 from_item 可以是以下之一:

stream_name [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
table_name [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
from_item [ NATURAL ] join_type from_item [ ON join_condition ]

根据这个 from_item 也可以是 table。文档有错吗?如果无法从 table 创建连续视图,是否可以将当前数据从 table 加载到某个流。

来自 PipelineDB 的 Jeff。

您是否有理由想要像这样尝试创建常规 table 的连续视图?为什么不直接创建常规视图或物化视图?

PipelineDB 旨在持续分析无限的原始数据流,因此数据不需要按常规 tables 存储,然后以临时方式处理,因此这个用例正好相反PipelineDB 的预期用途。

对 Jeff 来说,物化视图可能已经过时,常规视图不会带来任何性能优势。 因此,有理由从 table 创建 CONTINUOUS VIEW,根据文档,这应该是可能的。

所以假设这可以被认为是一个错误。