【发布时间】:2019-01-11 22:29:22
【问题描述】:
我收集了一个存储在一些文本文件中的大型 Twitter 数据集 (>150GB)。目前我使用自定义 Python 脚本检索和操作数据,但我想知道使用数据库技术来存储和查询这个数据集是否有意义,尤其是考虑到它的大小。如果有人有处理这种大小的 twitter 数据集的经验,请分享您的经验,特别是如果您对使用哪种数据库技术以及导入可能需要多长时间有任何建议。谢谢你
【问题讨论】:
我收集了一个存储在一些文本文件中的大型 Twitter 数据集 (>150GB)。目前我使用自定义 Python 脚本检索和操作数据,但我想知道使用数据库技术来存储和查询这个数据集是否有意义,尤其是考虑到它的大小。如果有人有处理这种大小的 twitter 数据集的经验,请分享您的经验,特别是如果您对使用哪种数据库技术以及导入可能需要多长时间有任何建议。谢谢你
【问题讨论】:
我建议为此使用数据库架构,尤其是考虑到它的大小。 (这是在不知道数据集包含什么的情况下) 话虽如此,我建议现在或将来使用software suggestions 网站解决此类性质的问题,并添加更多关于数据集外观的信息喜欢。
至于具体建议某个数据库,我建议对每个数据库的作用进行一些研究,但对于只保存数据而没有任何关系的东西,并且可以显示出比仅 txt 文件更好的查询改进,因为查询可以被缓存和由于数据库存储和查找文件的方式,数据的检索速度更快,因为它只是散列值或它们使用的任何东西。
一些流行的数据库:
MYSQL, PostgreSQL - 关系数据库(简单、快速且易于使用/设置,但需要一些 SQL 知识)
MongoDB - NoSQL 数据库 (也易于使用和设置,不需要 SQL,它更多地依赖于字典通过 API 访问数据库。内存映射因此可以比关系更快,但需要有足够的用于索引的 RAM。)
ZODB - 完整的 Python NoSQL 数据库(有点像 MongoDB,但用 Python 编写)
这些是对每个数据库的非常轻松和简短的解释,请务必在使用它们之前进行研究,它们各有优缺点。另外,请记住,这只是许多流行且高度使用的数据库中的几个,还有TinyDB、SQLite (与 Python 一起提供) 和 PickleDB,它们是完整的 Python,但通常用于小型应用程序。
我的经验主要是 PostgreSQL、TinyDB 和 MongoDB,我最喜欢的是 MongoDB 和 PGSQL。对你来说,我会看看其中的任何一个,但不要限制自己,如果你想要的话,它们还有许多驱动程序可以帮助你编写更容易/更少的代码。记住google 是你的朋友!欢迎来到 Stack Overflow!
编辑
如果您的数据集现在并且将保持相当简单但只是很大并且您希望继续使用 txt 文件,请考虑使用 pandas,也许是 JSON 或 csv 格式和库。当从 txt 文件中查询/管理此类数据时,它可以极大地帮助并提高效率,而且内存使用量更少,因为它并不总是或永远需要内存中的整个数据集。
【讨论】:
您可以尝试使用任何 NOSql DB。 Mongo DB 将是一个不错的起点
【讨论】: