首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SYSTEM$CLUSTERING_INFORMATION识别潜在的集群关键字

使用SYSTEM$CLUSTERING_INFORMATION识别潜在的集群关键字
EN

Stack Overflow用户
提问于 2021-03-10 03:08:52
回答 1查看 105关注 0票数 1

在我的基于事件的数据库上运行的查询目前会扫描所有行,即使某个事件被过滤了,这也会导致很长的扫描时间。Event_type是我经常在过滤器中使用的东西,这就是为什么我认为它可能是一个很好的集群。该表已经由date_id和app_title组成集群。我使用SYSTEM$CLUSTERING_INFORMATION查看额外的event_type列上的集群是否会导致useful.The结果不好。这是否意味着这将是一个糟糕的选择?或者这仅仅意味着当前的表在这个键上聚集得很差?用这三个集群键创建一个表会导致不同的结果吗?

(我在下面的查询/结果中更改了一些名称和值)

代码语言:javascript
复制
select system$clustering_information('materialized_view', '(date_id, app_title, event_type)');
 
{
  "cluster_by_keys" : "LINEAR(date_id, app_title, event_type)",
  "total_partition_count" : <more than 100k>,
  "total_constant_partition_count" : 0,
  "average_overlaps" : ~500
  "average_depth" : ~500,
  "partition_depth_histogram" : {
    "00000" : 0,
    "00001" : 0,
    "00002" : 0,
    "00003" : 0,
    "00004" : 0,
    "00005" : 0,
    "00006" : 0,
    "00007" : 0,
    "00008" : 0,
    "00009" : 0,
    "00010" : 0,
    "00011" : 0,
    "00012" : 0,
    "00013" : 0,
    "00014" : 0,
    "00015" : 0,
    "00016" : 0,
    "00064" : 30,
    "00128" : 3218,
    "00256" : 22146,
    "00512" : 94367,
    "01024" : 134114
  }
}
EN

回答 1

Stack Overflow用户

发布于 2021-03-10 04:20:02

这显示了集群的当前状态,这不是很好。这意味着按照您定义的方式创建一个集群键可能会有所帮助。

聚集键中列(或表达式)的顺序非常重要。你想从较低的基数到更高的基数。例如,如果您只有五个事件类型,那么它可能应该是列列表中的第一个。

在没有上下文的情况下,APP_TITLE列更有趣。如果它的基数很高(该列的名称似乎表明了这一点),则可以使用诸如left(APP_TITLE, 2)之类的表达式来限制基数。

请记住,如果需要在基数非常高的列或唯一列上设置键,请使用表达式减少基数。您可以通过如下方式查看Snowflake在集群key中支持哪些函数:

代码语言:javascript
复制
show functions; 
-- Look at the "valid_for_clustering" column to see which are allowed.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66553263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档