Snowflake - 表和视图类型



表类型

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

永久表

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

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

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

  • 这些是默认的表类型。

  • 这些表支持时间旅行,最长可达 90 天,即用户可以获取最多 90 天前的​​数据。

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

临时表

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

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

  • 如果用户希望为其后续查询和分析创建一个临时表,则在会话完成后,它会自动删除该临时表。

  • 它主要用于瞬态数据,例如 ETL/ELT

  • 临时表支持时间旅行,但仅限于 0 到 1 天。

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

瞬态表

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

  • 多个用户可以访问瞬态表。

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

  • 瞬态表支持时间旅行,但仅限于 0 到 1 天。

  • 它也不是故障安全的。

外部表

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

  • 这里使用“移除”一词,因为外部表类似于 Snowflake 之外的东西,它们无法删除或丢弃。它应该被移除。

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

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

  • 外部表仅用于读取。

  • 外部表不支持时间旅行。

  • 它在 Snowflake 环境内部不是故障安全的。

视图类型

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

标准视图

  • 这是默认的视图类型。

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

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

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

安全视图

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

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

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

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

物化视图

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

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

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

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

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

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

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

广告