2024/4/14小于 1 分钟
2024/3/10小于 1 分钟
CSV文件以纯文本形式存储表格数据。不同于Excel文件复杂的内容格式,纯文本文件可以非常方便地使用Shell命令处理。
在最近的工作中遇到一个问题:客户导出的用户数据有60w条之多,全部保存在一个CSV文件中。要导入系统中遇到了几个问题:
- 由于考虑不周,在导入用户的脚本中没有按行读取CSV文件,而是一次性全部加载到内存中循环处理。在这样的情况下就必须要考虑大数据量导入时内存溢出的问题。
- 每导入一个用户系统都要做触发相关事件等额外操作。这就导致如果是一个文件从头到尾导入,速度会非常慢,时间过长无法接受。期望可以使用多个文件并行导入。
- 期望在导入过程中某一条数据出错导致脚本崩溃时,可以尽可能小范围排查数据,也要尽可能减少重试时检查已导入的数据。
综合考虑,我们需要把这个巨大的CSV拆分为小文件,每个文件2w行且第一行保留表头。
2021/4/17大约 2 分钟