DataX文本抽取支持字符串切割
saber599

背景

DataX的文本抽取,都是基于com.csvReader.CsvReader进行读取,CsvReader有个缺陷就是无法对文本按照字符串进行切割,但是部分业务数据的行分隔符,列分隔符是使用的字符串

方案

1. 将字符串切割和单字符切割分开实现

截图
阿里云Dataphin的官方方案

优点:

  1. 方案简单

缺点:

  1. 对DataX源码侵入比较大,改动范围较广
  2. 行分隔符仅支持\r\n和\n,不能自定义字符串行分割符
  3. 使用字符串的split对性能有一定影响

2. 改造CsvReader,支持字符串切割

优点:

  1. 对DataX源码侵入较小,仅改动CsvReader即可
  2. 可以同时支持列分隔符、行分隔符自定义字符串切割
  3. 性能比使用字符串的split好

缺点:

  1. 实现难度较高,需要花时间进行边界值测试

结论:考虑到后续的源码维护、升级,综合考虑,采用第二种方案

实现

截图