代码执行很慢但是数据库很快_从.csv文件到数据库

100f48660ed340dcc3707cbd840bb06f.png

一个整理得干干净净的数据库在现实中往往是可遇不可求的,或者说总是要买。记得唯一一次获得这种半成品是在参与一个前导师跟广州地铁的合作项目里,当时对方很爽快地给了我们一个巨大的dump文件。我之后就再没碰到这种好事了。总之,貧乏だから自分でやるしかないよ。

许多情况下,raw data在某一个阶段往往以文件形式存在,这一点在城市规划领域的数据分析工作中更是如此。越来越多的规划师都会写点爬虫获取数据,而最简单的方法就是存为.csv文件。不过,当数据量大到一定程度后,excel就变得非常不实用了,终归不得不迈出使用数据库的那一步。譬如一个典型的场景是,需要做一些聚合分析,或者条件query等,但是你只有一堆.csv。

让我们暂时假设这些数据以后还会经常被用到而且当事人并不知道dask这种库的存在(划掉

28de3fcde2bde5ef2abcb4382608c73c.png

但是把.csv文件导入数据库这个环节不是自动完成的。如果不幸.csv文件太多了,譬如一个文件夹里上百个(当然可能是写爬虫的时候没设计好,先把这种情况当作既成事实吧),这个时候利用数据库图形界面手动一个个导入可能会当场去世,特别是类似周五晚这种这么适合玩耍的夜晚。也许有可以批量导入csv文件到数据的GUI?但是我并没有用过...

此外,这种IO密集型的任务如果只用单线程来跑也会很慢,所以如果可以concurrently done那是最好不过的了。

下边的简单代码可以满足一些有这种需求的小伙伴。它很无聊地提供了3中写入数据库的方式,如果你没有可爱的小哥哥/小姐姐跟你周末一起玩,那么可以都运行一下看看哪一种更快。

957d5b71e8127e850824e413abe4d7e5.png

P.S. 上次运行是大概一年前的事情,没有测试过现在还行不行,如果出bug了请留言嘲笑。

datapipe.py​gist.github.com

时隔这么久还能看懂自己当时写了啥,说明注释没白写得比真的代码还长。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值