Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. SQL-Adapter mit TimescaleDB

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    SQL-Adapter mit TimescaleDB

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      Blockmove last edited by

      Hallo zusammen,
      Für die Visualisierung mit Grafana und die Auswertung meiner Daten nutze ich seit x Jahren InfluxDB.
      Anfangs mit InfluxDB v1.x und einiger Zeit mit InfluxDB 2.x. Wobei ich mit der Version 2 nie so richtig warm geworden bin.
      Das Youtube-Video von Matthias [InfluxDB 3.x - Das Ende von Flux?](https://www.youtube.com /watch?v=hW7tCNAoJvM) hat mich auf den Gedanken gebracht mich mal nach Alternativen umzuschauen.
      Die Fragestellung war: Welche Timeseries-DB funktioniert einfach zusammen mit ioBroker. Bei der Suche bin ich auf die Kombination SQL-Adapter und TimescaleDB gekommen.
      TimescaleDB (docs.timescale.com) ist "einfach" nur eine Erweiterung zur bekannten Postfresql-Datenbank. Die Daten können ganz normal über Postgrsql und somit mit dem ioBroker SQL-Adapter geschrieben und ausgewertet werden. SQL-Tabellen mit einem Zeitstempel (wie eben "ts" von ioBroker) werden von TimescaleDB im Hintergrund zu Timeseries "gewandelt". Der Vorteil ist, dass dies auch nachträglich einfach möglich ist. Die Postgresql-Tabellen bleiben unverändert.
      Hat man also eine Postgresql-DB installiert man die die TimescaleDB-Erweiterung oder verwendet einen passenden Docker Container (z.B. timescale/timescaledb:latest-pg15).

      Für die Werte legt der SQL-Adapter folgende Tabellen an:

      • ts_bool
      • ts_counter
      • ts_number
      • ts_string

      Diese Tabellen können für TimescaleDB verwendet werden.
      Dafür müssen sogenannte Hypertables erzeugt werden.
      Man verbindet sich mit der Postgresql-Datenbank und setzt für jede Tabelle folgendes SQL-Kommando ab:

      SELECT create_hypertable('Tabellenname','ts',migrate_data => true,chunk_time_interval => 86400000);
      

      Dabei werden auch vorhandene Daten migriert. Je nach Anzahl der vorhandenen Daten kann dies einige Zeit dauern.
      Nochmal erwähnt: Auch nach dem Erzeugen der Hypertables sind die Daten ganz normal wie vorher auch über Postgresql verfügbar.

      Vielleicht wäre es möglich die Postgresql-Konfiguration des SQL-Adapters um die Option TimescaleDB zu erweitern?
      Soweit ich es sehe, ist dafür "nur" eine Checkbox und beim Anlegen der Tabellen ein zusätzlicher SQL-Befehl notwendig.
      Noch ein Wunsch zum SQL-Adpater:
      Bisher stehen die Namen der Datenpunkte in der Tabelle "datapoints".
      Die Zuordung zu den Tabellen mit den Werten erfolgt dann über die id.
      Wäre es möglich den Namen des Datenpunkt auch (optional) in die ts-Tabellen zu schreiben.
      Natürlich werden die Datenmengen größer, aber die Auswertung wäre etwas einfacher.

      So nun genug geschrieben 😁

      Kommentare, Meinung Anregungen?

      Viele Grüße
      Blockmove

      1 Reply Last reply Reply Quote 1
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate
      FAQ Cloud / IOT
      HowTo: Node.js-Update
      HowTo: Backup/Restore
      Downloads
      BLOG

      940
      Online

      31.9k
      Users

      80.2k
      Topics

      1.3m
      Posts

      1
      1
      245
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo