数据倾斜预警—数据导入存储倾斜即时检测
1.简介
DML执行到最后,CN上会统计各个DN返回行数,该特性利用CN上的这个行数计算出倾斜率,倾斜率越大代表该次入库数据越倾斜;可以看出倾斜率比值范围为0-1,计算倾斜率需要统计所有DN返回行数的最大值、最小值和总行数。
倾斜率定义:倾斜率=(所有DN中数据返回行数最大值 — 所有DN中数据返回行数最小值)/ 所有DN数据返回总行数
超出阈值范围时,记录告警日志,并上报告警。
3.适用范围
1)不同类型表的gds/copy/insert/create table as select/select into from,满足阈值条件,触发告警;
2)其它DML操作语句,如select/update/delete/truncate等不会触发告警;
3)复制表、临时表不会产生告警;
4.使用方法
通过设置2个GUC参数 table_skewness_warning_threshold 和 table_skewness_warning_rows,进行功能开启并使用;
table_skewness_warning_threshold :表示倾斜检测告警阈值,取值范围0-1.0,默认值为1. 当计算出的倾斜率大于倾斜检测告警阈值时,进行倾斜告警。当倾斜检测告警阈值为1时,该功能关闭,无论DN返回行数是多少,都不会进行告警;当倾斜检测告警阈值为0时,只有所有DN返回行数相同时,才不会进行告警,一般没有意义。
table_skewness_warning_rows: 该参数表示其鞥写检测的最小行数(单个DN),取值范围0-INT_MAX,默认值为100,000,当所有DN返回总行数大于倾斜检测最小行数乘以DN数时,计算倾斜率,否则认为不满足阈值条件,不会上报告警,这样就避免了导入很少的数据导致的误报场景。
5.告警显示信息
WARNING: Skewness occurs, table name: xxx, min value: xxx, max value: xxx, sum value: xxx, avg value: xxx, skew ratio: xxx HINT: Please check data distribution or modify warning threshold
- 点赞
- 收藏
- 关注作者
评论(0)