可扩展,快速,文本文件支持的数据库引擎?
我正在处理存储在制表符分隔的.tsv文件中的大量科学数据.要执行的典型操作是读取几个大文件,仅过滤掉某些列/行,与其他数据源连接,添加计算值并将结果写为另一个.tsv.
纯文本用于其稳健性,长寿性和自我记录性.以另一种格式存储数据不是一种选择,它必须保持开放且易于处理.存在大量数据(数十TB),并且将副本加载到关系数据库中是不可承受的(我们必须购买两倍的存储空间). 由于我主要做选择和连接,我意识到我基本上需要一个基于.tsv的后备存储的数据库引擎.我不关心事务,因为我的数据都是一次写入多次读取.我需要就地处理数据,没有主要的转换步骤和数据克隆. 由于要以这种方式查询大量数据,我需要利用缓存和计算机网格有效地处理它. 有没有人知道一个系统可以提供类似数据库的功能,同时使用普通的制表符分隔文件作为后端?在我看来,这是一个非常普遍的问题,几乎所有科学家都会以某种方式处理. 解决方法
你比我们任何人都更了解你的要求,但我建议你再考虑一下这个问题.如果你有一个存储在csv文件中的16位整数(0-65535),你的.tsv存储效率大约是33%:它需要5个字节来存储大多数16位整数加上一个分隔符= 6个字节,而本机整数拿2个字节.对于浮点数据,效率更差. 我会考虑使用现有数据,而不是存储raw,以下面两种方式处理它: >将其以众所周知的压缩格式(例如gzip或bzip2)压缩到永久存档介质(备份服务器,磁带驱动器等)上,以便保留.tsv格式的优势. 这将创建一个可审计(但可能缓慢访问)的存档,具有较低的数据丢失风险,以及一个快速可访问的数据库,无需关注丢失源数据,因为您始终可以将其重新读入数据库来自档案馆. 您应该能够减少存储空间,并且不需要像您所说的那样需要两倍的存储空间. 索引将是困难的部分;您最好知道需要哪些数据子集才能有效查询. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |