将 csv 文件转换为循环数据库

Convert csv File into Round Robin Database

我在 Raspberry Pi 2 运行 最新 Jessie 上从 DHT22 传感器记录 TempHumidity

我在开始项目时不知道 RRDtool 的可能性,所以我选择将所有内容记录在名为 DataLogger.csv.csv 文件中。 日志记录脚本被编写为每分钟 python 3 执行 cron。 格式如下所示:

2016-04-02 21:23    16.5    45.9
2016-04-02 21:24    16.5    45.9
2016-04-02 21:25    16.5    46.0

就这样%Y-%M-%D %H:%M \t Temperature \t Humidity

我也在考虑在 Round Robin 中另外记录所有内容,所以我的问题是:

  1. 我可以将 .csv 行加载到 RRDtool
  2. 中吗
  3. 我可以使用 RRDtool 中的 update 每分钟检查一次 .csv 文件并更新数据库吗

还是我必须将数据直接记录到数据库中?

RRDtool 本身不与 csv 文件交互。但是您可以编写一个小脚本来读取现有的 csv 文件并将它们提供给 RRDtool。请注意,对 update 函数的一次调用可以采用 timestamp:temp:hum 格式的多个数据点。

将现有数据添加到 rrd 数据库后,只要在写入 csv 文件时添加对 update 函数的调用即可。

正如 Tobi 所说,您需要编写自己的脚本来解析 CSV 失败并将数据加载到新的 RRD 文件中,因为 RRDtool 本身没有执行此操作的功能。

您需要提前为您的 RRD 制定出正确的设计;查看您的数据,它似乎是每秒一次,因此您需要 1 秒的间隔,并且您的第一个 RRA 可能需要是 1cdp=1pdp。

你还应该记住,数据只能随着时间的增加而增加;因此,您永远不能为早于上次更新时间的时间点添加数据点。因此,您需要先添加 CSV 数据旧设定点,依此类推。