Baza danych szeregów czasowych

Z Wikipedii, wolnej encyklopedii

Baza danych szeregów czasowych to system zarządzania danymi zoptymalizowany do przechowywania, udostępniania i przetwarzania szeregów czasowych zawierających informacje o czasie i zarejestrowanej wartości[1]. W niektórych przypadkach szeregi czasowe nazywane są profilami, krzywymi, śladami lub trendami[2]. Początkowo rozwiązania baz danych szeregów czasowych pojawiły się w zastosowaniach przemysłowych. Powstały systemy, które mogłyby efektywnie przechowywać pomiary pochodzące z urządzeń pomiarowych (nazywano je historianami). Z czasem jednak obszar ich zastosowania uległ poszerzeniu i tego typu rozwiązania znajdują zastosowanie w znacznie szerszym zakresie zastosowań.

W wielu przypadkach rejestrowane dane szeregów czasowych podlegają algorytmom kompresji[3][4]. Chociaż możliwe jest przechowywanie tych danych w wielu różnych typach baz, konstrukcja systemów wykorzystujących czas jako kluczowy indeks wyraźnie różni się od relacyjnych baz danych. W systemach przetwarzania serii czasowych dane przetwarzane są za pomocą modeli referencyjnych[5].

Przegląd[edytuj | edytuj kod]

Zbiory danych szeregów czasowych są stosunkowo duże i jednolite w porównaniu z innymi zbiorami danych. Zwykle tego typu dane składają się ze znacznika czasu i powiązanych danych pomiarowych. Zbiory danych zawierające szeregi czasowe zawierają mniej relacji między kolejnymi wpisami danych w różnych tabelach i nie wymagają przechowywania kolejnych wpisów przez czas nieokreślony[6]. Unikalne właściwości zbiorów danych zawierających szeregi czasowe oznaczają, że bazy danych szeregów czasowych mogą zapewnić znaczną poprawę wykorzystania przestrzeni dyskowej oraz wydajności systemu w porównaniu z bazami danych ogólnego przeznaczenia[6]. Na przykład, ze względu na jednolitość danych wewnątrz szeregów czasowych, wyspecjalizowane algorytmy kompresji mogą zapewnić lepszą kompresję danych w porównaniu ze zwykłymi algorytmami kompresji zaprojektowanymi do pracy na mniej jednolitych danych[6]. Bazy danych szeregów czasowych można również skonfigurować tak, aby regularnie usuwały (lub zmniejszały) stare dane, w przeciwieństwie do zwykłych baz danych, które są przeznaczone do przechowywania danych przez czas nieokreślony[6]. Specjalne skonstruowane w tym celu indeksy baz danych mogą również zwiększyć wydajność zapytań[6].

Lista baz danych szeregów czasowych[edytuj | edytuj kod]

Poniższe systemy zostały wyposażone w funkcjonalność zoptymalizowaną do obsługi szeregów czasowych.

Nazwa Licencja Język implementacji
Apache IoTDB Apache License 2.0 Java
Apache Kudu Apache License 2.0 C++
Apache Pinot Apache License 2.0 Java
CrateDB Apache License 2.0 Java
eXtremeDB Commercial SQL, Python, C / C++, Java, and C#
InfluxDB MIT. Chronograf AGPLv3, Clustering Commercial Go (version 2), Rust (version 3)
Informix TimeSeries Commercial C / C++
Kx kdb+ Commercial Q
MongoDB Server Side Public License C++, JavaScript, Python
Prometheus Apache License 2.0 Go
RedisTimeSeries RSALv2/SSPLv1 C
Riak-TS Apache License 2.0 Erlang
RRDtool GPLv2 C
TimescaleDB Apache License 2.0 C
Whisper (Graphite) Apache License 2.0 Python

Przypisy[edytuj | edytuj kod]

  1. Abdullah Mueen. Exact Discovery of Time Series Motifs. „University of California, Riverside”. 2009, s. 473–484, 2009. DOI: 10.1137/1.9781611972795.41. PMID: 31656693. PMCID: PMC6814436. [zarchiwizowane z adresu]. Cytat: Definition 2:A Time Series Database(D)is an unordered set of m time series possibly of different lengths.. 
  2. Esther Villar-Rodriguez. Detection of non-technical losses in smart meter data based on load curve profiling and time series analysis. „Energy”. 137, s. 118–128, 2017. DOI: 10.1016/j.energy.2017.07.008. 
  3. Tuomas Pelkonen. Gorilla. „Proceedings of the VLDB Endowment”. 8 (12), s. 1816–1827, 2015. DOI: 10.14778/2824032.2824078. 
  4. Joshua Lockerman: Time-series compression algorithms, explained. Timescale Blog, 2020-04-22. [dostęp 2022-10-07].
  5. Matt Asay: Why time series databases are exploding in popularity. TechRepublic, June 26, 2019. [dostęp 2019-07-31]. [zarchiwizowane z tego adresu (2019-08-26)]. Cytat: Relational databases and NoSQL databases can be used for time series data, but arguably developers will get better performance from purpose-built time series databases, rather than trying to apply a one-size-fits-all database to specific workloads.
  6. a b c d e Wayner, Peter (15 Styczeń 2021). "Database trends: The rise of the time-series database". VentureBeat. Retrieved 7 July 2021.

Bibliografia[edytuj | edytuj kod]