Použití databáze časových řad v serverové aplikaci pro ukládání dat kvality elektrické energie

Abstract
Tato práce se zabývá výběrem vhodné databáze časových řad a implementací serverové aplikace, která vybranou databázi využívá. Cílem bylo především zjistit výhody a nevýhody time series databází a možnosti jejich využití místo stávajícího systému, který je postavený na relační SQL databázi. Konkrétně jsou v práci porovnány databáze InfluxDB, TimescaleDB a OpenTSDB. Při výběru byl pak kladen důraz hlavně na jednoduchost implementace požadovaných funkcí aplikace a možnosti dalšího rozšiřování. Výsledkem porovnání je výběr databáze TimescaleDB, založené na relační databázi PostgreSQL. Mezi její výhody patří zejména plná podpora jazyka SQL, díky kterému je možné většinu funkcionality aplikace realizovat přímo v databázi. Ostatní databáze časových řad nabízejí daleko menší flexibilitu a implementaci složitějších funkcí je tak třeba přenést do serverové aplikace. V ukázkové implementaci aplikace je proto kladen důraz na využití co nejvíce možností vybrané databáze. Samotná serverová aplikace tak má na starosti prakticky pouze ověřování uživatelů a jinak funguje jen jako proxy server, který zajišťuje správný formát dotazů. Všechny složitější funkce, jako je například agregace dat a další práce s měřeními probíhá automaticky přímo v databázi.
This thesis is focused on choosing an appropriate time series database and implementing a server application that uses the chosen database. The target was mainly to determine the pros and cons of time series databases and possibilities of using them instead of the current system, which uses a relational SQL database. Specifically, the databases compared in this work are InfluxDB, TimescaleDB, and OpenTSDB. During the selection, emphasis was placed mainly on the simplicity of implementation of the required functions of the application and the possibility of further expansion. The result of the comparison is the selection of the TimescaleDB database, based on the PostgreSQL relational database. Its advantages include mainly full SQL support, thanks to which it is possible to implement most of the application's functionality directly in the database. Other time series databases offer far less flexibility, so the implementation of more complex functions needs to be done in the server application. Therefore, in the example implementation of the application, emphasis is placed on using as many tools of the selected database as possible. The server application itself is thus responsible only for user authentication and otherwise acts only as a proxy server, which ensures the correct format of queries. All complex functions, such as data aggregation and other work with measurements, take place automatically directly in the database.
Description
Subject(s)
Databáze časových řad, internet věcí, API, SQL, serverová aplikace, Time series database, internet of things, API, SQL, server application
Citation
ISSN
ISBN