时间序列数据库 (TSDB) 是针对时间戳或时间序列数据进行优化的数据库 。时间序列数据只是随着时间的推移被跟踪、监控、下采样和聚合的测量或事件。这可能是服务器指标、应用程序性能监控、网络数据、传感器数据、事件、点击、市场交易以及许多其他类型的分析数据。
一时间序列数据库的处理指标和事件,或者是时间标记测量专门建造的。甲TSDB用于测量随时间变化的优化。使时间序列数据与其他数据工作负载截然不同的特性是数据生命周期管理、汇总和大量记录的大范围扫描。
为什么时间序列数据库现在很重要?
时间序列数据库并不新鲜,但第一代时间序列数据库主要关注金融数据、股票交易的波动性以及为解决交易问题而构建的系统。但金融数据 不再是时间序列数据的唯一 应用——事实上,它只是各个行业众多应用中的一个。在过去十年中,计算的基本条件发生了巨大变化。一切都变得分隔开来。单体大型机已经消失,取而代之的是无服务器服务器、微服务器和容器。
今天,任何可以成为组件的东西都是一个组件。此外,我们正在目睹物质世界中每一个可用表面的仪器——街道、汽车、工厂、电网、冰盖、卫星、衣服、电话、微波炉、牛奶容器、行星、人体。一切都有,或将有,一个传感器。所以现在,公司内外的一切都在不断地发布指标和事件或时间序列数据。
这意味着底层平台需要发展以支持这些新的工作负载——更多的数据点、更多的数据源、更多的监控、更多的控制。我们正在目睹以及时代要求的是我们处理数据基础设施的方式以及我们构建、监控、控制和管理系统的方式的范式转变。我们需要的是一个高性能的、可扩展的、专门构建的时间序列数据库。
时间序列工作负载有何区别?
时间序列数据库具有关键的架构设计属性,这使它们与其他数据库非常不同。其中包括时间戳数据存储和压缩、数据生命周期管理、数据汇总、处理大量记录的大型时间序列相关扫描以及时间序列感知查询的能力。
例如: 对于时间序列数据库,请求一个很长一段时间内的数据摘要是很常见的。这需要遍历一系列数据点以执行一些计算,例如本月过去六个月同期指标的百分位数增加,按月汇总。这种工作负载很难通过分布式键值存储进行优化。TSDB 正是针对这个用例进行了优化,在数月的数据中提供毫秒级的查询时间。 另一个例子: 对于时间序列数据库,在短时间内保留高精度数据是很常见的。这些数据被汇总并下采样为长期趋势数据。这意味着对于进入数据库的每个数据点,在其时间段结束后必须将其删除。这种数据生命周期管理对于应用程序开发人员来说很难在常规数据库之上实现。他们必须设计方案以低成本驱逐大量数据并不断地大规模汇总这些数据。对于时间序列数据库,此功能是开箱即用的。