【问题标题】:Storing large dataset of tweets: Text files vs Database存储大型推文数据集:文本文件与数据库
【发布时间】:2019-01-11 22:29:22
【问题描述】:

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

【问题讨论】:

    标签: python database twitter


    【解决方案1】:

    我建议为此使用数据库架构,尤其是考虑到它的大小。 (这是在不知道数据集包含什么的情况下) 话虽如此,我建议现在或将来使用software suggestions 网站解决此类性质的问题,并添加更多关于数据集外观的信息喜欢。

    至于具体建议某个数据库,我建议对每个数据库的作用进行一些研究,但对于只保存数据而没有任何关系的东西,并且可以显示出比仅 txt 文件更好的查询改进,因为查询可以被缓存和由于数据库存储和查找文件的方式,数据的检索速度更快,因为它只是散列值或它们使用的任何东西。

    一些流行的数据库:

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

    MongoDB - NoSQL 数据库 (也易于使用和设置,不需要 SQL,它更多地依赖于字典通过 API 访问数据库。内存映射因此可以比关系更快,但需要有足够的用于索引的 RAM。)

    ZODB - 完整的 Python NoSQL 数据库(有点像 MongoDB,但用 Python 编写)

    这些是对每个数据库的非常轻松和简短的解释,请务必在使用它们之前进行研究,它们各有优缺点。另外,请记住,这只是许多流行且高度使用的数据库中的几个,还有TinyDBSQLite (与 Python 一起提供)PickleDB,它们是完整的 Python,但通常用于小型应用程序。

    我的经验主要是 PostgreSQL、TinyDB 和 MongoDB,我最喜欢的是 MongoDB 和 PGSQL。对你来说,我会看看其中的任何一个,但不要限制自己,如果你想要的话,它们还有许多驱动程序可以帮助你编写更容易/更少的代码。记住google 是你的朋友!欢迎来到 Stack Overflow!

    编辑

    如果您的数据集现在并且将保持相当简单但只是很大并且您希望继续使用 txt 文件,请考虑使用 pandas,也许是 JSON 或 csv 格式和库。当从 txt 文件中查询/管理此类数据时,它可以极大地帮助并提高效率,而且内存使用量更少,因为它并不总是或永远需要内存中的整个数据集。

    【讨论】:

    • 感谢您的建议。至于数据集的内容,是推文的数据集,原帖中提到过。
    • 对,我的意思是你只存储推文 ID 或推文内容、喜欢、不喜欢、转发......我对推特了解不多,只是想知道复杂性就是全部。我相信我听说 twitter 使用了一个图形数据库,但这只是凭记忆,我非常怀疑你是否需要一个。
    • 我正在使用 Twitter API 下载推文及其所有相关元数据。我已经从整个数据集中提取了特定的数据片段(例如推文日期和用户 ID)并将它们导入到一个 Postgres 表中,但是导入我提取的数据(大约 8gb 的数据)大约需要 12 个小时。所以我想知道是否有更好的方法来导入整个东西并更快地完成它。谢谢。
    • 请参考this,也欢迎您并祝您的项目好运!
    【解决方案2】:

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

    【讨论】:

    • 请分享一些你推荐这些的背景。
    猜你喜欢
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多