DataX及Datax-web杂记

👽个人博客:https://everspring.github.io/

👽公众号:爱历史的IT男

一. DataX调试

DataX之前调试不是很方便,要打包后才能调试。23年7月后一位叫"FuYouJ "的开源者提交了datax-example模块,就方便了很多。下面说下简要使用方法

1.把配置好的reader/writer的json文件放到datax-example-streamreaderresource目录下

2.把用到的reader、writer的依赖包配置到datax-example-streamreaderpom.xml

3.把datax-example-core下面core.json配置中的transport.channel.speed.byte改成大于-1,原因就是避免运行时出现异常[DataX引擎配置错误,该问题通常是由于DataX安装错误引起,请联系您的运维解决 .]. - 在有总bps限速条件下,单个channel的bps值不能为空,也不能为非正数

4.StreamReader2StreamWriterTest.java中把path的值改一下,注意是/开头,默认对应的就是第1步中resource路径

5.运行即可

二. Datax-web运行

之前的python环境是直接安装的,后面改成了conda安装后,用Datax-web执行时提示ReturnT:ReturnT [code=500, msg=command exit value(9009) is failed, content=null],就是python的命令找不到。除了重装python环境外,还可以手动指定python.exe路径

在datax-executor模块中,将ExecutorJobHandler类的 buildDataXExecutorCmd方法中
cmdArr.add("python"); 改为 cmdArr.add("python.exe的路径");

三.其他问题

  1. datax-web执行datax是通过datax.py实现的。在使用数据源是oracle的时候,遇到了夏令时问题,比如数据类型是date,查询出来后时间会大1小时,如1947-04-15 00:00:00,1946-05-15 00:00:00,1949-05-01 00:00:00查询出来是1947-04-15 01:00:00,1946-05-15 01:00:00,1949-05-01 01:00:00。这个时候需要指定时区,但在datax的配置文件中不能在jdbcUrl中指定timezone,"jdbc:oracle:thin:@//127.0.0.1:1521/test?timezone=GMT+8"这种常用的指定方法会导致启动失败。所以需要在jvm参数中指定。在datax指定时区方式如下
    datax/bin/datax.py里面DEFAULT_PROPERTY_CONF的值-Dfile.encoding=UTF-8后面加一段-Duser.timezone=GMT+8
相关推荐
迎風吹頭髮24 分钟前
UNIX下C语言编程与实践15-UNIX 文件系统三级结构:目录、i 节点、数据块的协同工作机制
java·c语言·unix
带刺的坐椅35 分钟前
Solon Plugin 自动装配机制详解
java·spring·solon·spi
梦想养猫开书店1 小时前
38、spark读取hudi报错:java.io.NotSerializableException: org.apache.hadoop.fs.Path
java·spark·apache
hello 早上好1 小时前
Spring Boot 核心启动机制与配置原理剖析
java·spring boot·后端
2023框框1 小时前
方法器 --- 策略模式(Strategy Pattern)
java·策略模式
Brookty1 小时前
【Java学习】定时器Timer(源码详解)
java·开发语言·学习·多线程·javaee
编啊编程啊程2 小时前
gRPC从0到1系列【6】
java·rpc·kafka·dubbo·nio
宸津-代码粉碎机3 小时前
Redis 进阶:跳出缓存局限!7 大核心场景的原理与工程化实践
java·人工智能·redis·python
极客先躯3 小时前
Spring Statemachine 架构详解
java·spring·架构
ccccczy_3 小时前
Java微服务容器化与 Kubernetes 编排实战:从 Docker 多阶段构建到云原生弹性扩展
java·docker·kubernetes·springboot·microservices·cloudnative·containerization