時系列データベース
時刻と値の組に特化したデータベース
時系列データベース(英: time series database, TSDB)は、時刻と値の組からなる時系列データを格納し提供するために最適化されたソフトウェアシステムである [1]。センサーからの測定値を効率的に蓄える産業用アプリケーションとして生まれたが、現在はより広い分野で利用されている。
概要
編集時系列データセットは一般に、時刻(タイムスタンプ)と値の組で構成され、他のデータセットに比べて内容が画一的である。さらに、テーブル間の関係が少なく、既存のデータをあとから書き換えたり、データを無期限に保存したりする需要もほとんどない。時系列データベースはこうした時系列データセットの特性に特化することで、汎用データベースに比べてストレージ性能やクエリー性能を大幅に向上させているのが特徴である。たとえば、時系列データの均一性に特化した圧縮アルゴリズムを用いたり、古いデータを定期的に削除したり、特殊な高効率インデックスを利用するなどの工夫がなされる[2][3]。
時系列データは、分野によってプロファイル、カーブ、トレース、トレンドとも呼ばれる[4]。
主な時系列データベース
編集下記のデータベースシステムは、時系列データセットを処理するために最適化された機能を持つ。
名称 | ライセンス | 実装言語 | 参考文献 |
---|---|---|---|
Apache Druid | Apache License 2.0 | Java | N/A |
Apache Kudu | Apache License 2.0 | C++ | [5] |
Apache Pinot | Apache License 2.0 | Java | [6] |
eXtremeDB | 商用 | SQL, Python, C / C++, Java, and C# | [7] |
InfluxDB | MIT.[8] Chronograf AGPLv3, Clustering Commercial[9] | Go | [7][10] |
Informix TimeSeries | 商用 | C / C++ | [7][11] |
Kx kdb+ | 商用 | Q | [7] |
MongoDB | Server Side Public License | C++, JavaScript, Python | [12] |
Prometheus | Apache License 2.0 | Go | [7] |
RedisTimeSeries | BSDライセンス | C言語 | [13] |
Riak-TS | Apache License 2.0 | Erlang | [7] |
RRDtool | GPLv2 | C | [7] |
TimescaleDB | Apache License 2.0 | C | [14] |
Whisper (Graphite) | Apache License 2.0 | Python | [15] |
関連項目
編集- リレーショナルデータベース … 関係モデルに基づいて離散的な関係を最適化するリレーショナルデータベースの設計は、時系列データベースと対照的である[16]。
- Operational historian
出典・参考文献
編集- ^ Mueen, Abdullah; Keogh, Eamonn; Zhu, Qiang; Cash, Sydney; Westover, Brandon (2009). “Exact Discovery of Time Series Motifs”. University of California, Riverside 2009: 473–484. doi:10.1137/1.9781611972795.41. ISBN 978-0-89871-682-5. PMC 6814436. PMID 31656693. オリジナルの25 June 2010時点におけるアーカイブ。 31 July 2019閲覧. "Definition 2:A Time Series Database(D)is an unordered set of m time series possibly of different lengths."
- ^ Wayner, Peter (15 January 2021). “Database trends: The rise of the time-series database”. VentureBeat 7 July 2021閲覧。
- ^ Pelkonen, Tuomas; Franklin, Scott; Teller, Justin; Cavallaro, Paul; Huang, Qi; Meza, Justin; Veeraraghavan, Kaushik (2015). “Gorilla”. Proceedings of the VLDB Endowment 8 (12): 1816–1827. doi:10.14778/2824032.2824078.
- ^ Villar-Rodriguez, Esther; Del Ser, Javier; Oregi, Izaskun; Bilbao, Miren Nekane; Gil-Lopez, Sergio (2017). “Detection of non-technical losses in smart meter data based on load curve profiling and time series analysis”. Energy 137: 118–128. doi:10.1016/j.energy.2017.07.008. hdl:20.500.11824/693.
- ^ “Benchmarking Time Series workloads on Apache Kudu using TSBS” (18 March 2020). 2022年3月27日閲覧。
- ^ Fu, Yupeng; Soman, Chinmay (9 June 2021). “Real-time Data Infrastructure at Uber”. Proceedings of the 2021 International Conference on Management of Data: 2503–2516. arXiv:2104.00087. doi:10.1145/3448016.3457552. ISBN 9781450383431 .
- ^ a b c d e f g Stephens, Rachel (2018年4月3日). “State of the Time Series Database Market”. 2018年10月3日閲覧。
- ^ “influxdb license”. GitHub. 2016年8月14日閲覧。
- ^ “influxdb clustering”. influxdata.com. 2016年3月10日閲覧。
- ^ Anadiotis, George (2018年9月28日). “Processing time series data: What are the options?”. zdnet.com. 2016年3月10日閲覧。
- ^ Dantale, Viabhav (2012-09-21). Solving Business Problems with Informix TimeSeries. IBM Redbooks. ISBN 9780738437231
- ^ “MongoDB's New Time Series Collections”. 2022年3月27日閲覧。
- ^ “RedisTimeSeries | A NoSQL Time Series Database”. Redis. 12 June 2023閲覧。
- ^ Design Recommendations for Intelligent Tutoring Systems: Volume 8 - Data Visualization. Army Research Laboratory. (December 29, 2020). p. 50. ISBN 9780997725780
- ^ Joshi, Nishes (May 23, 2012). Interoperability in monitoring and reporting systems (Thesis). hdl:10852/9085
- ^ Asay, Matt (June 26, 2019). “Why time series databases are exploding in popularity”. TechRepublic. 26 June 2019時点のオリジナルよりアーカイブ。31 July 2019閲覧。 “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.”