首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >集群表分区最大的active parts数

集群表分区最大的active parts数

原创
作者头像
EMR小助手
发布2025-06-03 15:40:48
发布2025-06-03 15:40:48
12500
代码可运行
举报
运行总次数:0
代码可运行

健康度判断

  • max_parts_per_partition大于parts_to_throw_insert 80%,为非健康值
  • 查询sql
代码语言:javascript
代码运行次数:0
运行
复制
SELECT percentage FROM (
    WITH version_data AS (
    SELECT
        CASE
            WHEN toFloat64(substr(version(), 1, 4)) > 23.6 THEN 3000
            ELSE 300
        END AS default_value
    ),
    settings_count AS (
        SELECT
            count(*) AS count,sum(toUInt16(value)) as value
        FROM system.settings
        WHERE name = 'parts_to_throw_insert' and changed=1 
    ),
    max_parts_per_partition AS (
        SELECT max(part_count) AS max_parts
        FROM
        (
            SELECT
                database,
                table,
                partition,
                count() AS part_count
            FROM system.parts
            WHERE active
            GROUP BY
                database,
                table,
                partition
        ) AS partitions
    )
    SELECT ROUND(max_parts / CASE WHEN settings_count.count = 0 THEN toUInt16(version_data.default_value) ELSE toUInt16(settings_count.value)  END, 4) AS percentage
    FROM max_parts_per_partition, version_data, settings_count)
    LIMIT 1

可能风险

  • 有出现too many parts风险,影响数据插入

【建议】

  • 检查写入逻辑,攒批情况,一次至少插入 1,000 行的相当大的批次数据,最好在1w到10w行之间 ,集群写入详情可参考集群近一天批次写入条数详情
  • 检查分区设计,禁止分区键为高基数列组合
  • 检查插入一批次里是否未做提前分组,一次插入包含太多分区数据,生成大量parts

【备注】

parts_to_throw_insert 参数可参考parts_to_throw_insert配置检查

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档