首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有数据的实例化视图仍在加载数据

没有数据的实例化视图仍在加载数据
EN

Stack Overflow用户
提问于 2021-08-01 15:00:26
回答 1查看 212关注 0票数 1

我对创建物化视图WITH NO DATA的理解是,在我或我设置的策略刷新视图之前,不会加载任何记录。但是,当使用timescaledb并提供此选项时,我可以立即对表进行查询,似乎正在加载记录。

我正在关注这些文档:https://docs.timescale.com/timescaledb/latest/how-to-guides/continuous-aggregates/create-a-continuous-aggregate/#create-a-continuous-aggregate

By default, views are automatically refreshed. You can adjust this by setting the WITH NO DATA option.

代码语言:javascript
复制
CREATE MATERIALIZED VIEW timescaledb_view
WITH (timescaledb.continuous) AS
/* Query */
WITH NO DATA;

然而,当访问timescaledb_view时,不管我运行了什么查询,它似乎都完全刷新了。我是不是误解了这是如何工作的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-01 20:02:43

我假设是TimescaleDB 2.x,因为这个问题引用了最新的文档。

连续聚合的默认行为是使用real time aggregation feature,它用在原始超表上运行的视图查询的结果来补充物化数据。因此,在空的连续聚合的情况下(如问题所示),对视图的选择将查询原始超表。

可以通过在creation期间将选项timescaledb.materialized_only设置为true来禁用实时聚合,例如:

代码语言:javascript
复制
CREATE MATERIALIZED VIEW timescaledb_view
WITH (timescaledb.continuous, timescaledb.materialized_only=true) AS
/* Query */
WITH NO DATA;

或由altering the materialized view提供

代码语言:javascript
复制
ALTER MATERIALIZED VIEW timescaledb_view SET (timescaledb.materialized_only = true);

然后,如果没有通过手动或通过创建的策略完成物化,则对连续聚合的select应返回空结果。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68611644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档