大数据ETL实践探索(9)---- 使用pandas sqlalchemy进行多进程百万级数据入库postgresSQL


最近有个需求,需要将100W 40个字段左右的 excel 格式数据录入 postgreSQL 数据库。 我想了几种办法:

  1. 使用psycopg2 原生 api
  2. 使用pgAdmin 页面 建立好table 直接导入csv
  3. 使用pandas to_sql 方法
  4. 使用 sqlalchemy 批量录入方法
  5. 使用python 多进程,pandas 数据清洗后用 sqlalchemy 批量录入方法

先说一下结论吧,我实验的流程是读取3个文件大小分别是3000行,30万行,70万行,清洗合并后是一个111万行40 个字段的宽表。 使用最后一种多进程批量入数据的方式,基本测试结果是,数据加载及清洗将近6分钟,数据入库6分钟。

我机器是i7 7500U 运行上述程序时候 睿频加速到3.5GHz 左右,cpu 占用40%, 数据清洗时候内存占用500-600MB 拆分入库阶段,内存占用飙升到2000MB - 4000MB 其中包含每个子进程单独占用70MB 左右。

后面且听我娓娓道来


0.基础性工作

连接类

主要作用是是数据库链接时候进行数据库链接字符串的管理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shiter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值