4

我在平面文件中有几 TB 数据(在子集中),我想使用 Python Pandas/Pytables/H5py 将其转换为 HDF5,以便更快地查询和搜索。我打算使用类似的东西转换数据的每个子部分to_hdf并将它们存储在 HDFStore 中。

虽然存储的数据永远不需要更改,但我可能需要稍后将数据附加到某个特定的小节,然后重新索引(用于查询)整个片段。

我的问题是:将数据附加到现有表(使用store.append)然后重新索引新表是否更有效,还是应该简单地使用需要附加的数据创建一个新表?

如果我做后者,我可能会在 HDSFStore 中创建很多(超过 100k)节点。这会降低节点访问时间吗?

我尝试查看其他答案,还创建了自己的带有一堆节点的商店,以查看是否有效果,但我找不到任何重要的东西。任何帮助表示赞赏!

4

1 回答 1

0

我不知道您的 HDF5 文件中有很多节点有任何问题。文件中的组数没有限制 ( https://support.hdfgroup.org/HDF5/faq/limits.html )。

您还可以调整数据集的大小,但速度和空间性能将取决于分配方法(连续与分块)。在用户指南中阅读: https ://support.hdfgroup.org/HDF5/doc/UG/HDF5_Users_Guide-Responsive%20HTML5/HDF5_Users_Guide/Datasets/HDF5_Datasets.htm?rhtocid=5.3#TOC_5_5_Allocation_of_Spacebc-15

h5py 实现允许分块以及默认连续。

于 2017-08-16T17:25:41.677 回答