Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 请建议单用户应用程序的数据存储_.net_Sqlite_Storage_Hdf5 - Fatal编程技术网

.net 请建议单用户应用程序的数据存储

.net 请建议单用户应用程序的数据存储,.net,sqlite,storage,hdf5,.net,Sqlite,Storage,Hdf5,我正在寻找一种数据存储选项,用于将ECG(1000个样本/秒)和其他患者数据(如血压、体温等-以更低的采样率采样)存储在可查询的存储中,以供我的C#应用程序使用 我已经评估了SQLite(这本身就是一个很好的选项),但我正在寻找一些能够满足以下要求的选项: 存储空间小-ECG通常以1000个采样/秒的速度采样,我需要存储24-48小时的ECG数据(~82到~1.62亿个数据采样)。在SQLite上,它占用了大量的空间 我应该能够快速读取部分数据(从-到时间戳) 我应该能够修改部分数据,而不必

我正在寻找一种数据存储选项,用于将ECG(1000个样本/秒)和其他患者数据(如血压、体温等-以更低的采样率采样)存储在可查询的存储中,以供我的C#应用程序使用

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

  • 存储空间小-ECG通常以1000个采样/秒的速度采样,我需要存储24-48小时的ECG数据(~82到~1.62亿个数据采样)。在SQLite上,它占用了大量的空间

  • 我应该能够快速读取部分数据(从-到时间戳)

  • 我应该能够修改部分数据,而不必从那时起写入所有数据

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

    寻求切实可行的建议

    谢谢


    Vikram

    您的用例似乎非常适合HDF5

  • 存储空间小-ECG的采样速度通常为1000个采样/秒,我需要将ECG数据存储24-48小时(~82到~162百万次) 数据样本)。在SQLite上,它占用了大量的空间
  • HDF5允许非常高效和紧凑的存储。此外,您可以启用不同的压缩算法/过滤器(gzip、bzip等),而不会对性能造成太大的影响

  • 我应该能够快速读取部分数据(从-到时间戳)
  • 这实际上是HDF5中的一个主要用例。从数据集中切片数据可以很容易很快地完成

  • 我应该能够修改部分数据,而不必从那时起写入所有数据
  • 可以扩展数据集,也可以就地修改数据(这不如SQLite中的UPDATE语句方便)。但是,在删除数据方面有一些注意事项。(有关更多信息,请参阅)

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

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


    对于在.NET中使用HDF5,您可以查看此信息。

    您的应用程序是针对单用户的还是需要并发访问?我的应用程序是针对单用户的,但有时会有多个线程在存储上运行(读和写)。很抱歉,接受此答复太晚了。不知怎的,我从来没有看到回复的通知。HDF5似乎是一个不错的选择。我去看看。