Fork me on GitHub

Datax学习指南(五)-- 进阶datax web

  前面四篇已经介绍了datax的基本概念、如何新增plugins、怎么打包运行。掌握了前面四章的内容,基本就知道datax是干嘛的、设计原理是什么、如何运行,运行结果是怎样的。

  但是,有个问题你们想过没:“Java程序如何集成此工具实现定时或自动同步?”

  怀着这个疑问,终于在github找到了答案--datax web

  项目的介绍是:DataX Web是在DataX之上开发的分布式数据同步工具,提供简单易用的 操作界面,降低用户使用DataX的学习成本,缩短任务配置时间,避免配置过程中出错。用户可通过页面选择数据源即可创建数据同步任务,支持RDBMS、Hive、HBase、ClickHouse、MongoDB等数据源,RDBMS数据源可批量创建数据同步任务,支持实时查看数据同步进度及日志并提供终止同步功能,集成并二次开发xxl-job可根据时间、自增主键增量同步数据。

  整个实施部署方案文档里面已经介绍的很详细了,如果直接搬过来又有抄袭之嫌。这里就暂时将架构图借来一用。

 

  这里说下dev分支代码运行出现的几个问题,已提交issue。

  1、数据源创建--目前mongodb数据源创建时测试链接报错。

  分析:mongodb作为nosql数据库,没有关系型数据库经过验证的driver,现有程序并未指定,最终connect返回null

  

  解决:在测试链接方法内新增mongo类型的数据处理。(临时方案,最好还是研究下mongodb的driver及datasource)

    思路就是通过客户端去链接,并能获取到链接的数据库名

  

  2、进行任务构建,选择mongodb直接报错。通过查看代码,属于MongoDBQueryTool工具类的问题。

  

  3、pgsql创建同步任务,在选择schema后根据schema查询下属表时,返回结果会带上schema,根据表名查询表字段就会查询不出任何字段。

 

 

   解决:只需对获取到的表名进行简单处理。注意:目前仅pgsql返回schemaName.tableName这种格式,其他类数据库均直接返回tableName

  

 

 

   4、数据同步任务执行中,执行结果中包含部分特殊ASCII码,使用JacksonUtil解析时会报“Illegal unquoted character ((CTRL-CHAR, code 26))”错。

[{\"logId\":1114,\"logDateTim\":1650362257000,\"executeResult\":{\"code\":500,\"msg\":\"block strategy effect\u001ACover Early [job running, killed]\",\"content\":null}},{\"logId\":1115,\"logDateTim\":1650362258000,\"executeResult\":{\"code\":500,\"msg\":\"block strategy effect\u001ACover Early [job running, killed]\",\"content\":null}},{\"logId\":1099,\"logDateTim\":1650362242000,\"executeResult\":{\"code\":500,\"msg\":\"block strategy effect\u001ACover Early [job running, killed]\",\"content\":null}}][{\"logId\":1114,\"logDateTim\":1650362257000,\"executeResult\":{\"code\":500,\"msg\":\"block strategy effect:Cover Early [job running, killed]\",\"content\":null}},{\"logId\":1115,\"logDateTim\":1650362258000,\"executeResult\":{\"code\":500,\"msg\":\"block strategy effect:Cover Early [job running, killed]\",\"content\":null}},{\"logId\":1099,\"logDateTim\":1650362242000,\"executeResult\":{\"code\":500,\"msg\":\"block strategy effect:Cover Early [job running, killed]\",\"content\":null}}

  解决:

    

posted @ 2022-05-11 14:13  JackpotHan  阅读(477)  评论(0编辑  收藏  举报