Snowflake cloud data platform snowflake中的搜索优化与聚类键

Snowflake cloud data platform snowflake中的搜索优化与聚类键,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,有人能解释一下我们什么时候对表使用搜索优化和集群键,还是两者都使用? 我看到如果我们同时启用这两个功能,我们会失去积分吗 谢谢, Sye当您需要访问少量行(点查找查询)时,如访问OLTP数据库时,将使用搜索优化 集群密钥用于对数据进行分区。它通常适用于任何类型的工作负载,除非您需要阅读整个表 如果不需要访问大表中的特定行,则不需要搜索优化服务 如果您的表不大,或者您将“有序”数据摄取到表中,则不需要自动群集(群集键)。请不要将群集键称为“分区”。虽然效果相似,但它们是两种含义不同的不同操作。我不

有人能解释一下我们什么时候对表使用搜索优化和集群键,还是两者都使用? 我看到如果我们同时启用这两个功能,我们会失去积分吗

谢谢,
Sye

当您需要访问少量行(点查找查询)时,如访问OLTP数据库时,将使用搜索优化

集群密钥用于对数据进行分区。它通常适用于任何类型的工作负载,除非您需要阅读整个表

如果不需要访问大表中的特定行,则不需要搜索优化服务


如果您的表不大,或者您将“有序”数据摄取到表中,则不需要自动群集(群集键)。

请不要将群集键称为“分区”。虽然效果相似,但它们是两种含义不同的不同操作。我不久将发表一篇关于分区和修剪的文章。

当您将表加载到snowflake中时,它会根据加载时的行顺序创建“微分区”。运行SQL语句时,where子句用于修剪需要扫描的分区的搜索空间

Snowflake中的集群键只是通过集群键对数据进行重新排序,使其位于同一个微分区内。如果您的查询经常使用where子句中的cluster键来过滤结果,那么这将导致性能的大幅提高

搜索优化是基于在where子句中使用“=”来查找1条或少量记录

因此,如果您有一个带有产品ID、交易日期和金额的表。 使用“Where Year(Transaction Date)>=2017”的查询将受益于事务日期上的集群键

使用“Where Product_ID=111222333”的查询将受益于搜索优化

在这两种情况下,只有当您的表很大时(想想数十亿行),才需要这些。否则,原生雪花微划分方法将在优化方面做得很好