一个整理得干干净净的数据库在现实中往往是可遇不可求的,或者说总是要买。记得唯一一次获得这种半成品是在参与一个前导师跟广州地铁的合作项目里,当时对方很爽快地给了我们一个巨大的dump文件。我之后就再没碰到这种好事了。总之,貧乏だから自分でやるしかないよ。
许多情况下,raw data在某一个阶段往往以文件形式存在,这一点在城市规划领域的数据分析工作中更是如此。越来越多的规划师都会写点爬虫获取数据,而最简单的方法就是存为.csv文件。不过,当数据量大到一定程度后,excel就变得非常不实用了,终归不得不迈出使用数据库的那一步。譬如一个典型的场景是,需要做一些聚合分析,或者条件query等,但是你只有一堆.csv。
让我们暂时假设这些数据以后还会经常被用到而且当事人并不知道dask这种库的存在(划掉
但是把.csv文件导入数据库这个环节不是自动完成的。如果不幸.csv文件太多了,譬如一个文件夹里上百个(当然可能是写爬虫的时候没设计好,先把这种情况当作既成事实吧),这个时候利用数据库图形界面手动一个个导入可能会当场去世,特别是类似周五晚这种这么适合玩耍的夜晚。也许有可以批量导入csv文件到数据的GUI?但是我并没有用过...
此外,这种IO密集型的任务如果只用单线程来跑也会很慢,所以如果可以concurrently done那是最好不过的了。
下边的简单代码可以满足一些有这种需求的小伙伴。它很无聊地提供了3中写入数据库的方式,如果你没有可爱的小哥哥/小姐姐跟你周末一起玩,那么可以都运行一下看看哪一种更快。
P.S. 上次运行是大概一年前的事情,没有测试过现在还行不行,如果出bug了请留言嘲笑。datapipe.pygist.github.com
时隔这么久还能看懂自己当时写了啥,说明注释没白写得比真的代码还长。。。