分区修剪如何在雪花 table 中的整数列上工作
How partiton pruning works on integer column in snowflake table
我有一个 table in snowflake 大约有 1000 列,我有一个整数类型的 id 列
当我运行查询时
select * from table where id=12
它正在扫描所有微分区。我期望雪花将维护 id 列的 min/max 的元数据,并且基于它应该只扫描一个分区而不是所有分区。
在此文档中 https://docs.snowflake.com/en/user-guide/tables-clustering-micropartitions.html 提到他们维护 min/max ,每个微分区中列的不同值。
在这种情况下,我如何利用分区 p运行ing?目前,即使对于唯一 ID,snowflake 也在扫描所有分区。
不幸的是,它比那复杂一点。如果您的 table 被您的 id
列完全 集群 ,Snowflake 将只扫描一个分区,但它可能不是,也不应该是。 Snowflake 是一个数据仓库,不适合 single-row 查找。
您始终可以通过 id
列将 table 聚类,但这通常是您不想在仓库中执行的操作。我建议阅读 this document 以了解 table 聚类的工作原理。
我有一个 table in snowflake 大约有 1000 列,我有一个整数类型的 id 列
当我运行查询时
select * from table where id=12
它正在扫描所有微分区。我期望雪花将维护 id 列的 min/max 的元数据,并且基于它应该只扫描一个分区而不是所有分区。
在此文档中 https://docs.snowflake.com/en/user-guide/tables-clustering-micropartitions.html 提到他们维护 min/max ,每个微分区中列的不同值。
在这种情况下,我如何利用分区 p运行ing?目前,即使对于唯一 ID,snowflake 也在扫描所有分区。
不幸的是,它比那复杂一点。如果您的 table 被您的 id
列完全 集群 ,Snowflake 将只扫描一个分区,但它可能不是,也不应该是。 Snowflake 是一个数据仓库,不适合 single-row 查找。
您始终可以通过 id
列将 table 聚类,但这通常是您不想在仓库中执行的操作。我建议阅读 this document 以了解 table 聚类的工作原理。