Yaml 到数据库

Yaml to database

对于我的 C++ 程序,我使用 jobs.yml,其中包含有关 yaml 格式的作业的信息,例如:

141647523:
  JobType: Turbo
  LocalJobID: 16773779.0
  Status: Done
  SystemPriority: 0.0
  UserPriority: 8.0

然后我使用 yaml-cpp 库来解析文件并将作业转换为 c++ Job 对象。由于 jobs.yml (~900Mb) 的大小很大,我无法在程序开始时立即读取所有文件并存储在 RAM 中。

我该如何克服这个障碍? 我想我应该将 jobs.yml 转换为数据库并在程序中通过 sql 请求获取所需的数据?这种情况我该怎么办?

或者也许有更简单的解决方案?

yaml-cpp 有一个基于事件的API。只需派生自 YAML::EventHandler 并使用 YAML::Parser.HandleNextDocument。然后在您的事件处理程序中逐一处理事件。这应该可以避免将整个文件加载到 RAM 中。