|      1cookii      2024-04-17 00:18:22 +08:00 via Android 改动量最小的方案,用 mapdb ,把 list 映射到磁盘。 | 
|      2512357301      2024-04-17 00:22:27 +08:00 via Android 对 Java 不熟,我的方案: 纯本地,sqlite 或 duckdb 或同类型方案 100 并发以内,clickhouse 或同类型 olap 方案 100 以上并发,出门左转找数据团队。 | 
|      3jiangboyueplus OP @imzhoukunqiang 作为一个数据导入的需求,我就喜欢改动最小的方案。我去了解下 | 
|  |      4sagaxu      2024-04-17 08:46:29 +08:00 大 csv 不要用 easyExcel 读,用 commons csv ,CSVParser 可以迭代器访问,不用全部载入内存 边读边聚合,一次汇总完所有指标,同一个文件只读一次 分表是分布到多个机器利用集群性能,或者把冷热数据分离降低规模,此处不适用 | 
|      5perbugwei      2024-04-17 08:46:49 +08:00 9 千万条数据,那必然爆。 存到 mysql ,超过两千万也有问题。 不改程序,操作一下 csv ,把 csv 分割成多个 sheet 。 | 
|      6luozic      2024-04-17 08:58:24 +08:00  1 这明显是 duckdb 的场景,关键是 duckdb 用得多案例多,mapdb 维护都没看到什么了 | 
|      7cslive      2024-04-17 09:01:11 +08:00 shell 直接导入 csv 文件 | 
|      8Arivan996      2024-04-17 09:15:02 +08:00 最核心的问题不是所有的数据都在内存中没做处理吗? | 
|  |      9Karte      2024-04-17 09:38:01 +08:00 核心问题是你要拿这些数据做什么? | 
|  |      10Karte      2024-04-17 09:38:47 +08:00 有谁会把 9 千万条数据一起做聚合的? 分批次聚合都能解决问题. | 
|  |      11BBCCBB      2024-04-17 09:52:32 +08:00 easyexcel 也是可以增量解析的, 你的问题在于要把所有数据都加到内存里. | 
|  |      12winglight2016      2024-04-17 09:55:54 +08:00 lz 不说完整的需求,这个问题无解 如果是纯聚合计算,用 spark 吧 | 
|  |      13beetlerx      2024-04-17 09:57:36 +08:00  3 这不是 1BRC 很像么  看看这个  https://www.cnblogs.com/thisiswhy/p/18051585 | 
|  |      14dooonabe      2024-04-17 09:58:50 +08:00 需求太模糊了 | 
|      15wxf666      2024-04-17 10:21:31 +08:00 @luozic #6 感觉 DuckDB 读文件时,性能有点问题? 感觉 DuckDB 读空缓冲区后,Writer 才能继续写。写满后,DuckDB 才去读一样? 同样的内容,会因喂给 DuckDB 的姿势不同,表现出不同的速度差异。。 就像 Python 的假多线程一样,只能有一个线程活跃。。  | 
|      16yazinnnn0      2024-04-17 10:36:21 +08:00 边读边算呗, 为啥要全读完 | 
|  |      19Vegetable      2024-04-17 13:26:27 +08:00 有点抽象了,一个导入的需求而以,非得读到内存全量操作,就没有什么流式处理的可能吗? | 
|      21fengpan567      2024-04-28 18:08:04 +08:00 搞 2 张临时表,用先将原始数据初始化进去,然后存储过程批量计算 insert | 
|      22jiangboyueplus OP @fengpan567 这也可以,就是现在很多人不可能没用过存储过程 | 
|      23Cruzz      2024-05-06 18:01:45 +08:00 没太看懂需求,我理解的事不能分片么?不能分片我能想到的映射 hive 表用 hadoop 或者 spark 去算? |