我有一个连续的数据流。我想实时对数据进行少量处理(主要是压缩,最后滚动一些数据,无论需要做什么),然后存储数据。估计没问题。HDF5 文件格式应该很棒!OOC数据,没问题。Pytables。
现在麻烦了。有时,作为一个完全独立的过程以便仍在收集数据,我想执行一个涉及数据的耗时计算(订单分钟)。这涉及读取我正在编写的同一个文件。
人们如何做到这一点?
当然,阅读您当前正在编写的文件应该是具有挑战性的,但它似乎在过去已经出现了足够多的情况,以至于人们已经考虑了某种巧妙的解决方案——或者至少是一种自然的解决方法。
部分解决方案:
似乎 HDF5-1.10.0 具有 SWMR 能力 - 单写,多读。这似乎正是我想要的。我找不到这个最新版本的 python 包装器,或者如果它存在,我无法让 Python 与正确版本的 hdf5 对话。这里的任何提示都会受到欢迎。我正在使用 Conda 包管理器。
我可以想象写入缓冲区,该缓冲区偶尔会被刷新并添加到大型数据库中。如何确保在执行此操作时不会丢失经过的数据?
这似乎也可能在计算上很昂贵,但也许无法解决这个问题。
- 收集更少的数据。这有什么好玩的?