CSV使用DataX导入数据库脏数据问题

2020-09-18  本文已影响0人  洛姆

功能需求:网页上传csv文件通过DATAX导入数据库

环境:有主备文件同步

导入工具:DataX

问题日志:

验证寻找bug步骤:

1. datax导入1000w行有脏数据

2. 尝试500w,200w,100w,50w,只有50w的可以

3. 尝试减去不同类型文件,只要达到一定大小就会出现脏数据

4. 检查上传到服务器的文件,出现数据缺失

5. 检查python脚本处理替换空值后的文件,检查源文件,无误

6. 尝试scp传输处理完的文件到服务器用datax处理,无误

7. 推测上传时出现丢包

8. 尝试了系统里另一个业务相同的上传逻辑的功能,并没有丢包问题,继续排查

9. 开发排查到是由于文件同步过于频繁(1s/次),在linux中,同时对一个文件进行读写操作造成文件部分数据丢失。即写操作时发现文件被读操作占用,只能等待,但此操作可能失败,在读操作完成后该部分数据即已丢失。


处理方法:

1. 先将文件上传非同步文件的文件夹,再传输到同步文件夹,增加文件同步时间。

2. 对上传的文件进行处理,在未上传完成时处理为临时文件,对于文件同步设置正交条件,临时文件不进行同步,当上传完成后再变更为正常文件进行同步。

选择了第二个解决方法。

上一篇 下一篇

猜你喜欢

热点阅读