Java8 使用 easyExcel 导入 4g 大小的 csv 文件

查看 39|回复 3
作者:jiangboyueplus   
粗略观测,在没完成导入前内存占用已经超 48g 。粗略估算好像是因为我需要将所有的行记录都放到一个 list ,最后聚合处理,这个 list 至少有 9 千万条以上的记录。
以上,何解?
1.多次读取 每次只保存需要聚合的数据的一部分.缺点,同一个文件要读好多次 预计会非常耗时
2.每次读取一行记录都存入数据库,最后从数据库取用。缺点,需要额外的数据库表结构,且 mysql 单表存储也会有查询压力(可以考虑分表,但这个方案挺麻烦的)
imzhoukunqiang   
改动量最小的方案,用 mapdb ,把 list 映射到磁盘。
512357301   
对 Java 不熟,我的方案:
纯本地,sqlite 或 duckdb 或同类型方案
100 并发以内,clickhouse 或同类型 olap 方案
100 以上并发,出门左转找数据团队。
jiangboyueplus
OP
  
@imzhoukunqiang 作为一个数据导入的需求,我就喜欢改动最小的方案。我去了解下
您需要登录后才可以回帖 登录 | 立即注册

返回顶部