PHP-Package MyTS – Zeitreihen in SQL-Datenbanken

Wer als Werkzeug nur eine SQL-Datenbank hat, sieht in jedem Problem relationale Daten.

Aus der alten Architektur von meiner OpenData-Seite api.existenz.ch ist eine isolierte PHP-Bibliothek zum Speichern und Abfragen von Zeitreihen entstanden: MyTS (My Time Series).

Da auf dem verwendeten Shared Hosting nur eine MySQL-Datenbank zur Verfügung steht, lagern die aktuellen Daten dort relational und besser verfügbar als mein Langzeit-Datenarchiv auf InfluxDB.

Das spannende Details hier: Für das Unittesting mit einer echten Datenbank wird in den GitHub Actions ein eigener Datenbankcontainer hochgefahren.

PHP-Package: temporal-shelf

Das dritte Packet aus dem aktuellen Refactoring von api.existenz.ch ist temporal-shelf.

Die kleine Utility-Klasse erlaubt es Dateien in ein Archiv zu kopieren, in einer Jahr/Monat/Tag-Struktur abgelegt und versehen mit einem Zeitstempel.

Beispiel: daten.txt wird kopiert nach /archiv/2020/11/09/1604953664_daten.txt.

Spannendes Detail: Mit dem Package vfsStream kann ein virtuelles Dateisystem im Speicher erstellt werden, in welchem bequem und ohne Seiteneffekt die Unittests ablaufen.