我不确定我的想法是否可行,我需要有经验的人使用HDF5 / PyTables的帮助。
情节将是这样的:
假设我们有一个进程,机器或连接等,获取数据,并以HDF5 / PyTable格式存储。我将其称为商店软件。
是否可以使用其他软件,我将其命名为分析软件,按时运行?。
如果有帮助,商店软件和分析软件将完全独立,甚至用不同的语言编写。
我怀疑的是,如果商店程序正在编写PyTable mode='w'
,那么,同时,分析程序可以在mode='r'
中访问,并读取一些数据来执行一些基本操作分析,平均值等等。
这个的基本思想是能够实时分析存储在PyTable中的数据。
当然,任何其他提议的解决方案都将受到赞赏。
答案 0 :(得分:3)
不推荐也不支持在一个进程中编写并在其他进程中读取。从HDF 5 FAQ看一下这个问题:
HDF5是否支持从多个进程同时访问单个数据集?
如果所有进程都在读取,那么,是的,HDF5(串行)确实支持这一点。如果有任何进程正在写入,那么不,这是不受支持的。我们正在进行一次"单次写入多次读取" (SWMR)功能,将在未来版本中提供(预计将在HDF5-1.10中)。
Pytables并不保证@SmCaterpillar所述的写/读模式。
答案 1 :(得分:-2)
这绝对是可能的。如果你只有'w'中的一个进程和'r'模式下的多个进程,这一点特别容易。只需在“w”过程中确保偶尔使用flush()
文件和/或数据集。如果这样做,'r'过程将能够看到数据。