写和读实时pytables

时间:2014-02-27 08:23:38

标签: python real-time pytables

我不确定我的想法是否可行,我需要有经验的人使用HDF5 / PyTables的帮助。

情节将是这样的:

假设我们有一个进程,机器或连接等,获取数据,并以HDF5 / PyTable格式存储。我将其称为商店软件。

是否可以使用其他软件,我将其命名为分析软件,按时运行?。

如果有帮助,商店软件和分析软件将完全独立,甚至用不同的语言编写。

我怀疑的是,如果商店程序正在编写PyTable mode='w',那么,同时,分析程序可以在mode='r'中访问,并读取一些数据来执行一些基本操作分析,平均值等等。

这个的基本思想是能够实时分析存储在PyTable中的数据。

当然,任何其他提议的解决方案都将受到赞赏。

2 个答案:

答案 0 :(得分:3)

不推荐也不支持在一个进程中编写并在其他进程中读取。从HDF 5 FAQ看一下这个问题:

  

HDF5是否支持从多个进程同时访问单个数据集?

     

如果所有进程都在读取,那么,是的,HDF5(串行)确实支持这一点。如果有任何进程正在写入,那么不,这是不受支持的。我们正在进行一次"单次写入多次读取" (SWMR)功能,将在未来版本中提供(预计将在HDF5-1.10中)。

Pytables并不保证@SmCaterpillar所述的写/读模式。

答案 1 :(得分:-2)

这绝对是可能的。如果你只有'w'中的一个进程和'r'模式下的多个进程,这一点特别容易。只需在“w”过程中确保偶尔使用flush()文件和/或数据集。如果这样做,'r'过程将能够看到数据。