Closed Harveg closed 3 years ago
Das bedeutet auf dem jetzigen Stand hat jeder neue eingetragene Wert eine neue Series erzeugt? Wie können wir bereits eingetragene Werte "reparieren"?
Der Test mit folgendem dataframe erzeugt nun einmalig eine series im Vergleich zu vorher: _gicom,air_temp_grad_celsius=38.5,co2_draussen_ppm=245.1,co2_ppm=987.3,dampf_prozent=100.0,heizung_prozent=100.0,kuehlung_prozent=100.0,lot_nummer=2020430101,luftklappe_prozent=0.0,phase=8.1,raum_nummer=1,sauerstoff_prozent=19.6,vorheizung_prozent=1.0,zuluft_temp_unit_grad_celsius=11.8,zuluft_temperatur_gradcelsius=37.4 gicom,lot_nummer=2021030507,raum_nummer=7 gicom,lot_nummer=2021030508,raum_nummer=8 gicom,lot_nummer=2021030509,raum_nummer=9
json_body = {
"measurement": "gicom",
"tags": {
"lot_nummer": series["Lot Nummer"],
"raum_nummer": series["Raum Nummer"]
},
"time": utils.convert_gicom_date_to_influxdb_s_date(series['datum/tijd ']),
"fields": {
"lot_nummer": series["Lot Nummer"],
"raum_nummer": series["Raum Nummer"],
"lufttemp_grad_celsius": series["Lufttemperatur [°C]"],
"zuluft_temperatur_grad_celsius": series["Zuluft Temperatur [°C]"],
"co2_ppm": series["CO² [ppm]"],
"co2_draussen_ppm": series["CO² draussen [ppm]"], # Why so many spaces?
"zuluft_temp_unit_grad_celsius": series["Zuluft Temperatur unit [°C]"],
"luftklappe_prozent": series["Luftklappe [%]"],
"kuehlung_prozent": series["Kühlung [%]"],
"heizung_prozent": series["Heizung [%]"],
"ventilator_prozent": series["Ventilator [%]"],
"dampf_prozent": series["Dampf [%]"],
"vorheizung_prozent": series["Vorheizung [%]"],
"sauerstoff_prozent": series["Sauerstoff [%]"],
"phase": series["Phase []"]
}
}
Hab den fix commited und auch bei HIAG implementiert. Nun werde ich alle DATENPUNKTE von den GICOM logs mittels neuem data frame neu übertragen. Da das Löschen von TAG's nicht unterstützt wird siehe: https://www.neteye-blog.com/2018/11/how-to-drop-a-tag-in-influxdb/. Sind ca. 25 Datasets..
Gemäss des letzten Auszugs aus der DB von Hiag (db_gicom) haben wir eine gigantische anzahl an series generiert. Gemäss der Doku von influx ist die Anzahl series ausschlaggebend für die Performance respektive Hardware skalierung der DB. Nach meinem Verständinss wird pro TAG Element eine series generiert, das heisst sobald ein TAG Element zb. .tag("lot_nummer", "2021043002").field("humidity, 40).time(4)) auf eine andere Lot_nr wechselt .tag("lot_nummer", "2021043003").field("humidity, 40).time(4)) wird eine neue series angelegt.
Nun würde dies in unserem Fall für die Filterung im Grafana Sinn machen Tags für Lot-Nr. und Raum-Nr. zu haben um ein GROUB BY() zu ermöglichen, doch unser aktueller dataframe sieht für jeden field value einen Tag vor: https://github.com/Davideee/hiag_watchdog_win/blob/f52a79c0c3b8fbc9c8f8f8af62f6be191d836d08/data_model.py
Hier die wichtigsten design-guides für die influxDB queries:
Fix: