Kuonen SQL

Beispielkatalog

Jedes Beispiel ist zugleich ein Test: der Katalog läuft im Testlauf gegen einen echten Server und muss sein hinterlegtes Ergebnis liefern — was hier steht, ist genau das, was ausgeführt wird.

Schreiben und Lesen

Punkte schreiben und lesen

Eine Datenbank von InfluxDB ist eine Datenbank von KuonenSQL, eine Messung eine Tabelle im Schema der Aufbewahrungsrichtlinie (hier autogen). Tags sind Spalten, nach denen gesucht wird, Felder die Messwerte.

CREATE DATABASE pruefstand
USE pruefstand
INSERT wetter,ort=Bern temperatur=12.5,feuchte=70i 1735689600000000000
INSERT wetter,ort=Zuerich temperatur=10 1735689600000000000
SELECT temperatur, feuchte, ort FROM wetter
DROP DATABASE pruefstand
Erwartetes Ergebnis
serie | time | temperatur | feuchte | ort
wetter | 2025-01-01T00:00:00Z | 12.5 | 70 | Bern
wetter | 2025-01-01T00:00:00Z | 10 | NULL | Zuerich

Aggregation

Mittelwert je Stunde und Ort

GROUP BY time(1h) teilt die Zeit in Fenster, GROUP BY ort je Ort eine Serie; MEAN rechnet je Fenster und Serie.

CREATE DATABASE pruefstand
USE pruefstand
INSERT wetter,ort=Bern temperatur=10 1735689600000000000
INSERT wetter,ort=Bern temperatur=12 1735691400000000000
INSERT wetter,ort=Bern temperatur=14 1735693200000000000
INSERT wetter,ort=Zuerich temperatur=8 1735689600000000000
SELECT MEAN(temperatur) FROM wetter WHERE time >= '2025-01-01T00:00:00Z' AND time < '2025-01-01T02:00:00Z' GROUP BY time(1h), ort
DROP DATABASE pruefstand
Erwartetes Ergebnis
serie | ort | time | mean
wetter | Bern | 2025-01-01T00:00:00Z | 11
wetter | Bern | 2025-01-01T01:00:00Z | 14
serie | ort | time | mean
wetter | Zuerich | 2025-01-01T00:00:00Z | 8
wetter | Zuerich | 2025-01-01T01:00:00Z | NULL

Schema

Messungen, Tags und Felder

Ohne festes Schema: was geschrieben wurde, zeigen SHOW MEASUREMENTS, SHOW TAG VALUES und SHOW FIELD KEYS (mit dem Typ jedes Felds).

CREATE DATABASE pruefstand
USE pruefstand
INSERT wetter,ort=Bern temperatur=12.5,feuchte=70i 1735689600000000000
INSERT wetter,ort=Zuerich temperatur=10 1735689600000000000
SHOW MEASUREMENTS
SHOW TAG VALUES WITH KEY = ort
SHOW FIELD KEYS
DROP DATABASE pruefstand
Erwartetes Ergebnis
serie | name
measurements | wetter
serie | key | value
wetter | ort | Bern
wetter | ort | Zuerich
serie | fieldKey | fieldType
wetter | feuchte | integer
wetter | temperatur | float

Aufbewahrung

Eine Aufbewahrungsrichtlinie

Eine Richtlinie ist ein Schema; ihre Shard-Gruppen sind Partitionen auf eigenen Dateigruppen. Was älter als die Dauer ist, räumt der Server ab.

CREATE DATABASE pruefstand
CREATE RETENTION POLICY eine_woche ON pruefstand DURATION 7d REPLICATION 1 SHARD DURATION 1d
SHOW RETENTION POLICIES ON pruefstand
DROP DATABASE pruefstand
Erwartetes Ergebnis
name | duration | shardGroupDuration | replicaN | default
autogen | 0s | 168h0m0s | 1 | true
eine_woche | 168h0m0s | 24h0m0s | 1 | false