Snowflake - 表和视图类型


表格类型

Snowflake 根据其用途和性质将表分为不同类型。有四种类型的表 -

永久表

  • 永久表是在数据库中创建的。

  • 这些表将一直存在,直到从数据库中删除删除

  • 这些表旨在存储需要最高级别数据保护和恢复的数据。

  • 这些是默认表类型。

  • 这些表中的时间旅行最长可达 90 天,即某人最多可以获取 90 天前的数据。

  • 它是故障安全的,如果因故障而丢失数据可以恢复。

临时表

  • 顾名思义,临时表存在的时间较短。

  • 这些表在会话期间持续存在。

  • 如果用户想要一个临时表用于后续查询和分析,那么一旦会话完成,它就会自动删除临时表。

  • 主要用于ETL/ELT等临时数据

  • 临时表中可以进行时间旅行,但仅限 0 到 1 天。

  • 它不是故障安全的,这意味着数据无法自动恢复。

临时表

  • 这些表将一直存在,直到用户删除或删除它们为止。

  • 多个用户可以访问临时表。

  • 它用于需要“数据持久性”但不需要较长时间“数据保留”的情况。例如,网站的来宾访问者的详细信息、访问网站并在网站上注册的用户的详细信息,因此在注册后,可能不需要将详细信息存储在两个不同的表中。

  • 在瞬态表中可以进行时间旅行,但仅限 0 到 1 天。

  • 它也不是安全的。

外部表

  • 这些表将一直存在,直至被删除。

  • 这里使用了“removed”这个词,因为外部表就像Snowflake之外,不能被删除或删除。应该将其删除。

  • 它可以被可视化为外部数据湖上的Snowflake,即数据湖的主要来源指向Snowflake以根据用户的需要利用数据。

  • 无法直接访问数据。可以通过外部阶段在 Snowflake 中访问它。

  • 外部表仅供阅读。

  • 对于外部表来说,时间旅行是不可能的。

  • 它在 Snowflake 环境中不是自动防故障的。

查看类型

Snowflake 中有三种主要的分类视图 -

标准视图

  • 它是默认视图类型。

  • 选择表的查询来查看数据。

  • 用户可以根据角色和权限执行查询。

  • 任何有权访问这些视图的角色都可以使用底层 DDL。

安全视图

  • 安全视图意味着它只能由授权用户访问。

  • 授权用户可以查看定义和详细信息。

  • 具有适当角色的授权用户可以访问这些表并执行查询。

  • 在安全视图中,Snowflake 查询优化器绕过用于常规视图的优化。

物化视图

  • 物化视图更像是一张表。

  • 这些视图使用过滤条件存储来自主源的结果。例如,一家公司拥有自公司成立以来所有在职、非在职或已故员工的记录。现在,如果用户只需要在职员工的详细信息,则可以查询主表并将其存储为物化视图以进行进一步分析。

  • 物化视图是自动刷新的,即每当主表获得额外/新的员工记录时,它也会刷新物化视图。

  • Snowflake 还支持安全的物化视图。

  • 物化视图是自动维护的,它会消耗大量的计算资源。

  • 物化视图的总成本基于“数据存储+计算+无服务器服务”。

  • 每个物化视图的计算费用是根据数据更改量计算的。