我使用 H5TB API 将(非等距)时间序列存储为 hdf5 文件中的表。格式是这样的:
time channel1 channel2
0.0 x x
1.0 x x
2.0 x x
还有像这样插入“详细数据”:
time channel1 channel2
0.0 x x
1.0 x x
1.2 x x
1.4 x x
1.6 x x
1.8 x x
2.0 x x
现在我想以另一种数据格式存储数据,因此我喜欢像这样“查询”hdf5文件:
select ch1 where time > 1.6 && time < 3.0
我想到了几种方法来做这个查询:
- 有一个名为 B-Tree Index 的内置功能。是否可以使用它来索引数据?
- 我需要在时间通道上进行二进制搜索,然后读取通道值
- 我自己创建了一个索引(并在有细节插入时更新它)。在这里使用的最佳算法是什么?
索引的主要动机是快速查询响应。
你会在这里建议什么?