雪花物化视图



我正在迁移Oracle对象到Snowflake。我在Oracle物化视图,从多个表中获取数据,但在雪花物化视图只能在单表上创建。我可以使用Oracle物化视图脚本,并使用它作为一个简单的视图加载到一个临时表,然后使用这个临时表来创建一个物化视图在它的顶部?

我使用Oracle物化视图脚本,可以使用它作为一个简单的视图加载到一个临时表,然后使用这个临时表创建物化视图的顶部吗?

不行,这不行。雪花中的物化视图不能基于另一个视图。但是不要绝望,仅仅因为在Oracle中需要物化视图并不意味着在Snowflake中也需要!相反,在传统RDBMS中需要物化视图的典型场景中,由于性能优越,在Snowflake中不需要特殊处理。当决定使用物化视图或常规视图时,Snowflake建议考虑以下事项:

  • 当下列所有条件为true时创建物化视图:

    • 来自视图的查询结果不会经常改变。这几乎总是意味着视图的底层/基表不会经常更改,或者至少在物化视图中使用的基表行子集不会经常更改。

    • 视图的结果经常被使用(通常比查询结果的变化要频繁得多)。

    • 查询占用大量资源。通常,这意味着查询会消耗大量处理时间或积分,但也可能意味着查询会为中间结果消耗大量存储空间。

  • 当下列任意项为真时创建常规视图:

    • 查看的结果经常变化

    • 结果不常被使用(相对于结果变化的速率)。

    • 查询不是资源密集型的,所以重新运行它不需要花费太多。

相关内容

  • 没有找到相关文章

最新更新