Benutzer-Werkzeuge

Webseiten-Werkzeuge


public_v6:iot:influxdb

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
public_v6:iot:influxdb [2021/03/24 05:05] – angelegt adminpublic_v6:iot:influxdb [2021/03/24 06:09] (aktuell) – [InfluxDB] admin
Zeile 1: Zeile 1:
 ====== InfluxDB ====== ====== InfluxDB ======
  
-InfluxDB eignet sich hervorragend dafür sich wiederholende Messwerte aus dem IoT-Umfeld in einer Datenbank zu speichern. Dazu reicht Anfangs bereits ein [[https://simonhearne.com/2020/pi-influx-grafana/|Raspberry PI]] aus. +InfluxDB eignet sich hervorragend dafür  wiederholende Messwerte aus dem IoT-Umfeld in einer Datenbank zu speichern. Dazu reicht Anfangs bereits ein [[https://simonhearne.com/2020/pi-influx-grafana/|Raspberry PI]] aus. \\ 
 +:!: Momentan werden wohl nur Versionen < 2.0 auf dem Raspberry unterstützt, da 2.0 ein 64-bit Linux voraussetzt. 
 + 
 +==== Grundlegende Konzepte ====
  
  
Zeile 15: Zeile 18:
  
 Die Gliederungsebenen sind: Die Gliederungsebenen sind:
-  -''Database'' - Sammlung von Zeitreihen+  -''Database'' - Sammlung von Zeitreihen (:!: wird in v2.0 als ''Bucket'' bezeichnet)
   -''Measurement'' - Folge von zusammengehörigen Datenpunkten mit dem gleichen Schema (Zeitreihe)   -''Measurement'' - Folge von zusammengehörigen Datenpunkten mit dem gleichen Schema (Zeitreihe)
   -''Series'' - eine logisch zusammenhängende Folge von Datenpunkten mit der gleichen 'Tag'-Kombination   -''Series'' - eine logisch zusammenhängende Folge von Datenpunkten mit der gleichen 'Tag'-Kombination
Zeile 25: Zeile 28:
 Man kann das Datenformat auch nicht nachträglich ändern, sondern startet einfach eine neue Zeitreihe mit dem geänderten Format. Man kann das Datenformat auch nicht nachträglich ändern, sondern startet einfach eine neue Zeitreihe mit dem geänderten Format.
  
-Die Daten in Messpunkten können für die spätere schnelle Suche und Gruppierung indiziert werden. Dazu wird das Datenfeld +Die Daten in Messpunkten können für die spätere schnelle Suche und Gruppierung indiziert werden. Dazu werden ein oder mehrere Datenfelder 
-als ''Tag'' gekennzeichnet (Achtung, Tags werden immer als Strings interpretiert!). Die weiteren Daten werden als ''Fields'' +als ''Tag'' gekennzeichnet (:!: Tags werden immer als Strings interpretiert!). Die weiteren Daten werden als ''Fields'' 
-bezeichnet und als Name/Wert Paare gespeichert die als Datentypen ''float'', ''integer'' und ''boolean'' unterstützen. +bezeichnet und als Name/Wert-Paare gespeichert die den Datentyp ''float'', ''integer'' und ''boolean'' unterstützen. 
   * https://influxdbcom.readthedocs.io/en/latest/content/docs/v0.9/concepts/schema_and_data_layout/   * https://influxdbcom.readthedocs.io/en/latest/content/docs/v0.9/concepts/schema_and_data_layout/
 +  * https://docs.influxdata.com/influxdb/v1.8/concepts/glossary/
 +
 Jedem Messpunkt ist ein ''timestamp'' zugeordnet. Dieser wird entweder von der Datenquelle mitgeliefert, oder von InfluxDB  Jedem Messpunkt ist ein ''timestamp'' zugeordnet. Dieser wird entweder von der Datenquelle mitgeliefert, oder von InfluxDB 
 erzeugt. erzeugt.
  
- +Am einfachsten versteht man diesen Aufbau, wenn man das ''LineProtokoll'' benutzt. Im ''LineProtokoll'' werden ''Tags'' und ''Fields'' einfach durch ein Lehrzeichen voneinander getrennt geschrieben.
-Am einfachsten versteht man das, wenn man das LineProtokoll benutzt:+
 https://docs.influxdata.com/influxdb/cloud/reference/syntax/line-protocol/ https://docs.influxdata.com/influxdb/cloud/reference/syntax/line-protocol/
 +
 +==== InfluxDB und Python ====
 +
 +Aus Python kann man mit auf InfluxDB (Version >= 1.8) mit der folgenden Python Library zugreifen: https://github.com/influxdata/influxdb-client-python
 +Für Versionen bis 1.7 wird diese Library benötigt: https://github.com/influxdata/influxdb-python
 +
 +=== Tutorial: ===
 +
 +  * Version bis 1.7: https://www.influxdata.com/blog/getting-started-python-influxdb/
 +  * Version >= 1.8: https://www.influxdata.com/blog/getting-started-with-python-and-influxdb-v2-0/
 +
 +
 +Bis Version 1.7 können Daten entweder im ''LineProtokoll'', oder einfach im ''JSON''-Format geschrieben werden: https://influxdb-python.readthedocs.io/en/latest/examples.html
 +
 +Ein Minimalbeispiel für Version 1.8+ sieht folgendermaßen aus:
 +
 +<code Python>
 +from influxdb_client import InfluxDBClient, Point
 +
 +bucket = "my-bucket"
 +client = InfluxDBClient(url="http://localhost:8086", token="my-token", org="my-org")
 +write_api = client.write_api()
 +
 +p = Point("temp_measurement").tag("location", "Berlin").field("temperature", 21.3)
 +write_api.write(bucket=bucket, record=p)
 +</code>
 +
 +
 +==== Links ====
  
   * https://www.bjoerns-techblog.de/2017/08/influxdb-mit-node-red-fuellen/   * https://www.bjoerns-techblog.de/2017/08/influxdb-mit-node-red-fuellen/
public_v6/iot/influxdb.1616562355.txt.gz · Zuletzt geändert: 2021/03/24 05:05 von admin