该文件有 26 列和非常多的行。使用 HDF5 的正确方法是一次读取文件一行,将内容读入 1x26 内存空间,然后将数据集扩展 1x26 并将内存空间内容复制到数据集的新添加行吗?
我不确定这会有多有效,或者即使这是正确的方法,我对此也很陌生。
谢谢。
该文件有 26 列和非常多的行。使用 HDF5 的正确方法是一次读取文件一行,将内容读入 1x26 内存空间,然后将数据集扩展 1x26 并将内存空间内容复制到数据集的新添加行吗?
我不确定这会有多有效,或者即使这是正确的方法,我对此也很陌生。
谢谢。
答案很大程度上取决于您的确切用例。按照您建议的方式做这件事当然没有错,但可能有更有效/更快的方法来做。通常,您会希望调整块的大小以适应如何读取/写入数据。
如果您提前大致知道行数,则使用相对较大的块进行压缩可能会快得多。例如,如果您知道您可能有 1000 到 2000 行之间的某处,则使用具有 100 行的块并启用压缩。这将导致 IO 操作比一次单行少得多。
另一方面,如果数据集可能会随时间增长,一次一行,那么您的方式可能会更好。
另一个考虑因素是您将如何读取数据。如果您一次只读取一行,那么 1x26 块将是一个好主意。但是,如果您打算一次读取整个数据集并且只读取几次,请使用更大的块。