英语网站建设费用,wordpress增加快捷便签快捷文字,云南省科技网站,文学投稿网站平台建设InfluxDB简介
什么是时序数据库
时序数据库#xff0c;全称时间序列数据库#xff08;Time Series Database#xff0c;TSDB#xff09;#xff0c;用于存储大量基于时间的数据。时序数据库支持时序数据的快速写入、持久化#xff0c;多维度查询、聚合等操作#xff0…InfluxDB简介
什么是时序数据库
时序数据库全称时间序列数据库Time Series DatabaseTSDB用于存储大量基于时间的数据。时序数据库支持时序数据的快速写入、持久化多维度查询、聚合等操作记录了所有的历史数据。在查询时将时间作为数据的过滤条件。
时序数据Time Series Data指的是一系列每个时间点产生的数据例如CPU利用率Jmeter每秒发送http请求产生的响应时间等。时序数据的使用场景广泛包括DevOps监控应用程序指标压测指标IoT传感器数据实时动态数据分析等场景。
初识InfluxDB
InfluxDB是时序数据库中应用比较广泛的一种。在DB-Engines TSDB rankhttps://db-engines.com/en/ranking/timeseriesdbms中位居首位可见InfluxDB在互联网的受欢迎程度是非常高。 它由go语言开发发布至今已经有两个版本InfluxDB1.x 和InfluxDB2.x
InfluxDB1.x系列提供一种类似SQL的查询语言InfluxQL用于数据交互。
2019年1月新推出的influxDB2.0 alpha版本主推全新的查询语言Flux支持TICK架构。
TICK架构分析与各组件功能介绍
TICK架构 是 InfluxData 平台的组件的集合首字母缩写该集合包括Telegraf、InfluxDB、Chronograf和 Kapacitor。TICK架构以及各组件分工情况如图所示 注上图中的可视化管理工具Chronograf也可以用应用更广Grafana可视化工具替代它也是用于大规模指标数据的可视化展示提供包括折线图饼图仪表盘等多种监控数据可视化UI特别是应用过程中考虑到扩展性问题使用Grafana代替Chronograf更好。
2020 年底推出InfluxDB 2.0 正式版本该版本又分为InfluxDB Cloud 和 InfluxDB OSS两个系列。目前最新版本InfluxDB 2.xInfluxDB 2.7 。与 InfluxDB 1.x 相比InfluxDB 2.x 引入了一些新的特性和改进旨在提供更强大、灵活和易于使用的时间序列数据存储和查询解决方案。以下是 InfluxDB 2.x 的一些关键特点和概念
Flux 查询语言 InfluxDB 2.x 引入了 Flux 查询语言用于执行强大的数据处理和分析操作。Flux 提供了更灵活的查询能力支持复杂的数据转换、过滤、聚合和连接操作以更好地支持用户对时间序列数据的操作和分析。新的数据存储引擎 InfluxDB 2.x 使用 Flux Engine 作为新的数据存储引擎。Flux Engine 具有更好的性能和扩展性支持高并发写入和高效查询。Bucket 和 Organization InfluxDB 2.x 引入了 Bucket 和 Organization 的概念。Bucket 是数据的逻辑容器用于组织和存储时间序列数据而 Organization 用于隔离和管理不同的用户或应用程序。新的用户界面UI InfluxDB 2.x 提供了全新的仪表板和可视化工具使用户能够轻松创建、定制和共享漂亮的图表和仪表板以直观地展示时间序列数据。API 密钥和访问令牌 为了实现更安全的访问和操作InfluxDB 2.x 引入了 API 密钥和访问令牌。API 密钥用于身份验证访问令牌用于授权对数据的访问。支持多租户 InfluxDB 2.x 提供更好的多租户支持允许在同一实例中隔离和管理多个不同的组织和数据。新的存储结构 InfluxDB 2.x 采用TSMTime-Structured Merge Tree时间结构合并树新的存储结构支持更灵活的标签和更好的查询性能同时改进了存储效率。云原生和容器化 InfluxDB 2.x 被设计用于云原生环境和容器化部署支持在 Kubernetes 或其他容器编排工具中运行。更好的持久性查询支持 Flux 查询语言支持对查询结果进行持久性存储使用户可以创建并定期执行持久性的计算任务。
InfluxDB基本概念
以下是 InfluxDB 2.x 的一些基本概念这些概念有助于理解和使用 InfluxDB
Bucket桶 Bucket 是 InfluxDB 中的基本存储单元用于组织和存储时间序列数据。它是数据的逻辑容器用于区分和隔离不同类型或不同来源的数据。Organization组织 Organization 是 InfluxDB 中的组织概念用于隔离和管理用户、应用程序或项目。每个用户可以属于一个或多个组织Bucket 也属于一个组织。Measurement测量值 Measurement 是 InfluxDB 中的数据表的概念。它类似于关系型数据库中的表用于存储时间序列数据。每个 Measurement 包含一组字段和标签。Field字段 Field 是 Measurement 中的一种数据类型用于存储实际的数值数据。例如温度、湿度等是字段的例子。Tag标签 Tag 是 Measurement 中的一种索引类型用于标识和过滤数据。标签通常用于存储维度信息例如地理位置、设备 ID 等。Point数据点 Point 是 InfluxDB 中时间序列数据的基本单位它包含了时间戳、字段和标签。每个数据点都关联到一个 Measurement。API 密钥和访问令牌 为了进行安全的访问和操作InfluxDB 2.x 引入了 API 密钥和访问令牌。API 密钥用于身份验证而访问令牌用于授权对数据的访问。Flux 查询语言 Flux 是 InfluxDB 2.x 中的查询语言用于执行强大的数据处理和分析操作。它支持更灵活的查询、过滤、聚合和转换操作。仪表板和可视化 InfluxDB 2.x 提供了仪表板和可视化工具允许用户创建、定制和共享图表和仪表板以直观地展示时间序列数据。
时序数据库与我们熟悉的关系型数据库有所不同首先需要了解一下InfluxDB中字段的含义如下图所示
InfluxDB存储原理
InfluxDB的存储结构树是时间结构合并树Time-Structured Merge TreeTSM它是由日志结构化合并树Log-Structured Merge TreeLSM根据实际需求变化而来的。
**①. LSM树 **
LSM树包含三部分MemtableImmutable和SSTable。MemTable是内存中的数据结构用于保存最近产生的数据并按照Key有序地组织数据。内存并不是可靠存储若断电就会丢失数据因此通常会使用预写式日志(Write-ahead loggingWAL)的方式来保证数据的可靠性。 ②. TSM存储引擎
TSM存储引擎主要包括四部分:CacheWALTSM FileCompactor。下图中shard与TSM引擎主要部分放在一起但其实shard在是TSM存储引擎之上的一个概念。在 InfluxDB 中按照数据产生的时间范围会创建不同的shard分组每个 shard 都有本身的 cache、wal、tsm file 以及 compactor。 应用场景
广泛应用于物联网、监控系统、日志分析、金融数据分析等。以下是一些时序数据库的常见应用场景
监控和运维 时序数据库常用于监控系统的性能和运行状态。通过记录服务器、网络设备、DevOps监控应用程序指标Jmeter压测指标等管理员可以实时监测系统健康状况快速识别并解决问题。物联网IoT 物联网设备产生大量的时间序列数据包括传感器读数、设备状态和事件记录。时序数据库能够高效地存储和查询这些数据为物联网应用提供实时性和高吞吐量。能源管理 时序数据库可用于跟踪能源使用情况记录电表读数、太阳能发电量、温度等信息。这对于能源消耗分析、可再生能源监测和节能优化非常有用。金融数据分析 金融行业需要处理大量的交易数据、股价变动和其他市场指标。时序数据库能够提供快速的查询和分析功能以便实时监控市场情况和执行高频交易策略。日志分析 服务器日志、应用程序日志等产生的日志数据通常是按时间戳记录的。时序数据库可用于存储和分析大量的日志数据以便追踪系统事件、调查问题和进行故障排除。工业自动化 在制造业和工业自动化中时序数据库用于记录生产过程中的传感器数据、生产线状态和设备运行情况以实现实时监控和质量控制。环境监测 时序数据库可用于存储气象数据、空气质量指标、水质数据等环境监测信息。这有助于研究气候变化、提高自然灾害预警系统的效能等。 influxdb官网https://www.influxdata.com/products/influxdb-overview/influxdb官网源码GitHub - influxdata/influxdb: Scalable datastore for metrics, events, and real-time analyticsinfluxdb文档InfluxData Documentation使用手册Get started with InfluxDB | InfluxDB OSS v2 Documentation 免费influxdb申请云无服务器https://www.influxdata.com/influxdbpricing/
参考InfluxDB 2.0 原理与应用实践 - 脉脉