Snowflake多套缓存分类对应关系及分类数量技术疑问咨询
Snowflake缓存分类对应关系及疑问解答
两种分类的对应关系
两类分类的核心逻辑一致,对应关系如下:
- 第三方资料提及的 Query Result Cache 与官方文档的 Result Cache 完全对应:均由全局服务层维护,跨虚拟仓库共享,默认存储24小时内的查询结果,只要底层数据未变更,相同查询可直接复用结果,无需重新计算。
- 第三方资料提及的 Warehouse data cache 与官方文档的 Local Disk Cache 完全对应:均为虚拟仓库计算节点本地SSD/内存中缓存的微分区数据,仅归属当前仓库使用,仓库暂停或调整规格后缓存会被清空。
为什么官方文档没有提及Metadata cache
官方并非没有这一缓存,只是未将其纳入面向用户讲解的「查询业务缓存分层」范畴。Metadata Cache属于全局服务层的核心基础能力,默认全局持久化维护,不需要用户做任何配置干预,也不会随虚拟仓库的启停失效,所以官方在介绍用户可感知的缓存层级时没有单独列出,但该缓存真实存在,SELECT MIN(col) FROM table这类无需计算的元数据查询可以不用启动虚拟仓库直接返回结果,就是依托该缓存实现的。
Remote Disk cache是否属于Warehouse Data Cache的一部分
不属于。官方提及的Remote Disk Cache本质是Snowflake底层的持久化对象存储层(对应AWS S3、阿里云OSS这类云对象存储服务),负责全量数据的持久化存储,持久性可达11个9。而Warehouse Data Cache是计算节点本地的临时缓存,仅缓存热点查询用到的微分区数据,两者的部署位置、作用、生命周期完全不同,不存在从属关系。官方将其纳入缓存分类,是因为它是常规查询的数据访问最后一级入口,访问速度远高于归档存储,所以被纳入了缓存层级的表述体系。
Snowflake是否实际存在4类缓存
是的,Snowflake实际存在4类缓存,按查询访问的优先级从高到低排序为:
- Metadata Cache:全局服务层维护,存储表、微分区的元数据信息
- Result Cache:全局服务层维护,存储历史查询结果
- Local Disk Cache(Warehouse Data Cache):计算节点本地维护,存储热点微分区数据
- Remote Disk Cache:底层持久化存储层,存储全量持久化数据
内容的提问来源于stack exchange,提问作者Vivek Sharma
相关产品推荐
相关产品推荐

