Snowflake - 表格和视图类型
表格类型
Snowflake 根据其用途和性质将表格分为不同类型。有四种类型的表 −
永久表
永久表在数据库中创建。
这些表将一直存在,直到从数据库中删除或丢弃。
这些表旨在存储需要最高级别数据保护和恢复的数据。
这些是默认表类型。
这些表中的时间旅行最多可达 90 天,即,某人可以获取最多 90 天前的数据。
它是故障安全的,如果因故障而丢失数据,可以恢复。
临时表
顾名思义,临时表的存在时间较短。
这些表会持续一个会话。
如果用户想要一个临时表用于后续查询和分析,那么一旦会话完成,它就会自动删除临时表。
它主要用于 ETL/ELT 等临时数据
临时表中可以进行时间旅行,但只能是 0 到 1 天。
它不是故障安全的,这意味着数据无法自动恢复。
临时表
这些表会一直存在,直到用户删除它们。
多个用户可以访问临时表。
它用于"数据持久性"是必需的,但不需要"数据保留"更长时间。例如,网站的访客详细信息,访问网站并在网站上注册的用户的详细信息,因此注册后,可能不需要将详细信息存储在两个不同的表中。
时间旅行在临时表中是可能的,但只能持续 0 到 1 天。
它也不是万无一失的。
外部表
这些表会一直存在,直到被删除。
这里使用了删除这个词,因为外部表就像雪花外面一样,不能被丢弃或删除。应该将其删除。
它可以被可视化为外部数据湖上的 Snowflake,即数据湖的主要来源指向 Snowflake,以根据用户的需求利用数据。
数据无法直接访问。它可以通过外部阶段在 Snowflake 中访问。
外部表仅用于读取。
外部表无法进行时间旅行。
在 Snowflake 环境中,它不是万无一失的。
视图类型
Snowflake 中有三种主要分类视图 −
标准视图
这是默认的视图类型。
选择表查询以查看数据。
用户可以根据角色和权限执行查询。
任何有权访问这些视图的角色都可以使用底层 DDL。
安全视图
安全视图意味着只有授权用户才能访问它。
授权用户可以查看定义和详细信息。
具有适当角色的授权用户可以访问这些表并执行查询。
在安全视图中,Snowflake 查询优化器会绕过用于常规查询的优化视图。
物化视图
物化视图更像是一张表。
这些视图使用过滤条件存储来自主源的结果。例如,一家公司记录了自公司成立以来所有在职、非在职或已故员工的记录。现在,如果用户只需要活跃员工的详细信息,则可以查询主表并将其存储为物化视图以供进一步分析。
物化视图会自动刷新,即每当主表获得额外/新的员工记录时,它也会刷新物化视图。
Snowflake 也支持安全的物化视图。
物化视图会自动维护,并且会消耗大量计算资源。
物化视图的总成本基于"数据存储 + 计算 + 无服务器服务"。
每个物化视图的计算费用是根据数据更改量计算的。