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

2024-04-16 23:59:40 +08:00
 jiangboyueplus
粗略观测,在没完成导入前内存占用已经超 48g 。粗略估算好像是因为我需要将所有的行记录都放到一个 list ,最后聚合处理,这个 list 至少有 9 千万条以上的记录。

以上,何解?

1.多次读取 每次只保存需要聚合的数据的一部分.缺点,同一个文件要读好多次 预计会非常耗时

2.每次读取一行记录都存入数据库,最后从数据库取用。缺点,需要额外的数据库表结构,且 mysql 单表存储也会有查询压力(可以考虑分表,但这个方案挺麻烦的)
3617 次点击
所在节点    Java
23 条回复
fengpan567
2024-04-28 18:08:04 +08:00
搞 2 张临时表,用先将原始数据初始化进去,然后存储过程批量计算 insert
jiangboyueplus
2024-04-28 22:05:46 +08:00
@fengpan567 这也可以,就是现在很多人不可能没用过存储过程
Richared
2024-05-06 18:01:45 +08:00
没太看懂需求,我理解的事不能分片么?不能分片我能想到的映射 hive 表用 hadoop 或者 spark 去算?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1033092

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX