存储大量推文数据集:文本文件与数据库

时间:2019-01-11 22:29:23

标签: python database twitter

我收集了一个很大的Twitter数据集(> 150GB),该数据集存储在某些文本文件中。目前,我使用自定义Python脚本检索和操作数据,但我想知道使用数据库技术存储和查询此数据集是否有意义,尤其是考虑到其大小。如果有人有处理这种大小的twitter数据集的经验,请分享您的经验,尤其是对于使用什么数据库技术以及导入需要多长时间提出任何建议时。谢谢

2 个答案:

答案 0 :(得分:0)

我建议为此使用数据库模式,尤其是考虑到它的大小。 (这对数据集的内容一无所知)话虽如此,我现在还是建议使用software suggestions网站对此性质的未来问题进行讨论,并添加有关数据集内容的更多信息会看起来像。

关于具体建议某个数据库,我建议对每个数据库的功能进行一些研究,但是对于仅保存没有关系的数据的数据库,将可以进行查询,并且与txt文件相比,查询性能得到了很大的改善,因为可以缓存查询并数据的检索速度更快,这是因为数据库存储和查找文件的方式使其不受哈希值或它们使用的任何影响。

一些流行的数据库:

MYSQLPostgreSQL-关系数据库(简单,快速,易于使用/设置,但需要一些SQL知识)

MongoDB-NoSQL数据库(也易于使用和设置,不需要SQL,它更依赖于通过API访问DB的命令。内存映射也比关系型更快,但需要有足够的RAM用于索引。)

ZODB-完整的Python NoSQL数据库(类似于MongoDB,但使用Python编写)

这些是每个DB的非常简短的解释,请务必在使用它们之前进行研究,因为它们各有利弊。另外,请记住,这只是许多受欢迎且使用率很高的数据库中的几个,还有TinyDBSQLite (Python附带)PickleDB完整的Python,但通常用于小型应用程序。

我的经验主要是PostgreSQL,TinyDB和MongoDB,我最喜欢的是MongoDB和PGSQL。对于您来说,我会看看其中的任何一种,但不限于这些,它们只是其中的一小部分,外加许多驱动程序,如果需要的话,可以帮助您编写更简单/更少的代码。记住google是你的朋友!欢迎使用Stack Overflow!

修改

如果您的数据集非常简单,但是仍然很大,并且您想继续使用txt文件,请考虑使用pandas,并考虑使用JSON或csv格式和库。当从txt文件查询/管理这样的数据时,它可以极大地帮助并提高效率,并且由于内存不再总是或永远不需要整个数据集,因此内存使用量更少。

答案 1 :(得分:-1)

您可以尝试使用任何NOSql DB。 Mongo DB将是一个不错的起点