
问下大佬, 要用 java 通过逻辑运算生成一张表格(数据量大概 10 亿), 后面需要对该表格做统计分析, 有没有好的建议
配置: 系统: windows10 内存: 20G cpu: i710 代 硬盘: 5900rpm 写入 10m/s
目前的做法是如下:
由于数据后期需要做很多类似 count, sum 之类的运算 es, map reduce 可能不适合,
能想到的优化方案:
1 ihehe 2022 年 3 月 31 日 via iPhone 把这 10 亿数据生成 parquet 格式,丢到本地文件大概 10g 以内, 找个 mmp 工具,单机版的就够用,10g 内存 sql 撸几次就可以了,结果存文件,这不就随便唆嘛 |
2 ihehe 2022 年 3 月 31 日 via iPhone 更正:mmp --> mpp |
3 Itoktsnhc 2022 年 3 月 31 日 这个场景 clickhouse 不是挺好 |
4 zer0fire OP @ihehe 原先 mysql 要查询的数据表就有 1 亿多条记录, 如何转成 parquet 格式(mysqsl->Hadoop), 内存 sql, 是让我使用内存数据库吗? |
6 ihehe 2022 年 3 月 31 日 via iPhone 写个程序把 mysql 数据读出来,生成 parquet 格式,就 1 亿条,上面的方案看错了,看成 10 亿,1 亿 条转成 prquet 大概 1g 大小以内;那就不用那么麻烦,你这单机丢到 duckdb 里去, 然后撸 sql 把 |
8 ihehe 2022 年 3 月 31 日 via iPhone @zer0fire 可以这么理解吧,前提是转好格式,提升几十倍的扫描速度,减少 10 多倍的数据大小,你可以试试单机的 spark/ flink/drill/presto 都可以直接扫文件,不用先导成表 |
9 F281M6Dh8DXpD1g2 2022 年 3 月 31 日 生成文件 load 完事 另外为啥你要用 java 生成...随便找个 spark 都快得很好吧 |
12 zmal 2022 年 3 月 31 日 mysql 的使用不太对吧,并行写入同一张表对写入性能不会有提升,线程开那么多也没啥用啊。可以考虑不用 mysql ,数据放 kafka 。 看起来这个场景用大数据工具解决会简单很多,spark/flink 之类的。 |
14 X0ray 2022 年 3 月 31 日 先定位瓶颈呗,看着像是读数据慢? 还有 count sum 这类的聚合运算,为啥 es, map reduce 就不适合了? |
15 ihehe 2022 年 3 月 31 日 via iPhone @zer0fire mysql 的 memory 引擎对这 1 亿处理应该没啥问题,如果 10 亿百亿的你就没这么多 memory 给它用了; 上面的那些组件都是 java 的,win 上应该是可以跑的,不用再虚拟一层 linux ;(不过我没有在 win 上用过它们) |
16 BeijingBaby 2022 年 3 月 31 日 推荐 clickhouse ,轻松处理。 |
17 clf 2022 年 3 月 31 日 drill 可以看看这个。 |
18 encro 2022 年 3 月 31 日 你以为 mysql memory table 的 sum,cout 就快了吗? mysql 就是只能作 oltp 业务,作 olap 还是不行的。 |
19 akira 2022 年 3 月 31 日 不管是啥,无脑上 固态 总是对的 |