视图、物化视图和动态表

Snowflake 提供多种结构来查看、物化和以其他方式转换数据。 三种最常见的机制是:

  • 视图:Snowflake 提供的所谓传统数据库视图。一般来说,视图允许像访问表一样访问查询的结果,包括将两个或多个表或其他视图链接(或用数据库术语来说,联接)到一个逻辑视图中。定义后,可以像查询任何其他表一样查询视图。

  • 物化视图:物化视图不同于传统视图,它提供基于物化视图查询预先计算数据集的能力。相较于对视图的基表执行查询,查询物化视图会更快,因为结果经过预先计算。当查询频繁运行或足够复杂时,这种性能差异可能很明显。因此,物化视图可以加快昂贵的汇总、投影和选择操作,尤其是那些经常运行和基于大型数据集运行的汇总、投影和选择操作。

  • 动态表:动态表物化指定查询的结果。您可以将目标表定义为动态表,并指定执行转换的 SQL 语句,而无需创建单独的目标表并编写代码来转换和更新该表中的数据。然后,后台自动化会根据您指定的刷新条件使动态表保持最新。

视图、物化视图和动态表的比较

对象类型

优点

缺点

限制和更多信息

视图

简单,易于定义,不使用存储空间。

不灵活,速度慢,需要计算才能生成结果。

请参阅 视图局限性

物化视图

快速检索结果。相对简单的定义。有点灵活。总是最新的。

引发计算以保持最新。使用存储空间。

有关更多信息,包括物化视图的限制,请参阅 使用物化视图

动态表

极快的结果检索。相对简单的定义。非常灵活。刷新时的精细控制。可以提供复杂的转换。

需要计算成本以保持最新。使用存储空间。需要仔细考虑刷新的频率,以及刷新的时间和方式。

有关更多信息,请参阅 动态表

语言: 中文