导入过程中对DN导入行数进行统计,导入完成后计算倾斜率,超过一定阈值时,立即进行告警。倾斜率通过(DN导入行数最大值-DN导入行数最小值)/导入总行数计算。目前,只支持INSERT和COPY导入。
说明必须设置enable_stream_operator=on,确保计划下发到DN,DN一次性返回导入行数,从而可以在CN计算倾斜率。
使用方法
1.设置参数(表倾斜告警阈值table_skewness_warning_threshold和表倾斜告警最小行数table_skewness_warning_rows);
−表倾斜告警阈值取值范围0~1,默认值为1,即关闭状态,取其他值时为开启状态。
−表倾斜告警最小行数取值范围0~2147483647,默认值为100,000。当导入总行数超过该值与导入DN数之积时,才可能触发告警,从而不会在小数据量导入的场景进行无意义的告警。
show table_skewness_warning_threshold;
set table_skewness_warning_threshold = xxx;
show table_skewness_warning_rows;
set table_skewness_warning_rows = xxx;
2.执行导入,使用INSERT或者COPY;
3.发现并处理告警,告警信息包括表名、最小行数、最大行数、总行数、平均行数、倾斜率,以及提示信息(检查数据分布或者修改参数)。
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