从数据库加载大块文本文件
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
上使用范围分区。
所以,正如主题所说 - 我需要提供数据库中加载的多个大文本文件的块。这些文件可以是从 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
上使用范围分区。