Baza danych szeregów czasowych
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]
- ↑ 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..
- ↑ 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.
- ↑ Tuomas Pelkonen. Gorilla. „Proceedings of the VLDB Endowment”. 8 (12), s. 1816–1827, 2015. DOI: 10.14778/2824032.2824078.
- ↑ Joshua Lockerman: Time-series compression algorithms, explained. Timescale Blog, 2020-04-22. [dostęp 2022-10-07].
- ↑ 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.
- ↑ a b c d e Wayner, Peter (15 Styczeń 2021). "Database trends: The rise of the time-series database". VentureBeat. Retrieved 7 July 2021.