- Snowflake 教程
- Snowflake - 首页
- Snowflake - 简介
- Snowflake - 数据架构
- Snowflake - 功能架构
- Snowflake - 如何访问
- Snowflake - 版本
- Snowflake - 定价模型
- Snowflake - 对象
- Snowflake - 表和视图类型
- Snowflake - 登录
- Snowflake - 仓库
- Snowflake - 数据库
- Snowflake - 模式
- Snowflake - 表和列
- Snowflake - 从文件加载数据
- Snowflake - 有用的示例查询
- Snowflake - 监控使用情况和存储
- Snowflake - 缓存
- 将数据从 Snowflake 卸载到本地
- 外部数据加载(从 AWS S3)
- 外部数据卸载(到 AWS S3)
- Snowflake 资源
- Snowflake - 快速指南
- Snowflake - 有用资源
- Snowflake - 讨论
Snowflake - 表和视图类型
表类型
Snowflake 根据表的用途和性质将其分为不同的类型。共有四种类型的表:
永久表
永久表在数据库中创建。
这些表会一直存在,直到从数据库中删除或丢弃。
这些表旨在存储需要最高级别数据保护和恢复的数据。
这些是默认的表类型。
这些表支持时间旅行,最长可达 90 天,即用户可以获取最多 90 天前的数据。
它是故障安全的,如果数据因故障丢失,可以恢复。
临时表
顾名思义,临时表的存在时间较短。
这些表在会话期间存在。
如果用户希望为其后续查询和分析创建一个临时表,则在会话完成后,它会自动删除该临时表。
它主要用于瞬态数据,例如 ETL/ELT
临时表支持时间旅行,但仅限于 0 到 1 天。
它不是故障安全的,这意味着数据无法自动恢复。
瞬态表
这些表会一直存在,直到用户删除或丢弃它们。
多个用户可以访问瞬态表。
它用于需要“数据持久性”但不需要长期“数据保留”的情况。例如,网站访客的详细信息、访问并注册网站的用户详细信息,因此注册后,可能不需要将详细信息存储在两个不同的表中。
瞬态表支持时间旅行,但仅限于 0 到 1 天。
它也不是故障安全的。
外部表
这些表会一直存在,直到被移除。
这里使用“移除”一词,因为外部表类似于 Snowflake 之外的东西,它们无法删除或丢弃。它应该被移除。
可以将其视为 Snowflake 在外部数据湖之上,即数据湖的主要来源指向 Snowflake 以根据用户的需求利用数据。
无法直接访问数据。可以通过外部阶段在 Snowflake 中访问它。
外部表仅用于读取。
外部表不支持时间旅行。
它在 Snowflake 环境内部不是故障安全的。
视图类型
Snowflake 中有三种主要的分类视图:
标准视图
这是默认的视图类型。
选择表以查看数据的查询。
用户可以根据角色和权限执行查询。
任何有权访问这些视图的角色都可以访问底层 DDL。
安全视图
安全视图意味着只能由授权用户访问。
授权用户可以查看定义和详细信息。
拥有适当角色的授权用户可以访问这些表并执行查询。
在安全视图中,Snowflake 查询优化器会绕过用于常规视图的优化。
物化视图
物化视图更像是一个表。
这些视图使用筛选条件存储来自主要来源的结果。例如,一家公司拥有从公司成立之初开始的所有活跃、不活跃或已故员工的记录。现在,如果用户只需要活跃员工的详细信息,则可以查询主表并将其存储为物化视图以供进一步分析。
物化视图会自动刷新,即只要主表获得额外的/新的员工记录,它也会刷新物化视图。
Snowflake 也支持安全物化视图。
物化视图会自动维护,它可能会消耗大量的计算资源。
物化视图的总成本基于“数据存储+计算+无服务器服务”。
每个物化视图的计算费用根据数据变化量计算。