Pandas HDFStore 缓存

Pandas HDFStore caching

我正在处理一个中型数据集,它包含大约 150 个 HDF 文件,每个文件 0.5GB。有一个计划的进程使用 store.appendpd.HDFStore 更新这些文件。

我正在尝试实现以下场景: 对于 HDF 文件:

  1. 保留更新商店的进程运行
  2. 以只读模式打开商店
  3. 运行 一个 while 循环,它将连续 select 从商店获取最新的可用行。
  4. 在脚本退出时关闭商店

现在,这很好用,因为我们可以拥有任意数量的读者,只要他们都处于只读模式。但是,在第 3 步中,由于 HDFStore 缓存文件,它不会返回连接打开后附加的行。有没有办法在不重新打开商店的情况下 select 新添加的行?

经过更多研究后,我得出结论,这对于 HDF 文件是不可能的。实现上述功能的唯一可靠方法是使用数据库(SQLite 最接近 - read/write 速度低于 HDF,但仍比成熟的数据库(如 Postgres 或 MySQL)快。