首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >请建议单用户应用程序的数据存储。

请建议单用户应用程序的数据存储。
EN

Stack Overflow用户
提问于 2013-02-05 07:54:14
回答 1查看 161关注 0票数 3

我正在寻找一个数据存储选项,用于存储心电图(1000个样本/sec)和其他病人数据(例如血压、体温等,采样率要低得多),在我的C#应用程序的可查询存储中。

我已经评估了SQLite (这本身就是一个很好的选择),但是我正在寻找一些可以满足以下要求的选项:

  1. 小存储空间-心电图通常以1000个样本/秒采样,我需要存储24 - 48小时的心电图数据(~82 ~1.62亿个数据样本)。在SQLite上,它占用了巨大的空间。

  1. 我应该能够快速阅读这些数据的一部分(从-到时间戳)。

  1. 我应该能够修改数据的一部分,而不必从那时开始编写所有的数据。

我也看过HDF5,但还没有真正理解如何从C#.net中使用它。

寻找实用的建议。

谢谢,

维克拉姆

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-05 09:35:56

您的用例似乎非常适合HDF5。

  1. 小存储空间-心电图通常以1000个样本/秒采样,我需要存储24 - 48小时的心电图数据(~82 ~1.62亿个数据样本)。在SQLite上,它占用了巨大的空间。

HDF5允许非常高效和紧凑的存储。此外,您可以启用不同的压缩算法/过滤器(gzip、bzip等),而不需要对性能造成太大影响。

  1. 我应该能够快速阅读这些数据的一部分(从-到时间戳)。

这实际上是HDF5中的一个主要用例。从数据集中分割数据可以非常容易地完成。

  1. 我应该能够修改数据的一部分,而不必从那时开始编写所有的数据。

可以扩展数据集,也可以适当地修改数据(严格来说,它不像SQLite中的UPDATE语句那样方便)。但是,对于删除数据有一些警告。(更多信息请参见here )

如果您有很多元信息,您可以考虑将它们存储在SQLite中,并将这些记录连接到包含原始数据的HDF5文件。或者,您也可以将这些元信息作为属性存储在HDF5中的节点/数据集中,并避免将SQLite全部使用。

与HDF5有关的唯一大问题/挑战是并发写操作。因此,如果您需要对单个HDF5文件进行并发写入操作,那么它就变得更加复杂。

对于在HDF5中使用.NET,您可以查看这个thread

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14702587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档