解决datax输出文件随机数后缀问题

发布时间 2023-08-29 12:59:29作者: Nemuzuki

原版的datax将数据库数据输出到指定文件时,会在该文件名后面加上一个随机数,不方便使用。这是datax源码中的问题,需要去 https://github.com/alibaba/DataX 下载源码并重新编译datax。参考datax源代码编译安装_程序员_IT序号网 (itno.cn)

  1. 修改./datax-master/txtfilewriter/src/main/java/com/alibaba/datax/plugin/writer/txtfilewriter/TxtFileWriter.java237行,注释掉后缀fileSuffix代码,只包含原文件名filePrefix
                String fullFileName = null;
                fullFileName = filePrefix;//only carry prefix
//                fileSuffix = UUID.randomUUID().toString().replace('-', '_');
//                fullFileName = String.format("%s__%s", filePrefix, fileSuffix);
//                while (allFiles.contains(fullFileName)) {
//                    fileSuffix = UUID.randomUUID().toString().replace('-', '_');
//                    fullFileName = String.format("%s__%s", filePrefix,
//                            fileSuffix);
//                }
                allFiles.add(fullFileName);
  1. 重编译datax:mvn -U clean package assembly:assembly -Dmaven.test.skip=true。如果发现哪个依赖(我这里是neo4jwriter和datax-example-neo4j)下不来,就在pom.xml中注释掉

  2. 编译完成后,会在./datax-master/target目录下生成datax.tar.gz文件,解压即可