在 Snowflake 文档中,我找不到使用索引的参考。
Snowflake 是否支持索引,如果不支持,使用 Snowflake 时性能调整的替代方法是什么?
Snowflake 不使用索引。这是使 Snowflake 对于任意查询具有良好扩展性的原因之一。相反,Snowflake 计算有关您加载的文件中的列和记录的统计信息,并使用这些统计信息来确定实际加载哪些表/记录的哪些部分来执行查询。它还使用列式存储文件格式,使其仅读取表中包含您实际使用的字段(列)的部分,从而减少查询中不使用的列的 I/O。
Snowflake 将大表(GB、TB 或更大)切成更小的“微分区”。对于每个微分区,它收集有关每列包含的值范围的统计信息。然后,它仅加载包含查询所需范围内的值的微分区。举个例子,假设您有一列时间戳。如果您的查询要求提供 6 月 1 日到 7 月 1 日之间的数据,则根据微分区文件中存储的日期统计信息,将不会加载或处理不包含此范围内任何数据的分区。
索引通常用于在线事务处理,因为当您处理一条或几条记录时,它们会加速工作流程,但当您对大型数据集运行分析查询时,您几乎总是在连接和聚合中处理每个表的大型子集。具有自动统计功能的存储机制可以自动加速此类大型查询,无需您指定索引或调整任何类型的参数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)