翻译|布加迪评论家|SunShujuan在数据库方面,开发人员和公司面临着比以往更多的选择。为您的项目选择合适的数据库可以节省编写和查询数据的时间。随着许多公司处理越来越大的数据集以构建越来越智能和自动化的系统,效率是关键。对于许多工作负载,使用时间序列数据库是一个明智的选择:它可以节省时间和存储空间。1.时间序列数据有何不同?时间序列数据是任何带有时间戳的指标。它包括从天气模式到CPU使用率的变量。它通常来自需要做出实时决策的传感器、系统或应用程序。这些数据对于了解过去的表现和创建模型来预测未来结果都至关重要。这些计算中涉及的数据量可能会迅速增长,因此避免将资源花费在低效的数据结构上很重要。时间序列数据库旨在处理典型的时间序列工作负载。它们经过优化以衡量随时间的变化,而不是衡量数据点之间的关系。时间序列数据的两种主要类型是定期获取的指标和由于外部事件或用户测量而不定期获取的事件。时间序列数据库能够处理指标和事件,并且能够对事件数据进行平均并将事件转换为指标,这一点很重要。2.存储数据一个好的数据库需要安全高效地存储数据。用户需要能够快速将数据写入数据库,并确信它可以处理他们计划存储在其中的数据量。时间序列数据可能有巨大的容量,需要构建存储它的数据库来适应这一点。时间是线性的,时间序列数据库可以通过将新数据附加到现有数据来利用这一点。它们针对以最常见的方式快速写入带时间戳的数据进行了优化,从用户开始写入数据的那一刻起就节省了时间。时间序列数据库也可能具有内置的生命周期管理功能。开发人员或公司最初收集和分析非常详细的数据是很常见的;随着时间的推移,他们希望在不占用太多存储空间的情况下存储更小的、下采样的数据集来描述趋势。时间序列数据库会考虑到这一点,根据每个应用程序的需要自动聚合和删除数据。如果开发人员使用更基本的数据库,他们通常需要创建新系统以这种方式管理数据。有了时间序列数据库,就可以满足这一点,开发人员可以专注于应用程序。时间序列数据库也需要轻松扩展。例如在物联网使用场景中,随着传感器的加入和项目的不断扩大,数据量急剧增加。这在时间序列工作负载中很常见,用于这些项目的数据库需要能够适应这一点。3.查询数据使用时间序列数据库还可以减少时间序列工作负载的查询时间。处理时间序列数据最常见的事情之一是汇总很长一段时间内的数据。在使用行和列来描述不同数据点关系的典型关系数据库中存储数据时,此类查询非常慢。设计用于处理时间序列数据的数据库可以大大提高处理查询的速度。时间序列数据库还可能具有内置的可视化工具或高级功能,以简化常见类型的时间序列分析。4.选择一个时间序列数据库有几个时间序列数据库值得探索。出于本文的目的,我们关注领先的时间序列数据库InfluxDB。InfluxDB为数据分配指标名称和时间戳,并为数据值和元数据使用键/值对。它将度量名称和标签集保存在倒排索引中,从而加快查询速度。用户可以编写基于时间范围内的指标、标签和/或字段的查询,并在毫秒内收到结果。单个InfluxDB服务器每秒可以处理超过200万次写入。与Cassandra等NoSQL数据库相比,InfluxDB写入数据的速度提高了4.5倍,使用的存储空间减少了2.1倍,返回查询的速度提高了45倍。数据库是许多应用系统的支柱,在时间序列数据库中处理时间戳数据可以节省开发人员的时间和存储空间。为应用程序选择正确的数据库可以让开发人员专注于构建出色的项目,而不是在开始之前花时间管理模式。原文链接:https://thenewstack.io/why-use-a-purpose-built-time-series-database/
