明确表名校验配置
1、普通表名映射
源端库名|目标端库名|aliyun_order|alibaba_order 支持aliyun_order与alibaba_order进行校验,分区以源端分区为准。
2、普通表名映射+分区筛选条件+分区字段映射
源端库名|目标端库名|aliyun_order|alibaba_order|pt>'20240115'|pt:dt 支持aliyun_order与alibaba_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_order的dt='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_order的dt='2024-01-13'进行完全映射
源端库名|目标端库名|aliyun_order|alibaba_order|pt>'lastNDate('${bizdate:yyyy-MM-dd}',2)' |pt:dt 代表支持aliyun_order中的pt>'2024-01-13'与alibaba_order的dt>'2024-01-13'的分区进行映射