HDFStore:将数据追加到现有表和重新索引与创建新表之间的效率



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

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

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

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

我尝试查看其他答案,并创建了自己的商店,其中包含一堆节点,以查看是否有效果,但我找不到任何重要的东西。任何帮助不胜感激!

我不知道在您的 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 实现允许分块以及默认的连续

最新更新