几千,1-2 万个 csv 格式的压缩文件,怎么快速解压入库到 pg 库?

33 天前
 xingzi10000
解压文件内容为: 第一行存放是表对应的名称,剩下的每行存放的是对应值。目前每个解压下来的文件有 1w 行数据,第 1 行存放表头,其他存放对应的数据。目前用的 java ,mybatis 做解析入库处理,每个文件要花费 4-5s 才能解析入库到 pg ,最坏的情况大概要 10s 之间
1451 次点击
所在节点    程序员
9 条回复
blacklinux
33 天前
转换成 sql 语句执行
sagaxu
33 天前
1. 批量插入 + 开启 pgsql 的 reWriteBatchedInserts ,单个文件控制在 1 秒左右
2. 使用多线程,不同的表并发插入
luozic
33 天前
分成 3 部分:1.解压读取 解析 csv
2.批处理
3.入库
用火焰图和时序看一下是哪部分慢呗。 插入 pg 批处理肯定没这么慢( pg 的 IO 没那么差的情况下)
lolizeppelin
33 天前
pg 直接 copy csv 啊,为什么转 sql
xingzi10000
33 天前
ok,谢谢各位,我先试试看
chowdpa02k413
33 天前
COPY 语句直接干
catamaran
33 天前
mysql 可以直接导 csv ,pg 不行?
yjhatfdu2
33 天前
find . -name '*.csv.gz' | xargs -I {} -P 4 bash -c "gzcat {} | psql -c 'copy test from stdin csv header'"
P 是并发,可以开高点
cloverzrg2
32 天前
下载了什么社工库吗

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

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

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

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

© 2021 V2EX