首页 > 数据库 >时序数据库

时序数据库

时间:2024-08-17 14:16:38浏览次数:11  
标签:存储 数据库 InfluxDB 时序 时间 序列 数据

当需要显示每分钟、每天或任何其他日期范围的分析数据时,你需要使用时间序列数据库。时间序列数据库存储了带有相关时间戳的数据点,因此可以向用户显示时间范围内的趋势。它通常用于基于时间的信息和分析的可视化。

 

什么是时间序列数据库?

在时间序列数据库中,每条记录都包含一个时间戳。时间戳可用于显示单个数据点,也可用于图表和分析。时间序列数据库专门用于需要日期范围的信息,如跟踪天气或查询为监控目的记录的特定事件。

 

什么是时间序列集合?

时间序列数据库存储所有数据,但时间序列集合是从数据库中提取并返回应用程序的数据片段。时间序列集合以数据集的形式从数据库中获取,数据集包含给定日期范围内的数据点。用户或应用程序将时间范围作为输入发送给数据库,数据库会返回给定范围内每个数据点的集合。

 

时间序列数据库的工作原理

通常,创建时间序列数据库是为了获取大量数据,以便将来进行分析。用户在应用程序中设定日期范围,数据库就会返回一组数据点。数据库以时间间隔采集数据。例如,股票行情器可能每分钟显示一次股票价格的变化。数据库存储股票名称、价格和时间戳,以记录每分钟的股票价格,用于分析和记录历史信息。

 

从时间序列数据库中检索的数据会按时间顺序排列记录,这样开发人员就可以构建可视化效果,而无需太多开销。数据库是功能强大的服务器,因此它们对数据集进行排序的速度要比前端网络应用快得多。时间序列数据库接收应用程序的输入,确定数据的排序方式,以便开发人员向用户显示分析结果。例如,用户可能要获得特定日期范围内的股票价格数据,并按升序排序。

 

流行的时间序列数据库的比较

每个时间序列数据库都有一个用于存储和检索数据的后端引擎。该引擎必须快速高效,既能存储大量数据,又能以极小的延迟检索数据。你可以在传统数据库中存储基于时间的数据,但市场上有几种时间序列数据库是专门为查询和存储这类数据而构建的。

 

InfluxDB:开源的 TSDB

开源数据库受到一些开发人员的青睐,因为他们可以 fork 代码库,对基础产品进行自己的修改。InfluxDB 是一个开源时间序列数据库,每秒可存储成千上万个数据点。如果想监控工业应用中的物联网设备等基础设施,InfluxDB 是一个不错的选择。

 

Prometheus 与 InfluxDB

InfluxDB 与 Prometheus 的主要区别在于检索数据的方式。

使用 InfluxDB,应用程序会不断向数据库发送数据,并在数据库中存储和检索数据。Prometheus 通过应用程序接口(API)工作,应用程序接口推送数据,数据库使用 API 轮询存储的数据。对于系统分布在多个地点的大型企业,Prometheus 基于云的 API 可让开发人员从多个地点上传数据,并在中央控制面板中进行审查。

 

TimescaleDB 与 InfluxDB

InfluxDB 是一种 NoSQL 数据库,而 TimescaleDB 是一种关系数据库。关系数据库的工作方式与 NoSQL 数据库截然不同。关系数据库使用表和键来连接每个表中存储的数据。了解数据库存储数据的方式非常重要,因为检索数据的方式使用不同的语法。如果你知道要存储的数据并能将其组织到表中,那么 TimescaleDB 就是一个可行的选择。

 

Elasticsearch 与 InfluxDB

为了提高性能,Elasticsearch 是企业应用中常用的引擎。它的性能略优于 InfluxDB,这是因为它具有分片索引的能力,而分片索引是 Elasticsearch 中作为 "文档"存储的数据的映射。Elasticsearch 应用于大型数据集,在这种情况下,应用程序和用户将检索来自各种时间戳的数百万个数据点的数据集。例如,Elasticsearch 可用于查看日志文件,以监控大型企业网络环境中任何可疑的用户活动。

 

何时使用时间序列数据库

大多数时间序列数据库都用于监控硬件或软件,以便使用大量数据来分析特定事件。要清楚地了解环境中的事件,需要从多个来源收集大量数据。例如,物联网传感器可能会收集多台机器的温度数据。时间序列数据库可存储一天中每分钟的温度,这样工程师就能发现任何异常情况,并在机器发生故障前进行补救。

 

关系型数据库与时间序列数据库

大多数时间序列数据库使用 NoSQL 文档来存储数据,这是存储非结构化数据的常见方式。非结构化数据意味着开发人员可以存储时间戳和名称等数据,而不必受将数据组织到定义的表行中的限制。关系数据库要求开发人员使用特定的结构来存储数据,因此对于具有未知值和数据类型的时间序列数据来说,关系数据库不是可行的选择。例如,开发人员无法使用关系数据库在时间戳列中存储字符串值,但使用时间序列 NoSQL 数据库却可以做到这一点。

 

NoSQL 数据库与时间序列数据库的比较

对于未知值,NoSQL 数据库是首选方法。你应该选择支持 NoSQL 的数据库,如 InfluxDB 或 Elasticsearch。这些时间序列数据库提供批量数据存储,查询时性能快速。它们主要用于大型企业应用,部署起来要困难得多。配置不正确的 NoSQL 数据库可能会抑制查询处理过程中的性能。

 

时间序列数据库的优势

每种数据库都能存储信息,但时间序列数据库是专门为基于时间的分析而构建的。时间序列数据库的优势在于它能够存储大量数据,每个数据点都包含一个时间戳。由于时间序列数据库是针对大型数据集而构建的,因此在插入新记录和检索大型数据集方面,时间序列数据库通常比传统数据库更快、更高效。

对于涉及日期和时间的查询,时间序列数据库通常更加准确,而且存储时间序列数据的效率更高。任何想要存储监控数据的组织都会从时间序列数据库中受益。时间序列数据库能够检索大型数据集,用于分析、可视化、财务趋势、活动信息以及一天中不同时间间隔内频繁发生的环境变化。

 

时间序列数据库的缺点

与任何高级基础架构一样,时间序列数据库更难正确部署和配置。由于大多数时间序列数据库都是 NoSQL 数据库,如果不对其进行优化,部署不当的 NoSQL 数据库就会出现性能低下的问题。配置需要企业内部有人了解优化数据库的正确方法。

希望存储时间序列数据的企业需要存储大量数据的资源。数据可以存储在云中,但会增加 IT 成本。支持数据存储和时间序列数据库处理的基础设施可能成本高昂。

 

结论

如果需要为基于时间的数据找到更好的解决方案,时间序列数据库是一个不错的选择。审查不同类型的数据库引擎,考虑成本,并找到一种能随着业务增长和数据存储量增加而扩展的数据库引擎。切记审查配置和优化选项,以确保数据库尽可能高效地运行。

 

原文地址:https://www.purestorage.com/au/knowledge/what-is-a-time-series-database.html

标签:存储,数据库,InfluxDB,时序,时间,序列,数据
From: https://www.cnblogs.com/abclife/p/18358798

相关文章

  • 数据库三范式
    数据库的范式是一套减少数据冗余和改善数据完整性的规则。第一范式(1NF)要求每列的原子性,即属性值不能再分解示例:一个包含学生信息的表,其中包含以下字段:学生ID(StudentID)学生姓名(StudentName)选修课程(Courses)如果Courses字段是这样的:学生A:数学,英语学生B:物理,化学,生......
  • MySQL数据库基础
    目录1.数据库的操作1.1  创建数据库1.2查看数据库1.3选中数据库1.4删除数据库2.常用数据类型2.1数值类型2.2字符串类型2.3日期类型3.表的操作3.1创建表3.2查看所有表3.3查看表的结构3.4删除表4.内容重点总结5.练习1.数据库的操作1.1  ......
  • 【数据库】事务 | 视图 | 自定义函数创建
    1、事物及其特征事物机制的应用:淘宝订单交易,微信转账等。视图--------筛子---------过滤-------筛选想要的信息数据库只存放了视图对应的SQL语句。视图是一个虚拟的表,本质是一个虚拟的SQL命令集合。(1)创建单表视图(虽然视图里没有30的数据,但原表里插入这个30的数据......
  • MySQL数据库入门,pycharm连接数据库—详细讲解
    一.安装MySQL1.常用MySQL5.7,首先安装MySQL,(一) (二)(三)(四)(五)2.配置环境变量打开MySQL安装路径,在其中找到bin文件,复制路径,打开系统高级设置,点击环境变量,在下方找到path,将bin文件路径粘贴其中。3.检验安装是否完成win+r 输入cmd,打开命令提示符,输入指令:netstart|......
  • GEE案例:利用MODIS数据计算长时序逐月的NDVI数据和下载
    简介详细流程如下:1.打开GoogleEarthEngine(GEE)平台的网站https://earthengine.google.com/。2.点击右上角的"SignIn"按钮,使用您的Google账号登录。3.在GEE界面中,点击左上角的"CodeEditor"按钮,进入代码编辑器页面。4.在代码编辑器页面的左上方,点击"A......
  • 坑!火山引擎云数据库 MySQL 版节点内存只增不减
    火山引擎云数据库说明文档什么是云数据库MySQL版?云数据库MySQL版是火山引擎基于开源数据库MySQL打造的弹性、可靠的在线关系型数据库服务。MySQL实例使用云原生方式部署,结合本地SSD存储类型,提供高性能读写能力;完全兼容MySQL引擎,并提供实例管理、备份恢复、日志管理......
  • Oracle数据库中,MINUS是一个关键字
    在Oracle数据库中,MINUS是一个关键字,用于执行两个SELECT语句的差集操作。MINUS操作返回在第一个SELECT语句中出现但不在第二个SELECT语句中出现的所有行。换句话说,它会从第一个查询结果中减去第二个查询结果,只保留在第一个查询结果中存在而第二个查询结果中不存在的记录。基本用法......
  • 浅看MySQL数据库
    有这么一句话:“一个不会数据库的程序员不是合格的程序员”。有点夸张,但是确是如此。透彻学习数据库是要学习好多知识,需要学的东西也是偏难的。我们今天来看数据库MySQL的一些简单基础东西,跟着小编一起来看一下吧。什么是数据库数据库(Database)是按照数据结构来组织、存储和管......
  • 数据库视图,索引,触发器
    数据库视图,索引,触发器视图mySQL中的视图是⼀种虚拟表,它是基于⼀个或多个基础表(或其他视图)的select查询结果集。虚拟表是⼀种逻辑上的表,它不实际存储数据,⽽是在查询时动态⽣成结果集。因此,视图并不是真正的表,⽽是基于⼀个或多个表的查询结果的⼀种“虚拟表”。视图可以看作......
  • 数据库存储过程
    数据库存储过程MySQL存储过程是⼀组预编译的SQL语句,可以在MySQL数据库中定义和存储,并在需要时执⾏。存储过程可以接受参数、执⾏条件判断、循环、异常处理等操作,使得开发⼈员可以把⼀系列操作组合成⼀个可重复使⽤的单元,从⽽提⾼代码的复⽤性和可维护性。存储过程......