Kou*_*nda 0 snowflake-cloud-data-platform
在Snowflake文档中,我找不到使用索引的引用。
Snowflake是否支持索引,如果不支持,在使用Snowflake时性能调整的替代方法是什么?
Jon*_*tte 18
雪花不使用索引。这是使 Snowflake 能够很好地扩展任意查询的原因之一。相反,Snowflake 计算有关您加载的文件中的列和记录的统计信息,并使用这些统计信息来确定实际加载哪些表/记录的哪些部分来执行查询。它还使用列式存储文件格式,使其仅读取包含您实际使用的字段(列)的表部分,从而减少您在查询中不使用的列的 I/O。
Snowflake 将大表(千兆字节、太字节或更大)切成较小的“微分区”。对于每个微分区,它收集有关每列包含的值范围的统计信息。然后,它只加载包含查询所需范围内的值的微分区。例如,假设您有一列时间戳。如果您的查询要求 6 月 1 日到 7 月 1 日之间的数据,则根据微分区文件中存储的日期统计信息,不包含此范围内任何数据的分区将不会被加载或处理。
索引通常用于在线事务处理,因为它们在您处理一条或几条记录时可以加速工作流,但是当您对大型数据集运行分析查询时,您几乎总是在连接和聚合中使用每个表的大型子集。存储机制具有自动统计功能,可自动加速此类大型查询,无需您指定索引或调整任何类型的参数。
Snowflake不支持索引,尽管它支持“群集”以提高I / O的性能。
我建议阅读以下链接以熟悉此链接:
https://docs.snowflake.net/manuals/user-guide/tables-clustering-keys.html
https://docs.snowflake.net/manuals/user-guide/tables-auto-reclustering.html
这也是关于该主题的非常好的博客文章:https : //www.snowflake.com/blog/automatic-query-optimization-no-tuning/
希望这可以帮助...丰富
| 归档时间: |
|
| 查看次数: |
164 次 |
| 最近记录: |