【发布时间】:2011-03-22 23:09:13
【问题描述】:
我正在处理存储在制表符分隔的.tsv 文件中的大量科学数据。要执行的典型操作是读取几个大文件,仅过滤某些列/行,与其他数据源连接,添加计算值并将结果写入另一个 .tsv。
使用纯文本是因为它的健壮性、寿命和自记录特性。以另一种格式存储数据不是一种选择,它必须保持开放且易于处理。数据很多(几十 TB),将副本加载到关系数据库中是负担不起的(我们必须购买两倍的存储空间)。
由于我主要进行选择和连接,我意识到我基本上需要一个带有基于 .tsv 的后备存储的数据库引擎。我不关心事务,因为我的数据都是一次写入多次读取。我需要就地处理数据,无需进行主要的转换步骤和数据克隆。
由于要以这种方式查询大量数据,我需要利用缓存和计算机网格有效地处理它。
有没有人知道一个系统可以提供类似数据库的功能,同时使用普通的制表符分隔文件作为后端?在我看来,这是一个非常普遍的问题,几乎所有科学家都会以这样或那样的方式来处理。
【问题讨论】:
-
我几乎不会认为 TB 的分隔数据“稳健”。
-
TB 的纯数据如何自我记录?
-
我敢打赌一个漂亮的石头加入是没有索引的谋杀。
-
@InsertNickHere:您不需要任何特殊软件即可查看数据。因此,如果我以前从未处理过数据,我可以打开一个文件,读取标题,查看实际数据并编写一个以某种方式处理它的脚本。如果我要以人类不可读的格式存储数据,我需要软件+文档。
-
Stefan Kendall:它的稳健性与纸张的稳健性相同。您的软件可能会崩溃,您的计算机可能会炸毁,但只要您有数据的打印版本,就可以使用它。如果您的狗吃了一页,那么您只丢失了那一页,其余部分的完整性不会丢失。而且您无需成为 DBA 即可阅读一篇论文 - 任何人都可以做到。
标签: database csv scientific-computing plaintext large-data