如何解决为flask Web应用存储和检索许多小型文本文档的最佳方法是什么
我正在写一个应用程序,它将存储大约135,000个小文本文档,总大小为2GB,大部分约为15kB,但最大为340kB,每天增加约500个。我希望能够扩展到100万个文档。
此刻,我正在使用嵌套目录结构来存储文档,因为这使文件的人工导航比单个大型目录更方便。我注意到的一件事是复制文件是一件痛苦的事情。我可以使用rsync备份它们,但是我想知道我做错了什么。
替代方法是:
- 当前解决方案-文本文件的嵌套目录。
- 将文件连接到文本Blob中,并存储偏移量(我有一个数据库,该数据库对文件中可以存储偏移量的位置进行索引)
- 将文件作为TEXT字段存储在sql数据库中。
- 将文件存储在no-sql数据库中,例如卡桑德拉或mongodb。
我完全没有使用nosql数据库的经验,我想知道这是这些工具的常用用例吗?我现在在Linux和PostgreSQL上使用flask和python,但这不是限制。
仅为此添加一些上下文-我尝试将135,000个文件复制到新文件夹中。这花了10分钟。从python打开并读取所有文件大约需要10分钟。用15分钟时间打开和读取15kB块中的所有文件的tar。因此,使用文件系统来管理记录查找似乎有巨大的开销。
解决方法
很多文件具有相同的结构吗?也许可以将135k文件合并或合并为几十种类型吗?如果是这样,您应该能够将许多小文件批量加载到数据框中,然后将数据框推入表中,比如说SQL Server。如果文件的格式和类型都不同,则您必须提出一种更具创新性的解决方案,因为在数据库中拥有135k表根本没有任何意义。如果是这种情况,也许可以选择MongoDB。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。