更新时间:2024-10-14 GMT+08:00

导入过程存储倾斜即时检测

导入过程中对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数之积时,才可能触发告警,从而不会在小数据量导入的场景进行无意义的告警。
    1
    2
    3
    4
    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