gpt4 book ai didi

sql - 数据库或其他存储和动态访问 HUGE 二进制对象的方法

转载 作者:太空狗 更新时间:2023-10-30 01:56:42 26 4
gpt4 key购买 nike

我有一些大的(200 GB 是正常的)平面数据文件,我想将它们存储在某种数据库中,以便可以快速访问并以数据逻辑组织的直观方式进行访问。将其视为大量非常长的录音,其中每个录音的长度(样本)相同,并且可以被认为是一行。其中一个文件通常包含大约 100,000 个录音,每个录音的长度为 2,000,000 个样本。

将这些记录作为 BLOB 数据行存储在关系数据库中会很容易,但在很多情况下,我只想将整个数据集的某些列加载到内存中(例如,样本 1,000-2,000) .执行此操作最节省内存和时间的方法是什么?

请不要犹豫,询问您是否需要对我的数据的详细信息进行更多说明以便提出建议。

编辑:澄清数据维度...一个文件包括:100,000 行(记录)乘以 2,000,000 列(样本)。我研究过的大多数关系数据库都允许在一个表中最多有几百到几千行。再一次,我对面向对象的数据库了解不多,所以我想知道这样的事情是否对这里有帮助。当然,任何好的解决方案都是非常受欢迎的。谢谢。

编辑:澄清数据的用途...数据只能由我将编写的自定义桌面/分布式服务器应用程序访问。每个数据“集”(到目前为止我称之为 200 GB 的文件)都有元数据(收集日期、过滤器、采样率、所有者等)。还有与每个录音相关的元数据(我希望它是表格中的一行,这样我就可以为每个录音元数据添加列)。所有元数据都是一致的。 IE。如果一段特定的元数据存在于一个记录中,那么它也存在于该文件中的所有记录中。示例本身没有元数据。每个样本都是 8 位的 plain-ol' 二进制数据。

最佳答案

数据库存储可能不适合大文件。是的,这是可以做到的。是的,它可以工作。但是数据库备份呢?文件内容可能不会经常更改 - 添加后,它们将保持不变。

我的建议是将文件存储在磁盘上,但创建一个基于数据库的索引。当文件夹/目录/等中的文件超过 10k 时,大多数文件系统都会变得胡思乱想或变慢。您的应用程序可以生成文件名并将元数据存储在数据库中,然后按生成的名称在磁盘上进行组织。缺点是文件内容可能无法从名称中直接看出。但是,您可以轻松备份更改的文件,而无需专门的数据库备份插件和复杂的分区、增量备份方案。此外,在文件内查找操作变得更加简单(向前跳转、倒带等)。在文件系统中通常比在数据库中更好地支持这些操作。

关于sql - 数据库或其他存储和动态访问 HUGE 二进制对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8670276/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com