InfluxDB ist eine speziell für Zeitreihen entwickelte Open-Source-Datenbank (InfluxData, seit 2013). Messwerte wie Sensordaten, Metriken oder Log-Zähler werden mit einem hochauflösenden Zeitstempel gespeichert. Die Kommandozeile influx ist der klassische Zugang: Sie ist eine interaktive Shell, die direkt mit der HTTP-API der Datenbank spricht.
Erste Schritte
influx -username admin -password geheim
influx -execute 'SHOW DATABASES'
Mit -execute führt man genau ein Kommando aus und beendet die Shell wieder, praktisch für Skripte. Das Ausgabeformat lässt sich mit -format json oder -format csv steuern.
Wichtige Kommandos
- Datenbanken:
CREATE DATABASE messdaten,SHOW DATABASES,DROP DATABASE - Schreiben per Line Protocol:
INSERT raum,temperatur,raum=kueche wert=21.5 - Messdaten abfragen:
SELECT mean(wert) FROM raum WHERE time > now() - 1h GROUP BY time(5m) - InfluxDB 2.x:
influx setup,influx bucket create,influx write --bucket messdaten 'raum wert=21.5',influx query 'from(bucket:"messdaten") |> range(start: -1h)'
Das Line Protocol folgt dem Muster measurement,Tags Felder Zeitstempel — Tags sind indexierte Eigenschaften, Fields die eigentlichen Messwerte. InfluxDB 2 setzt auf die funktionale Abfragesprache Flux, InfluxDB 3 (Rust-basiert) dagegen wieder auf SQL und InfluxQL.
Praxis-Tipps
- Retention Policies (v1) bzw. Buckets (v2) regeln, wie lange Daten vorgehalten werden.
- Zeitstempel standardmäßig in Nanosekunden — bei
influx writedie Präzision mit--precision sangeben. - Für automatisierte Sammlung eignen sich Telegraf-Agents, die direkt ins Line Protocol schreiben.
Verwandte Grundlagen: Kafka-Befehle, Spark-Befehle, Elasticsearch-Befehle, ClickHouse-Befehle, MongoDB-Befehle, Bash-Befehle.