视图、物化视图和动态表¶
Snowflake 提供多种结构来查看、物化和以其他方式转换数据。 三种最常见的机制是:
视图:Snowflake 提供的所谓传统数据库视图。一般来说,视图允许像访问表一样访问查询的结果,包括将两个或多个表或其他视图链接(或用数据库术语来说,联接)到一个逻辑视图中。定义后,可以像查询任何其他表一样查询视图。
物化视图:物化视图不同于传统视图,它提供基于物化视图查询预先计算数据集的能力。相较于对视图的基表执行查询,查询物化视图会更快,因为结果经过预先计算。当查询频繁运行或足够复杂时,这种性能差异可能很明显。因此,物化视图可以加快昂贵的汇总、投影和选择操作,尤其是那些经常运行和基于大型数据集运行的汇总、投影和选择操作。
动态表:动态表物化指定查询的结果。您可以将目标表定义为动态表,并指定执行转换的 SQL 语句,而无需创建单独的目标表并编写代码来转换和更新该表中的数据。然后,后台自动化会根据您指定的刷新条件使动态表保持最新。
视图、物化视图和动态表的比较¶
对象类型 |
优点 |
缺点 |
限制和更多信息 |
---|---|---|---|
视图 |
简单,易于定义,不使用存储空间。 |
不灵活,速度慢,需要计算才能生成结果。 |
请参阅 视图局限性。 |
物化视图 |
快速检索结果。相对简单的定义。有点灵活。总是最新的。 |
引发计算以保持最新。使用存储空间。 |
有关更多信息,包括物化视图的限制,请参阅 使用物化视图。 |
动态表 |
极快的结果检索。相对简单的定义。非常灵活。刷新时的精细控制。可以提供复杂的转换。 |
需要计算成本以保持最新。使用存储空间。需要仔细考虑刷新的频率,以及刷新的时间和方式。 |
有关更多信息,请参阅 动态表。 |