Snowflake - 表格和视图类型

表格类型

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

永久表

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

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

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

  • 这些是默认表类型。

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

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

临时表

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

  • 这些表会持续一个会话。

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

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

  • 临时表中可以进行时间旅行,但只能是 0 到 1 天。

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

临时表

  • 这些表会一直存在,直到用户删除它们。

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

  • 它用于"数据持久性"是必需的,但不需要"数据保留"更长时间。例如,网站的访客详细信息,访问网站并在网站上注册的用户的详细信息,因此注册后,可能不需要将详细信息存储在两个不同的表中。

  • 时间旅行在临时表中是可能的,但只能持续 0 到 1 天。

  • 它也不是万无一失的。

外部表

  • 这些表会一直存在,直到被删除。

  • 这里使用了删除这个词,因为外部表就像雪花外面一样,不能被丢弃或删除。应该将其删除。

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

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

  • 外部表仅用于读取。

  • 外部表无法进行时间旅行。

  • 在 Snowflake 环境中,它不是万无一失的。

视图类型

Snowflake 中有三种主要分类视图 −

标准视图

  • 这是默认的视图类型。

  • 选择表查询以查看数据。

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

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

安全视图

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

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

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

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

物化视图

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

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

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

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

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

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

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