DataX文本抽取支持字符串切割
背景
DataX的文本抽取,都是基于com.csvReader.CsvReader进行读取,CsvReader有个缺陷就是无法对文本按照字符串进行切割,但是部分业务数据的行分隔符,列分隔符是使用的字符串
方案
1. 将字符串切割和单字符切割分开实现
阿里云Dataphin的官方方案
优点:
- 方案简单
缺点:
- 对DataX源码侵入比较大,改动范围较广
- 行分隔符仅支持\r\n和\n,不能自定义字符串行分割符
- 使用字符串的split对性能有一定影响
2. 改造CsvReader,支持字符串切割
优点:
- 对DataX源码侵入较小,仅改动CsvReader即可
- 可以同时支持列分隔符、行分隔符自定义字符串切割
- 性能比使用字符串的split好
缺点:
- 实现难度较高,需要花时间进行边界值测试
结论:考虑到后续的源码维护、升级,综合考虑,采用第二种方案