从数据库加载大块文本文件

loading chunks of large text files from DB

所以,正如主题所说 - 我需要提供数据库中加载的多个大文本文件的块。这些文件可以是从 100 行到 10.000.000 行的任何地方。我会将它以 10/50/100 行的块形式提供给多个处理脚本实例。问题是 - 存储和提供它们的正确 方式是什么? 假设可能有数百个这样的文件。

什么数据库和可能的附加工具是最佳选择? MongoDB + GridFS?或者如果我将它们存储为 BLOB in PostgreSQL?

,那么有一种有效的方法可以将它们分成这么小的块

如果您使用关系数据库,我会将文件逐行存储在 table 中。这样很容易获取行:

SELECT line FROM documents
WHERE docname = 'mydoc'
  AND line_nr > 100
ORDER BY line_nr
FETCH FIRST 50 ROWS ONLY;

(docname, line_nr) 上的 b-tree 索引将使查询非常高效。

如果要防止 table 变得太大,请在 docname 上使用范围分区。