2017-08-07 49 views
4

我在平面文件中使用Python Pandas/Pytables/H5py将平面文件转换为HDF5的几个TB数据(在子集中)查询和搜索。我打算用to_hdf之类的东西转换数据的每个小节并将它们存储在HDFStore中。HDFStore:将数据附加到现有表并将其重新索引与创建新表之间的效率

尽管存储的数据将永远不需要更改,但我可能需要稍后将数据附加到某个特定子部分,然后重新索引(用于查询)整个部分。我的问题是这样的:将数据追加到现有表(使用store.append),然后重新编制新表,或者我应该简单地创建一个带有需要追加的数据的新表?

如果我做后者,我可能会在HDSFStore中创建一个LOT(超过10万个)节点。这会降低节点访问时间吗?

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

+0

你高效的意思是什么?最小化时间或最小化空间或某种组合? –

回答

0

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

您也可以调整数据集的大小,但速度和空间性能将取决于分配方法(连续vs分块)。请阅读用户指南: 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实现允许分块以及默认连续。

相关问题