時系列データベース

ウィキペディアから無料の百科事典

時系列データベース: 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]

関連項目[編集]

出典・参考文献[編集]

  1. ^ 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時点におけるアーカイブ。. https://web.archive.org/web/20100625200233/https://www.cs.ucr.edu/~eamonn/EM.pdf 2019年7月31日閲覧. "Definition 2:A Time Series Database(D)is an unordered set of m time series possibly of different lengths." 
  2. ^ Wayner, Peter (2021年1月15日). “Database trends: The rise of the time-series database”. VentureBeat. https://venturebeat.com/2021/01/15/database-trends-the-rise-of-the-time-series-database/ 2021年7月7日閲覧。 
  3. ^ 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. 
  4. ^ 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. 
  5. ^ Benchmarking Time Series workloads on Apache Kudu using TSBS” (2020年3月18日). 2022年3月27日閲覧。
  6. ^ 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. https://arxiv.org/abs/2104.00087. 
  7. ^ a b c d e f g Stephens, Rachel (2018年4月3日). “State of the Time Series Database Market”. 2018年10月3日閲覧。
  8. ^ influxdb license”. GitHub. 2016年8月14日閲覧。
  9. ^ influxdb clustering”. influxdata.com. 2016年3月10日閲覧。
  10. ^ Anadiotis, George (2018年9月28日). “Processing time series data: What are the options?”. zdnet.com. 2016年3月10日閲覧。
  11. ^ Dantale, Viabhav (2012-09-21). Solving Business Problems with Informix TimeSeries. IBM Redbooks. ISBN 9780738437231. http://www.redbooks.ibm.com/redbooks/pdfs/sg248021.pdf 
  12. ^ MongoDB's New Time Series Collections”. 2022年3月27日閲覧。
  13. ^ RedisTimeSeries | A NoSQL Time Series Database”. Redis. 2023年6月12日閲覧。
  14. ^ Design Recommendations for Intelligent Tutoring Systems: Volume 8 - Data Visualization. Army Research Laboratory. (December 29, 2020). p. 50. ISBN 9780997725780. https://www.google.com/books/edition/Design_Recommendations_for_Intelligent_T/TxY6EAAAQBAJ?hl=en&gbpv=1&dq=%22TimescaleDB%22+-wikipedia&pg=PA50&printsec=frontcover 
  15. ^ Joshi, Nishes (May 23, 2012). Interoperability in monitoring and reporting systems (Thesis). hdl:10852/9085 
  16. ^ Asay, Matt (2019年6月26日). “Why time series databases are exploding in popularity”. TechRepublic. 2019年6月26日時点のオリジナルよりアーカイブ。2019年7月31日閲覧。 “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.”