DataWorks百问百答68:如何阅读数据集成日志(日志分析及常见报错情况)?

如何阅读数据集成日志?

第一部分:系统参数信息。记录运行机器、地域信息、项目名、节点信息、参数值等。
需要关注点:参数值是否已经被实际值替换,运行的调度资源组是什么类型?
group_xxxxxxx_xxx:公共调度资源组
S_res_group_xxx:独享调度资源组
xxxxx:自定义调度资源组

DataWorks百问百答68:如何阅读数据集成日志(日志分析及常见报错情况)?
数据集成资源组:
运行在默认的资源组上: in Pipeline[basecommon_ group_xxxxxxxxx]
运行在数据集成自定义资源组上: in Pipeline[basecommon_xxxxxxxxx]
运行在独享数据集成资源上: in Pipeline[basecommon_S_res_group_xxx]
需注意资源组的选择。

数据集成任务从提交到结束,共分为四个状态。分别为submit、wait、run、success或者failed。

submit:提交任务,将数据集成任务提交到服务器执行。
数据集成任务不允许同一个任务同时提交两次,所以当一个任务同时提交了多个实例时仅有一个会被服务器接收,另一个会提交失败(补数据和周期实例冲突、补数据和手动运行冲突、周期实例间隔时间段冲突、周期实例和手动触发任务提交冲突这些情况都会导致任务提交失败)。所以当有多实例job冲突时,会造成submit failed的现象。

wait:等待服务器分配资源使该任务运行。若数据集成资源组资源不足,则运行日志中会有长时间处于wait状态的现象且stage为0%。
DataWorks百问百答68:如何阅读数据集成日志(日志分析及常见报错情况)?

run:表示数据集成任务已经在资源组上运行了。run状态包含多个部分,包括预执行preSql(删除表数据等)、同步数据、数据写入目的端后执行postSql(同步完成后执行的sql,删除部分重复数据等)等。

数据集成任务日志分为两个部分,第一部分主要为任务渲染、提交、运行、执行完毕的日志,不记录各个子线程的执具体执行情况,仅粗略表达任务的执行状态、时间。对应的结束标志为:
DI Finish at            : xxxxxx
DataWorks百问百答68:如何阅读数据集成日志(日志分析及常见报错情况)?

第二部分为各线程具体执行的细则,主要包含任务的切分、切分的结果、执行的详情、数据量、最终状态等。
从日志表现上看,DI Finish at  : xxxxxx之后便可认为是第二部分的详细日志了。

例如我们配置切分键将一个rds表数据切分成数份进行同步,日志中会有明显的切分标志并且根据所配置的切分键的最大最小值进行等分为数份。
DataWorks百问百答68:如何阅读数据集成日志(日志分析及常见报错情况)?
且每一个在源端进行查询的sql和其最终的结构都会打印出来。
DataWorks百问百答68:如何阅读数据集成日志(日志分析及常见报错情况)?

长时间处于run状态但是进度一直是0%?
这种情况极大的概率是由于任务配置了preSql且preSql执行逻辑较为复杂或者数据量过大,导致preSql在数据库端执行的时候耗用的时间过长从而任务进度一直是0%;
这种情况日志中请到第二部分日志中搜preSql,会有明显的presql执行日志且其与下一条日志的时间间隔相差较久。

长时间处于run状态但是进度一直在某个百分比?
这种情况可能是个子线程所执行的读取数据库数据的sql在数据库端执行异常,迟迟不返回结果,一般伴随着数据库连接超时、时间参数超过阈值而报error的情况。

长时间处于run状态且进度为99%?
这种情况请检查下是否配置了postsql,即同步完成后执行postsql对数据进行后处理耗用了比较久的时间。同presql的一样。

DataWorks百问百答历史记录 请点击这里查看>>

更多DataWorks技术和产品信息,欢迎加入【DataWorks钉钉交流群】

上一篇:DataWorks百问百答65:如何获取数据源网络环境及独享资源绑定的专有网络信息?


下一篇:在windows 平台下常用的mysql 命令