雪花实体化视图未更新 [英] Snowflake Materialized View Not Updating

查看:11
本文介绍了雪花实体化视图未更新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Snowflake中有不刷新的物化视图。下面是我正在做的基本示例。

--Create table and insert two records
CREATE OR REPLACE TABLE T1 (ID INTEGER);
INSERT INTO T1 VALUES (1);
INSERT INTO T1 VALUES (2);

--Create materialized view on table
CREATE OR REPLACE MATERIALIZED VIEW VW_T1 AS SELECT ID AS AVG_ID FROM T1;

--Insert two more records after creating the materialized view
INSERT INTO T1 VALUES (3);
INSERT INTO T1 VALUES (4);

-- Show metadata
SHOW MATERIALIZED VIEWS LIKE '%T1';

无论我等多久,视图似乎都没有更新。行数始终为2。BACKESS_BY始终具有值。

我做错了什么。我已按照Snowflake文档中的故障排除进行操作,但没有成功。https://docs.snowflake.com/en/user-guide/views-materialized.html#troubleshooting

马吕斯

推荐答案

这是预期行为。雪花实化视图不同于其他数据库上的物化视图。两个要点:

1)实例化视图由Snowflake自动透明维护。

2)实例化视图始终提供最新数据。如果在实体化视图更新之前运行查询,则Snowflake要么更新实体化视图,要么使用实体化视图的最新部分并从基表中检索任何需要的较新数据。

所以您不需要担心更新。它将在后台不时更新(基于一些标准,如DML大小、DML计数、时间)。如果您检查show命令输出上的"REFREHED_ON"列,您可以看到它何时更新。

-额外信息-

MV将数据保存在其自己的数据文件中。show命令显示"何时刷新数据"、"数据包含多少行"等……Marius看到了2行,因为MV在该点上有2行。当Marius向源表添加更多行时,MV不会立即复制它们。有一些阈值,但如果您尝试从MV读取,MV将从源表读取增量,并始终提供当前数据。用户不需要担心"BACHING_BY"、"REFREHED_ON"或"行数"(除非延迟是几天)。

总而言之,show命令和mv似乎工作正常。

这篇关于雪花实体化视图未更新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆