将 csv 文件转换为循环数据库
Convert csv File into Round Robin Database
我在 Raspberry Pi 2
运行 最新 Jessie
上从 DHT22
传感器记录 Temp
和 Humidity
。
我在开始项目时不知道 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 中另外记录所有内容,所以我的问题是:
- 我可以将
.csv
行加载到 RRDtool
和 中吗
- 我可以使用
RRDtool
中的 update
每分钟检查一次 .csv
文件并更新数据库吗
还是我必须将数据直接记录到数据库中?
RRDtool 本身不与 csv 文件交互。但是您可以编写一个小脚本来读取现有的 csv 文件并将它们提供给 RRDtool。请注意,对 update
函数的一次调用可以采用 timestamp:temp:hum
格式的多个数据点。
将现有数据添加到 rrd 数据库后,只要在写入 csv 文件时添加对 update
函数的调用即可。
正如 Tobi 所说,您需要编写自己的脚本来解析 CSV 失败并将数据加载到新的 RRD 文件中,因为 RRDtool 本身没有执行此操作的功能。
您需要提前为您的 RRD 制定出正确的设计;查看您的数据,它似乎是每秒一次,因此您需要 1 秒的间隔,并且您的第一个 RRA 可能需要是 1cdp=1pdp。
你还应该记住,数据只能随着时间的增加而增加;因此,您永远不能为早于上次更新时间的时间点添加数据点。因此,您需要先添加 CSV 数据旧设定点,依此类推。
我在 Raspberry Pi 2
运行 最新 Jessie
上从 DHT22
传感器记录 Temp
和 Humidity
。
我在开始项目时不知道 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 中另外记录所有内容,所以我的问题是:
- 我可以将
.csv
行加载到RRDtool
和 中吗
- 我可以使用
RRDtool
中的update
每分钟检查一次.csv
文件并更新数据库吗
还是我必须将数据直接记录到数据库中?
RRDtool 本身不与 csv 文件交互。但是您可以编写一个小脚本来读取现有的 csv 文件并将它们提供给 RRDtool。请注意,对 update
函数的一次调用可以采用 timestamp:temp:hum
格式的多个数据点。
将现有数据添加到 rrd 数据库后,只要在写入 csv 文件时添加对 update
函数的调用即可。
正如 Tobi 所说,您需要编写自己的脚本来解析 CSV 失败并将数据加载到新的 RRD 文件中,因为 RRDtool 本身没有执行此操作的功能。
您需要提前为您的 RRD 制定出正确的设计;查看您的数据,它似乎是每秒一次,因此您需要 1 秒的间隔,并且您的第一个 RRA 可能需要是 1cdp=1pdp。
你还应该记住,数据只能随着时间的增加而增加;因此,您永远不能为早于上次更新时间的时间点添加数据点。因此,您需要先添加 CSV 数据旧设定点,依此类推。