Aus Raspberry Pi Geek 06/2022

Datenbankinhalte effizient auslesen (Seite 5)

Was es jetzt braucht, sind Testdaten und Werkzeuge wie Pgbench [35] samt Ablauf für automatisierte Tests. Erstere erzeugen Sie entweder selbst oder greifen auf gesammelte Daten zurück. Sofern solche nicht vorrätig sind, bekommen Sie sie etwa von Meteostat [36],[37]. Dieser spendenfinanzierte Dienst bietet Messwerte für Temperatur, Niederschlag, Windgeschwindigkeit, Windrichtung und Luftdruck zum Herunterladen an. Dazu kombiniert er Messwerte verschiedener Stationen im Umkreis, um ein realistischeres Ergebnis für die Region zu erhalten.

Abbildung 1 zeigt den Temperaturverlauf für sieben Tage für die Region Neuenburg/Neuchâtel in der Nordwestschweiz. Einbezogen in die Berechnung werden hier Stationen, die sich im Umkreis von etwa 50 bis 100 Kilometern um den Messpunkt befinden. Benachbarte Stationen sind etwa Payerne im Süden, Bern im Südosten, Grenchen im Nordosten und Montbéliard im Norden.

Abbildung 1: Temperaturverlauf für Neuenburg/Neuchâtel, Februar 2022.

Abbildung 1: Temperaturverlauf für Neuenburg/Neuchâtel, Februar 2022.

Fazit

Wie Sie gesehen haben, ist der Betrieb eines Messnetzes aus Datenbanksicht mit überschaubarem Aufwand möglich. Schwachpunkt im Beispiel ist der zentrale Knoten mit dem DBMS. Um die Ausfallsicherheit zu erhöhen, bestünde die Möglichkeit, die Datenbank auf einem RAID (Redundant Array of Independent Disks) zu betreiben. Der Nachteil ist aber offensichtlich: Befinden sich alle Komponenten des RAIDs am selben Ort und der Strom fällt aus, ist das System trotzdem nicht zu erreichen.

Alternativ richten Sie einen Puffer für 48 Stunden auf den Messstationen ein. Damit überbrücken Sie einen Netzwerkausfall für diesen Zeitraum. Außerdem bietet es sich an, die Daten verteilt zu speichern oder in einem regelmäßigen Abgleich untereinander, über ein Meshnet oder mittels mehrerer Instanzen der PostgreSQL-Datenbank auszutauschen. Ein Raspberry Pi gibt das seitens der Hardware her.

Alle diese Varianten führen zu Themen, die den Rahmen dieses Beitrags sprengen würden und die sich einzeln genauer beleuchten ließen. Geht es Ihnen um ein tieferes Verständnis des DBMS PostgreSQL, sind die Tutorials [38] ein guter Startpunkt zum Nachlesen. (agr)

Danksagung

Die Autoren bedanken sich bei Axel Beckert und Julie Göschl für ihre Unterstützung bei der Vorbereitung des Artikels.

Über die Autoren

Frank Hofmann arbeitet zumeist von unterwegs aus als Entwickler, Trainer und Autor. Er gehört zu den Verfassern des Debian-Paketmanagement-Buches. Der gebürtige Kanadier Gerold Rupprecht wohnt seit 25 Jahren in Genf und hat sich auf Finanzsoftware sowie die Evaluierung und Optimierung IT-bezogener Prozessabläufe spezialisiert.

Infos

  1. “Temperaturmessung mit dem RasPi”: https://test-wetterstation.de/temperaturmessung-mit-dem-raspberry-pi
  2. “Mehrere DS1820 (DS18b20) Temperatursensoren mit dem Raspberry auslesen”: https://test-wetterstation.de/mehrere-ds1820-ds18b20-temperatursensoren-mit-dem-raspberry-auslesen
  3. Feinstaubmessung: Frank Hofmann, “Dicke Luft”, RPG 12/2017, S. 8, https://www.raspi-geek.de/39497
  4. Luftdaten.info: https://luftdaten.info
  5. PostgreSQL: https://www.postgresql.org
  6. PhpMyAdmin: https://www.phpmyadmin.net
  7. PgAdmin: https://www.pgadmin.org
  8. GraphQL: https://graphql.org
  9. PC Engines: https://www.pcengines.ch
  10. Lenovo ThinkEdge SE30: https://www.lenovo.com/ch/de/desktops-and-all-in-ones/thinkcentre/m-series-tiny/ThinkEdge-SE30/p/LEN102C0004
  11. Docker: https://www.docker.com
  12. Podman: https://podman.io
  13. Long Range Wide Area Network (LoRaWAN): https://de.wikipedia.org/wiki/Long_Range_Wide_Area_Network
  14. Datenbankmanagementsysteme: https://de.wikipedia.org/wiki/Liste_der_Datenbankmanagementsysteme
  15. eXist-DB: https://github.com/exist-db/exist/
  16. BaseX: https://github.com/BaseXdb/basex
  17. Neo4j: https://neo4j.com
  18. SQLite: https://www.sqlite.org
  19. MariaDB: https://mariadb.org
  20. RSQL: https://www.rsql.ch
  21. Zope: https://zope.org
  22. CouchDB: https://couchdb.apache.org
  23. MongoDB: https://www.mongodb.com
  24. Libpq: https://www.postgresql.org/docs/14/libpq.html
  25. DBD:pg: https://metacpan.org/pod/DBD::Pg
  26. Psycopg2: https://pypi.org/project/psycopg2/
  27. Py-postgresql: https://github.com/python-postgres/fe
  28. Pg8000: https://pypi.org/project/pg8000/
  29. Datentypen in PostgreSQL: https://www.postgresql.org/docs/13/datatype.html
  30. “On Rocks and Sand”: https://www.2ndquadrant.com/en/blog/on-rocks-and-sand/
  31. RSQL: Frank Hofmann, Gerold Rupprecht, Mandy Neumeyer, “Datenstapler”, LU 01/2018, S. 58, https://www.linux-community.de/39861
  32. “PostgreSQL – How to Return a Result Set from a Stored Procedure”: https://sqlines.com/postgresql/how-to/return_result_set_from_stored_procedure
  33. Cursor in PGSQL: https://www.postgresql.org/docs/14/plpgsql-cursors.html
  34. PL/pgSQL Cursor: https://www.postgresqltutorial.com/plpgsql-cursor/
  35. Pgbench: https://www.postgresql.org/docs/14/pgbench.html
  36. Meteostat (Entwicklerseite): https://dev.meteostat.net
  37. Meteostat: https://github.com/meteostat
  38. PostgreSQL-Tutorial: https://www.postgresqltutorial.com
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 7 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben