校验范围批量配置规则

明确表名校验配置

  • 1、普通表名映射

    • 源端库名|目标端库名|aliyun_order|alibaba_order 支持aliyun_orderalibaba_order进行校验,分区以源端分区为准。

  • 2、普通表名映射+分区筛选条件+分区字段映射

    • 源端库名|目标端库名|aliyun_order|alibaba_order|pt>'20240115'|pt:dt 支持aliyun_orderalibaba_order进行校验,进行校验的分区为源端pt>'20240115'的,且进行分区字段映射,对于源端pt='20240116'的与目标端dt='20240116'进行匹配。

    • 源端库名|目标端库名|aliyun_order|alibaba_order|pt>'20240115'|pt:dt;year:new_year 如果存在多级分区,需要将分区字段pt转换成dt;将分区字段year转换成new_year

    • 源端库名|目标端库名|aliyun_order|alibaba_order||pt:dt 整表校验并且进行分区字段映射,例如:对于源端pt='20240116'的与目标端dt='20240116'进行匹配。

  • 3、普通表名+分区完全映射

    • 源端库名|目标端库名|aliyun_order|alibaba_order|pt='20240116';dt='20240118' 支持aliyun_order中的pt='20240116'与alibaba_orderdt='20240118'进行完全映射

正则匹配表名校验

  • 1、校验过程中表名及分区字段不修改

    • 源端库名|目标端库名|aliyun.* aliyun开头的表进行全表校验,目标端表名与源端表名一致

    • 源端库名|目标端库名|aliyun.*|aliyun.*|dt>'20240115' aliyun开头的表进行校验,只校验源端分区大于20240115的分区数据,目标端表名与源端一致

    • 源端库名|目标端库名|* 全库校验,源端表名与目标端表名一致;源端分区名称与目标端分区名称一致;如果目标端表名不存在与源端表名一致的,则会在任务中标识目标端表不存在。

  • 2、校验过程中对表名批量进行关键字替换

    • 源端库名|目标端库名|aliyun.*|aliyun.*|||${replace:aliyun:alibaba} 会将aliyun开头的所有表进行校验,并且将表名中的关键字aliyun替换成alibaba作为目标端表名。

  • 3、校验过程中对表名批量添加前缀

    • 源端库名|目标端库名|aliyun.*|aliyun.*|||${pre:alibaba_} 会将aliyun开头的所有表进行校验,并且会批量添加前缀alibaba_作为目标端表名。

  • 4、校验过程中对表名批量添加后缀

    • 源端库名|目标端库名|aliyun.*|aliyun.*|||${end:_alibaba} 会将aliyun开头的所有表进行校验,并且会批量添加前缀_alibaba 作为目标端表名。

注:上述条件中分区条件可以使用内置变量进行替换

日期表达

表达式

解释

使用示例

指定日期

ds='20210805'

指定某个分区

eg:

ds='20210805'

当天

${bizdate}

当天的分区

eg:

今天是20240315,配置dt=${bizdate:yyyyMMdd},则会转换成dt=20240315

N

lastNDate('${bizdate}',N)

N天的某分区

eg:

今天是20240315,配置dt=lastNDate('${bizdate:yyyyMMdd}',3),则会转换成dt='20240312'

周初

tdBeginNDate('${bizdate}','w')

本周的开始的日期

eg:

今天是20240423,配置dt=tdBeginNDate('${bizdate}','w'),则会转换成dt='20240422'

季初

tdBeginNDate('${bizdate}','q')

本季度的开始的日期

eg:

今天是20240423,配置dt=tdBeginNDate('${bizdate}','q'),则会转换成dt='20240401'

月初

tdBeginNDate('${bizdate}','m')

本月的开始的日期

eg:

今天是20240423,配置dt=tdBeginNDate('${bizdate}','m'),则会转换成dt='20240401'

年初

cBeginNDate('${bizdate}','y')

今年的开始的日期

eg:

今天是20240423,配置dt=cBeginNDate('${bizdate}','y'),则会转换成dt='20240101'

周末

cEndNDate('${bizdate}','w')

本周的结束的日期

eg:

今天是20240423,配置dt=cEndNDate('${bizdate}','w'),则会转换成dt='20240428'

季末

cEndNDate('${bizdate}','q')

本季度的结束的日期

eg:

今天是20240423,配置dt=cEndNDate('${bizdate}','q'),则会转换成dt='20240630'

月末

cEndNDate('${bizdate}','m')

本月的结束的日期

eg:

今天是20240423,配置dt=cEndNDate('${bizdate}','m'),则会转换成dt='20240430'

年末

cEndNDate('${bizdate}','y')

今年的结束的日期

eg:

今天是20240423,配置dt=cEndNDate('${bizdate}','y'),则会转换成dt='20241231'

范围筛选

(日期型)

rRangeDate(${bizdate:yyyyMMdd},startOffset ,endOffset(可选)}

bizdate:日期格式化,如果不写默认为yyyyMMdd

endOffset不为空:从now往前推startOffset天(包含)到从now往前推endOffset天(包含)的交集

endOffset为空:校验now-startOffset (包含)到now所有的分区

eg:rRangeDate(${bizdate:yyyyMMdd},5,10}

今天是20240315,

命中的是:20240305、20240306、20240307、20240310分区

范围筛选

(数字型)

rRangeNumber(Number,startOffset, endOffset(可选))

Number:参照物数字

endOffset不为空:校验Number-startOffset(包含)到Number-endOffset(包含)之间的交集

endOffset为空:校验Number-startOffset(包含)到now所有的分区

eg:rRangeNumber(20240312, 3, 6)

命中的是:date_part='20240306'、date_part='20240307'、date_part='20240308'

、date_part='20240309'分区

例如,今天是2024-01-15:

  • 源端库名|目标端库名|aliyun_order|alibaba_order|pt='lastNDate('${bizdate:yyyy-MM-dd}',2)';dt='lastNDate('${bizdate:yyyy-MM-dd}',2)' 代表支持aliyun_order中的pt='2024-01-13'与alibaba_orderdt='2024-01-13'进行完全映射

  • 源端库名|目标端库名|aliyun_order|alibaba_order|pt>'lastNDate('${bizdate:yyyy-MM-dd}',2)' |pt:dt 代表支持aliyun_order中的pt>'2024-01-13'与alibaba_orderdt>'2024-01-13'的分区进行映射