alibaba.dt.onecompare.comparejob.create (创建数据对比任务)

创建数据对比任务

公共参数

请求参数

名称 类型 是否必须 示例值 更多限制 描述
job_vo JobVO 可选 对比jobVo
  • └ where_filter_src
  • String
  • 可选
  • app_name='onecompare'
  • 源表过滤条件,可支持日期小时替换 ${bizdate} ${yyyymmdd+-n}${hh}
  • └ schema_mode_dst
  • String
  • 可选
  • auto
  • 目标表schema的解析方式。自动解析:auto,手工输入:manual;
  • └ schema_dst
  • String
  • 可选
  • trace_id|string;access_time|datetime;rpc_id|string;app_name|string;log_name|string;uri_info|string;rpc_type|string;user_id|string;domain|string;uri|string;uri_param|string;page_uri|string;content_type|string;is_page|string;local_ip|string;is_outer|string;ext_info|string;payload|string;responsedata|string;emp_id|string;dep_desc|string;bu_name|string;job_type|string;ds|string
  • 目标表的schema
  • └ run_project
  • String
  • 必须
  • wl_rec_test_dev
  • 运行任务的odps项目空间,需要有建表权限
  • job_alarm_method
  • AlarmType []
  • 可选
  • [{"detail":"","type":"ding"},{"detail":"","type":"mail"},{"detail":"","type":"phone"},{"detail":"","type":"msg"} {"detail":"https://oapi.dingtalk.com/robot/send?access_token=XXX","type":"dinggroup"}]
  • 通知方式 "电话", "钉钉", "短信","邮件"
  • └ detail
  • String
  • 可选
  • 钉钉
  • 通知方式名称
  • └ type
  • String
  • 可选
  • ding
  • 通知方式
  • └ is_explorate
  • Number
  • 可选
  • 1
  • 是否要运行对比探查
  • job_cycle
  • TimerSchema
  • 可选
  • 调度周期。不调度:{"offset":"-1","rate":"pause"} offsetLower可不设置
  • └ offset
  • String
  • 可选
  • 10
  • 时间偏移
  • └ rate
  • String
  • 可选
  • pause
  • 调度周期
  • └ result_type
  • String []
  • 可选
  • 1,2
  • 结果类型,1:FAILED,2:UNPASS ,3: SUCCESS,根据结果状态进行报警
  • └ sql_src
  • String
  • 可选
  • null
  • sql模式,源sql
  • └ schema_mode_src
  • String
  • 可选
  • auto
  • 源表schema的解析方式。自动解析:auto,手工输入:manual;
  • └ job_name
  • String
  • 必须
  • 对比任务api测试
  • 对比任务名称
  • └ where_filter_dst
  • String
  • 可选
  • app_name='datapro'
  • 目标表过滤条件,可支持日期小时替换 ${bizdate} ${yyyymmdd+-n}${hh}
  • └ data_read_mode_src
  • String
  • 必须
  • table
  • 源表数据读取模式(table/sql)
  • └ sql_dst
  • String
  • 可选
  • null
  • sql模式,目标sql
  • └ is_alarm
  • Number
  • 必须
  • 1
  • 是否告警,1告警,0不告警
  • └ partition_dst
  • String
  • 可选
  • ds=${yyyymmdd-2}
  • 目标表分区表达式,可支持日期小时替换 ${bizdate} ${yyyymmdd+-n}${hh}
  • └ project_name
  • String
  • 必须
  • 故知的测试项目
  • 对比项目名称
  • └ project_id
  • Number
  • 必须
  • 2013
  • 对比项目id
  • └ data_source_type
  • String
  • 必须
  • ODPS
  • 同构对比场景的数据源类型,值:ODPS、TT、HOLO、HBASE、ADB
  • └ job_category
  • String
  • 必须
  • HOMO
  • 标识同构异构,同构:HOMO ;异构:HETERO
  • └ data_read_mode_dst
  • String
  • 必须
  • table
  • 目标表数据读取方式,table/sql
  • data_table_rules
  • JobTableRulesBO []
  • 必须
  • [{"ruleId":"0", "ruleExcept":"0"}, {"ruleId":"100", "ruleExcept":"0"}]
  • 对比规则列表
  • └ rule_except
  • String
  • 可选
  • 0
  • 可容忍的差异值
  • └ rule_name_src
  • String
  • 可选
  • 100
  • 源表对比规则
  • └ rule_name_dst
  • String
  • 可选
  • 100
  • 目标表对比规则
  • └ rule_id
  • String
  • 可选
  • 100
  • 对比规则id(0:统计行数,100:全文对比)
  • data_fields_rules
  • JobFieldRulesBO []
  • 可选
  • [{"srcField":"trace_id","dstField":"trace_id","fulltextExpect":true,"keyFieldExpect":true,"ignoreNullZeroFieldExpect":false,"ignoreNullEmptyFieldExpect":false,"ignoreDoubleIntFieldExpect":false,"ignoreFloatPreciseFieldExpect":false,"ignoreValueDiffFieldExpect":"0","ignoreValueAbsDiffFieldExpect":"0"},{"srcField":"access_time","dstField":"access_time","fulltextExpect":true,"keyFieldExpect":false,"ignoreNullZeroFieldExpect":false,"ignoreNullEmptyFieldExpect":false,"ignoreDoubleIntFieldExpect":false,"ignoreFloatPreciseFieldExpect":false,"ignoreValueDiffFieldExpect":"0","ignoreValueAbsDiffFieldExpect":"0"},{"srcField":"rpc_id","dstField":"rpc_id","fulltextExpect":true,"keyFieldExpect":true,"ignoreNullZeroFieldExpect":false,"ignoreNullEmptyFieldExpect":false,"ignoreDoubleIntFieldExpect":false,"ignoreFloatPreciseFieldExpect":false,"ignoreValueDiffFieldExpect":"0","ignoreValueAbsDiffFieldExpect":"0"},{"srcField":"app_name","dstField":"app_name","fulltextExpect":true,"keyFieldExpect":false,"ignoreNullZeroFieldExpect":false,"ignoreNullEmptyFieldExpect":false,"ignoreDoubleIntFieldExpect":false,"ignoreFloatPreciseFieldExpect":false,"ignoreValueDiffFieldExpect":"0","ignoreValueAbsDiffFieldExpect":"0"},{"srcField":"log_name","dstField":"log_name","fulltextExpect":true,"keyFieldExpect":false,"ignoreNullZeroFieldExpect":false,"ignoreNullEmptyFieldExpect":false,"ignoreDoubleIntFieldExpect":false,"ignoreFloatPreciseFieldExpect":false,"ignoreValueDiffFieldExpect":"0","ignoreValueAbsDiffFieldExpect":"0"}]
  • 字段对比规则
  • └ ignore_float_precise_field_expect
  • Boolean
  • 可选
  • false
  • 忽略浮点差异
  • └ ignore_null_zero_field_expect
  • Boolean
  • 可选
  • false
  • 忽略空值和零值的差异
  • └ ignore_value_diff_field_expect
  • String
  • 可选
  • 0
  • 忽略差异百分比
  • └ fulltext_expect
  • Boolean
  • 可选
  • true
  • 是否参与全文对比
  • └ ignore_null_empty_field_expect
  • Boolean
  • 可选
  • false
  • 忽略null和控制差异
  • └ ignore_value_abs_diff_field_expect
  • String
  • 可选
  • 0
  • 忽略差异绝对值
  • └ ignore_double_int_field_expect
  • Boolean
  • 可选
  • false
  • 忽略浮点差异
  • └ dst_field
  • String
  • 可选
  • trace_id
  • 目标表对比字段
  • └ key_field_expect
  • Boolean
  • 可选
  • true
  • 是否为主键
  • └ src_field
  • String
  • 可选
  • trace_id
  • 源表对比字段
  • └ translate_function_enum_src
  • String
  • 可选
  • REPLACE
  • 源字段支持的函数表,例如:TO_STRING、TO_BIGINT、TO_DOUBLE、ROUND、GET_JSON_OBJECT、REPLACE、SUBSTR、SELF_UDF 函数
  • └ translate_function_params_src
  • String []
  • 可选
  • ["a", "b"]
  • 函数的参数,如果不需要参数,则为空
  • └ translate_function_enum_dst
  • String
  • 可选
  • TO_STRING
  • 目标字段支持的函数表,例如:TO_STRING、TO_BIGINT、TO_DOUBLE、ROUND、GET_JSON_OBJECT、REPLACE、SUBSTR、SELF_UDF 函数
  • └ translate_function_params_dst
  • String []
  • 可选
  • []
  • 函数的参数
  • └ table_name_dst
  • String
  • 必须
  • wl_rec_test.dwd_dt_moe_one_log_url_access_wide_di
  • 目标表名称
  • └ partition_src
  • String
  • 可选
  • ds=${yyyymmdd-2}
  • 源表的分区过滤条件,可支持日期小时替换。${bizdate} ${yyyymmdd+-n}${hh}
  • └ data_source_type_src
  • String
  • 必须
  • odps
  • 异构对比场景下,源表的数据源类型
  • └ schema_src
  • String
  • 可选
  • trace_id|string;access_time|datetime;rpc_id|string;app_name|string;log_name|string;uri_info|string;rpc_type|string;user_id|string;domain|string;uri|string;uri_param|string;page_uri|string;content_type|string;is_page|string;local_ip|string;is_outer|string;ext_info|string;payload|string;responsedata|string;emp_id|string;dep_desc|string;ds|string
  • 源表的schema信息
  • receiver_emp_info
  • SimpleUser []
  • 必须
  • [{"empId":"132222","empName":"故知"}]
  • 告警接收人信息
  • └ emp_id
  • String
  • 可选
  • 132222
  • 告警接收人工号
  • └ emp_name
  • String
  • 可选
  • 故知
  • 告警接收人花名
  • └ data_source_id_src
  • Number
  • 可选
  • 19
  • 异构对比场景,源表的数据源id,新建数据源后获取
  • └ job_alarm_range
  • String []
  • 可选
  • ["00:00","23:59"]
  • 告警时间范围
  • └ data_source_type_dst
  • String
  • 必须
  • odps
  • 异构对比场景,目标数据源类型
  • └ table_name_src
  • String
  • 必须
  • wl_rec_test.dwd_dt_moe_one_log_url_access_di
  • 源表名称
  • └ data_source_id_dst
  • Number
  • 可选
  • 19
  • 异构对比场景,目标表的数据源id,新建数据源后获取
  • └ compare_join_type
  • String
  • 必须
  • FULL_JOIN
  • 对比方式,默认是FULL_JOIN,用户可自定义,值有:FULL_JOIN\INNER_JOIN\LEFT_JOIN
  • └ tddl_single_src
  • Number
  • 可选
  • 1
  • 是否单库单表,1:是,0:否
  • └ tddl_single_dst
  • Number
  • 可选
  • 0
  • 同上
  • └ split_pk_src
  • String
  • 可选
  • id
  • 切分键
  • └ split_pk_dst
  • String
  • 可选
  • id,name
  • 切分键
  • └ start_rowkey_src
  • String
  • 可选
  • a
  • 起始rowkey,可模糊匹配
  • └ end_rowkey_src
  • String
  • 可选
  • z
  • 截止rowkey,可模糊匹配
  • └ rowkey_type_src
  • String
  • 可选
  • TEXT
  • src rowkey类型: TEXT/BINARY
  • └ start_rowkey_dst
  • String
  • 可选
  • a
  • dst起始rowkey
  • └ end_rowkey_dst
  • String
  • 可选
  • z
  • dst截止rowKey
  • └ rowkey_type_dst
  • String
  • 可选
  • BINARY
  • dst rowkey类型: TEXT/BINARY
  • └ lindorm_type_src
  • String
  • 可选
  • tableservice
  • src lindorm数据模型, widecolumn, tableservice
  • └ lindorm_type_dst
  • String
  • 可选
  • tableservice
  • 同上
  • └ lindorm_where_src
  • String
  • 可选
  • where(compare("id", LESS, 5));
  • lindorm select where配置,参考:https://aliyuque.antfin.com/bos/lindorm-doc/usage_dml_select
  • └ lindorm_where_dst
  • String
  • 可选
  • where(compare("id", LESS, 5));
  • 同上
  • └ is_external_src
  • Number
  • 可选
  • 0
  • 是否采用外表方式,1:是;0:否
  • └ is_external_dst
  • Number
  • 可选
  • 0
  • 同上
sso_ticket String 必须 0a44ee7b1c994bea953ce186cedbb006a3415700 从登录态创建的ssoTicket
app_code String 必须 1b7d1e7c9cd94274a04e833713a3b575 调用方的buc.app-code, 注意区分日常和线上环境

响应参数

名称 类型 示例值 描述
data Number 36574 创建的对比任务id
success2 Boolean true 是否成功
error_code2 Number 0 错误码
cause2 String null 出错原因
message2 String null 出错信息

请求示例

  • JAVA
  • .NET
  • PHP
  • CURL
  • Python
  • C/C++
  • NodeJS
TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret);
AlibabaDtOnecompareComparejobCreateRequest req = new AlibabaDtOnecompareComparejobCreateRequest();
AlibabaDtOnecompareComparejobCreateRequest.JobVO obj1 = new AlibabaDtOnecompareComparejobCreateRequest.JobVO();
obj1.setWhereFilterSrc("app_name='onecompare'");
obj1.setSchemaModeDst("auto");
obj1.setSchemaDst("trace_id|string;access_time|datetime;rpc_id|string;app_name|string;log_name|string;uri_info|string;rpc_type|string;user_id|string;domain|string;uri|string;uri_param|string;page_uri|string;content_type|string;is_page|string;local_ip|string;is_outer|string;ext_info|string;payload|string;responsedata|string;emp_id|string;dep_desc|string;bu_name|string;job_type|string;ds|string");
obj1.setRunProject("wl_rec_test_dev");
List<AlibabaDtOnecompareComparejobCreateRequest.AlarmType> list3 = new ArrayList<AlibabaDtOnecompareComparejobCreateRequest.AlarmType>();
AlibabaDtOnecompareComparejobCreateRequest.AlarmType obj4 = new AlibabaDtOnecompareComparejobCreateRequest.AlarmType();
list3.add(obj4);
obj4.setDetail("钉钉");
obj4.setType("ding");
obj1.setJobAlarmMethod(list3);
obj1.setIsExplorate(1L);
AlibabaDtOnecompareComparejobCreateRequest.TimerSchema obj5 = new AlibabaDtOnecompareComparejobCreateRequest.TimerSchema();
obj5.setOffset("10");
obj5.setRate("pause");
obj1.setJobCycle(obj5);
obj1.setResultType("1,2");
obj1.setSqlSrc("null");
obj1.setSchemaModeSrc("auto");
obj1.setJobName("对比任务api测试");
obj1.setWhereFilterDst("app_name='datapro'");
obj1.setDataReadModeSrc("table");
obj1.setSqlDst("null");
obj1.setIsAlarm(1L);
obj1.setPartitionDst("ds=${yyyymmdd-2}");
obj1.setProjectName("故知的测试项目");
obj1.setProjectId(2013L);
obj1.setDataSourceType("ODPS");
obj1.setJobCategory("HOMO");
obj1.setDataReadModeDst("table");
List<AlibabaDtOnecompareComparejobCreateRequest.JobTableRulesBO> list7 = new ArrayList<AlibabaDtOnecompareComparejobCreateRequest.JobTableRulesBO>();
AlibabaDtOnecompareComparejobCreateRequest.JobTableRulesBO obj8 = new AlibabaDtOnecompareComparejobCreateRequest.JobTableRulesBO();
list7.add(obj8);
obj8.setRuleExcept("0");
obj8.setRuleNameSrc("100");
obj8.setRuleNameDst("100");
obj8.setRuleId("100");
obj1.setDataTableRules(list7);
List<AlibabaDtOnecompareComparejobCreateRequest.JobFieldRulesBO> list10 = new ArrayList<AlibabaDtOnecompareComparejobCreateRequest.JobFieldRulesBO>();
AlibabaDtOnecompareComparejobCreateRequest.JobFieldRulesBO obj11 = new AlibabaDtOnecompareComparejobCreateRequest.JobFieldRulesBO();
list10.add(obj11);
obj11.setIgnoreFloatPreciseFieldExpect(false);
obj11.setIgnoreNullZeroFieldExpect(false);
obj11.setIgnoreValueDiffFieldExpect("0");
obj11.setFulltextExpect(true);
obj11.setIgnoreNullEmptyFieldExpect(false);
obj11.setIgnoreValueAbsDiffFieldExpect("0");
obj11.setIgnoreDoubleIntFieldExpect(false);
obj11.setDstField("trace_id");
obj11.setKeyFieldExpect(true);
obj11.setSrcField("trace_id");
obj11.setTranslateFunctionEnumSrc("REPLACE");
obj11.setTranslateFunctionParamsSrc(""a", "b"");
obj11.setTranslateFunctionEnumDst("TO_STRING");
obj11.setTranslateFunctionParamsDst("");
obj1.setDataFieldsRules(list10);
obj1.setTableNameDst("wl_rec_test.dwd_dt_moe_one_log_url_access_wide_di");
obj1.setPartitionSrc("ds=${yyyymmdd-2}");
obj1.setDataSourceTypeSrc("odps");
obj1.setSchemaSrc("trace_id|string;access_time|datetime;rpc_id|string;app_name|string;log_name|string;uri_info|string;rpc_type|string;user_id|string;domain|string;uri|string;uri_param|string;page_uri|string;content_type|string;is_page|string;local_ip|string;is_outer|string;ext_info|string;payload|string;responsedata|string;emp_id|string;dep_desc|string;ds|string");
List<AlibabaDtOnecompareComparejobCreateRequest.SimpleUser> list13 = new ArrayList<AlibabaDtOnecompareComparejobCreateRequest.SimpleUser>();
AlibabaDtOnecompareComparejobCreateRequest.SimpleUser obj14 = new AlibabaDtOnecompareComparejobCreateRequest.SimpleUser();
list13.add(obj14);
obj14.setEmpId("132222");
obj14.setEmpName("故知");
obj1.setReceiverEmpInfo(list13);
obj1.setDataSourceIdSrc(19L);
obj1.setJobAlarmRange(""00:00","23:59"");
obj1.setDataSourceTypeDst("odps");
obj1.setTableNameSrc("wl_rec_test.dwd_dt_moe_one_log_url_access_di");
obj1.setDataSourceIdDst(19L);
obj1.setCompareJoinType("FULL_JOIN");
obj1.setTddlSingleSrc(1L);
obj1.setTddlSingleDst(0L);
obj1.setSplitPkSrc("id");
obj1.setSplitPkDst("id,name");
obj1.setStartRowkeySrc("a");
obj1.setEndRowkeySrc("z");
obj1.setRowkeyTypeSrc("TEXT");
obj1.setStartRowkeyDst("a");
obj1.setEndRowkeyDst("z");
obj1.setRowkeyTypeDst("BINARY");
obj1.setLindormTypeSrc("tableservice");
obj1.setLindormTypeDst("tableservice");
obj1.setLindormWhereSrc("where(compare(\"id\", LESS, 5));");
obj1.setLindormWhereDst("where(compare(\"id\", LESS, 5));");
obj1.setIsExternalSrc(0L);
obj1.setIsExternalDst(0L);
req.setJobVo(obj1);
req.setSsoTicket("0a44ee7b1c994bea953ce186cedbb006a3415700");
req.setAppCode("1b7d1e7c9cd94274a04e833713a3b575");
AlibabaDtOnecompareComparejobCreateResponse rsp = client.execute(req);
System.out.println(rsp.getBody());

响应示例

  • XML示例
  • JSON示例
<alibaba_dt_onecompare_comparejob_create_response>
    <data>36574</data>
    <success2>true</success2>
    <error_code2>0</error_code2>
    <cause2>null</cause2>
    <message2>null</message2>
</alibaba_dt_onecompare_comparejob_create_response>

异常示例

  • XML示例
  • JSON示例
<error_response>
    <code>50</code>
    <msg>Remote service error</msg>
    <sub_code>isv.invalid-parameter</sub_code>
    <sub_msg>非法参数</sub_msg>
</error_response>

错误码解释

错误码 错误描述 解决方案

API工具

如何获得此API

FAQ

返回
顶部