我可以找到特定 table 在 Snowflake 中使用的微分区数量吗?

Can I find the number of micro-partitions used in Snowflake by a specific table?

有没有办法查明有多少微分区被用于特定 table(或数据库,如果 table 不可能)? 理想地显示由于时间旅行而保留了多少分区...

当您从 table 查询数据时,比如 select * 来自 table 或任何其他关于 table 的查询,在个人资料页面中,您将看到有关 P 的信息运行ing.

示例:

P运行ing

分区扫描 1,505

分区总数。 50,262

如果 table 已经聚类,那么您可以 运行 下面的命令提供有关分区的信息。

select SYSTEM$CLUSTERING_INFORMATION( '' , '( [ , ... ] )' )

添加到以上回复中: 1)使用查询配置文件 针对 table 执行查询以生成查询配置文件,但尽量保持查询更高效,例如添加 LIMIT 子句以限制返回的行数并避免 SELECT STAR(因为 Snowflake 是列式存储,一般来说,根据需要检索尽可能少的列对性能很重要)。

2) 使用 SYSTEM$CLUSTERING_INFORMATION Snowflake 中的每个 table 都是簇状的。这是'natural clustering'(由系统自动完成)或'explicit clustering'(用户指定聚类键)的问题。
对于自然聚类(记录将根据摄取顺序存储),用户仍然可以使用该功能。使用示例共享数据库的 TPCH 数据集(自然集群)的示例: SELECT SYSTEM$CLUSTERING_INFORMATION('snowflake_sample_data.tpch_sf1.orders', '(o_orderpriority)');

-- 查询结果显示订单table有10个微分区
{ "cluster_by_keys" : "LINEAR(O_ORDERPRIORITY)", "total_partition_count" : 10, "total_constant_partition_count" : 0, "average_overlaps":9.0, "average_depth":10.0, "partition_depth_histogram":{ “00000”:0, “00001”:0, “00002”:0, “00003”:0, “00004”:0, “00005”:0, “00006”:0, “00007”:0, “00008”:0, “00009”:0, “00010”:10, “00011”:0, “00012”:0, “00013”:0, “00014”:0, “00015”:0, “00016”:0 } }