InfraxDB を使う
IoTInfraxDB
2019-6-13 1:00 JST

InfluxDB は時系列を扱うデータベース。むかし docker で作った時は docker 生成時に dbname というデータベースが自動的に作られた。

measurement が収集の単位。これを1つの収集とする。グラフ化する単位と思ってよい。Query をみると from に指定されるのでデータベースの table 的なもの。tags に任意のタグをつけることが出来る。例えば、location とか。select でフィルタリングするときに便利に使える。fields は実際の値。一度、整数などを入れてしまうと、あとで実数を入れようとするとエラーになる。そういう場合は delete_series で消せばよい。Python の例を示す。

to_deb.py
from influxdb import InfluxDBClient
client = InfluxDBClient('127.0.0.1', 8086, '####user####''***passwd***''dbname')
client.switch_database('dbname')
print(client.get_list_database())
print(client.get_list_measurements())
print(client.get_list_retention_policies())

idata = [
    {
            "measurement""status",
            "tags": {"location""field0"},
            "fields": {
                    "temperature": 11,
                    "humidity": 22
            }
    },
]

idata = [
    {
        'measurement''register',
        'fields': {
            'simid''07066632002',
            'location': 2
        }
    }
]

#client.delete_series(database='dbname', measurement="status")
#client.delete_series(database='dbname', measurement="register")
client.write_points(idata)

リンク集