基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
INSERT单分区时与PARTITION_CNT的关系
更新时间:2026-08-25 02:41
问题现象
客户使用批量插入语句(INSERT VALUES (),(),...,Batch Size 为 150)向单列 Hash 分区且无全局索引的表中写入数据。每个 Batch 的分区键值均相同,预期数据应全部写入单一分区。
但通过管控平台监控发现,该写入操作显示的涉及分区数(PARTITION_CNT)为 3,与客户预期的单分区写入表现不符。
问题原因
管控平台展示的 PARTITION_CNT 指标并非实际访问的数据分区数量,而是执行上下文中涉及的 tablet 总数。
当目标表包含本地二级索引时,每个索引会生成独立的 tablet。本例中数据表本身占用 1 个 tablet,加上 2 个本地索引各占用 1 个 tablet,共计 3 个 tablet,因此监控显示 PARTITION_CNT = 3。
关键信息
- 核心监控指标:
PARTITION_CNT - 统计口径:
PARTITION_CNT= 数据表 tablet 数 + 所有本地索引的 tablet 数
问题的风险及影响
主要影响在于可能导致运维或开发人员对 SQL 路由策略产生误判,误以为发生了跨分区写入,进而影响性能调优方向。
适用版本
全版本。
规避方式
明确 PARTITION_CNT 的实际统计口径为“涉及的 tablet 总数(含数据表及所有本地索引)”。在评估单分区写入效果或排查路由问题时,避免直接将该监控数值作为跨分区依据。