我在平面文件中有几个数据TB(在子集中),我想使用Python Pandas / Pytables / H5py转换为HDF5,以便更快地查询和搜索。我打算使用类似to_hdf
的内容转换数据的每个子部分,并将它们存储在HDFStore中。
虽然永远不需要更改存储的数据,但我可能需要稍后将数据附加到某个特定的子部分,然后重新索引(用于查询)整个部分。
我的问题是:将数据附加到现有表(使用store.append
)然后重新索引新表是否更有效,或者我应该只创建一个包含我需要追加的数据的新表?
如果我执行后者,我可能会在HDSFStore中创建一个LOT(超过100k)节点。这会降低节点的访问时间吗?
我试着看看其他答案,并用一堆节点创建了我自己的商店,看看是否有效果,但我找不到任何重要的东西。任何帮助表示赞赏!
答案 0 :(得分: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实现允许分块以及默认连续。