可以将表用作PipelineDB中的流

时间:2017-11-08 13:15:08

标签: pipelinedb

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

create table test_table(x integer);

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

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

当我运行上述命令时,我收到错误:

test =#创建连续视图test_view,选择sum(x)作为来自test_table的x_sum; 错误:连续查询必须包含FROM子句中的流 第1行:... ous视图test_view作为来自test_table的选择总和(x)x_sum ...                                                              ^ 提示:要在连续查询中包含关系,请使用流加入它。

这是文档:

以下是创建连续视图的语法:

CREATE CONTINUOUS VIEW name AS query

其中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也可以是一张表。文档错了吗?如果无法从表中创建连续视图,有办法将当前数据从表加载到某个流。

2 个答案:

答案 0 :(得分:1)

来自PipelineDB的Jeff。

您是否有理由尝试从这样的常规表创建连续视图?为什么不创建常规视图或物化视图?

PipelineDB旨在持续分析无限的原始数据流,这样数据就不需要存储为常规表,然后以临时方式处理,因此这个用例与PipelineDB的预期目的完全相反。

答案 1 :(得分:0)

对Jeff而言,物化视图可能已过时,常规视图不会带来任何性能上的好处。 因此,有理由从表中创建CONTINUOUS VIEW,并且根据文档,这应该是可能的。

所以假设这可以视为错误。