我正在寻找一个数据存储选项,用于存储心电图(1000个样本/sec)和其他病人数据(例如血压、体温等,采样率要低得多),在我的C#应用程序的可查询存储中。
我已经评估了SQLite (这本身就是一个很好的选择),但是我正在寻找一些可以满足以下要求的选项:
我也看过HDF5,但还没有真正理解如何从C#.net中使用它。
寻找实用的建议。
谢谢,
维克拉姆
发布于 2013-02-05 09:35:56
您的用例似乎非常适合HDF5。
HDF5允许非常高效和紧凑的存储。此外,您可以启用不同的压缩算法/过滤器(gzip、bzip等),而不需要对性能造成太大影响。
这实际上是HDF5中的一个主要用例。从数据集中分割数据可以非常容易地完成。
可以扩展数据集,也可以适当地修改数据(严格来说,它不像SQLite中的UPDATE语句那样方便)。但是,对于删除数据有一些警告。(更多信息请参见here )
如果您有很多元信息,您可以考虑将它们存储在SQLite中,并将这些记录连接到包含原始数据的HDF5文件。或者,您也可以将这些元信息作为属性存储在HDF5中的节点/数据集中,并避免将SQLite全部使用。
与HDF5有关的唯一大问题/挑战是并发写操作。因此,如果您需要对单个HDF5文件进行并发写入操作,那么它就变得更加复杂。
对于在HDF5中使用.NET,您可以查看这个thread。
https://stackoverflow.com/questions/14702587
复制相似问题