InfluxDB核心概念系列之数据模式与设计原则

简介: 工欲善其事必先利其器,想要用好InfluxDB,当然要先厘清其基本概念,本文为InfluxDB核心概念系列文章之数据模式与设计原则。

数据模式

InfluxDB 数据元素存储在时间结构合并树 (TSM) 和时间序列索引 (TSI) 文件中,以有效压缩存储的数据。

InfluxDB 还提供了一个表格数据模式,其中包括以下内容:

  • Annotation rows
  • Header row
  • Data rows
  • Other columns
  • Group keys

表格数据模式用于以下用途:

  • 在使用 InfluxDB 探索指标时查看原始数据
  • 以带注释的 CSV 语法返回查询结果

Annotation rows

注释行描述列属性,例如:

  • #group
  • #datatype
  • #default

Header row

标题行定义了描述每列数据的列标签,例如:

  • table
  • _time
  • _value
  • _field
  • _measurement
  • tag key names (without underscore prefix): tag-1tag-2

Data rows

每个数据行包含一个点的标题行中指定的数据。

Other columns

除了每个数据行中的列(在标题行中指定)之外,以下列是可选的:

  • annotation
  • result
  • table

Group keys

通过对指定列中共享公共值的记录进行分组,确定 Flux 中输出表的内容。 了解有关使用 Flux 对数据进行分组的更多信息。

设计原则

InfluxDB 实现了时间序列数据的优化设计原则。 其中一些设计原则可能会在性能方面进行权衡。

  • 按时间排序的数据
  • 严格的更新和删除权限
  • 首先处理读写查询
  • 无模式设计
  • 单个点上的数据集
  • 重复数据

按时间排序的数据

为了提高性能,数据按时间升序写入。

严格的更新和删除权限

为了提高查询和写入性能,InfluxDB 严格限制更新和删除权限。 时间序列数据主要是从未更新的新数据。 删除通常只影响未写入的数据,并且永远不会发生有争议的更新。

首先处理读写查询

InfluxDB 将读取和写入请求置于强一致性之上。 InfluxDB 在执行查询时返回结果。 任何影响查询数据的事务都会随后进行处理,以确保数据最终一致。 因此,如果摄取率较高(每毫秒多次写入),则查询结果可能不包括最近的数据。

无模式设计

InfluxDB 使用无模式设计来更好地管理不连续数据。 时间序列数据通常是短暂的,这意味着数据会出现几个小时然后消失。 例如,一个新主机启动并报告一段时间然后关闭。

单个点上的数据集

因为数据集比单个点更重要,InfluxDB 实现了强大的工具来聚合数据和处理大型数据集。 点是通过时间戳和序列来区分的,所以没有传统意义上的ID。

重复数据

为了简化冲突解决并提高写入性能,InfluxDB 假设多次发送的数据是重复数据。 相同的点不会存储两次。 如果为某个点提交了新的字段值,InfluxDB 会使用最新的字段值更新该点。 在极少数情况下,数据可能会被覆盖。 了解有关重复点的更多信息。

相关文章
|
11月前
|
运维 负载均衡 测试技术
分布式基本概念-02
分布式基本概念-02
73 4
|
3月前
|
存储 监控 负载均衡
InfluxDB最佳实践:数据模型设计与查询优化
【4月更文挑战第30天】本文探讨了InfluxDB的最佳实践,重点在于数据模型设计和查询优化。合理选择字段类型,根据业务逻辑划分Measurement,利用Tags进行索引优化,以及适时数据归档和清理,能有效提升性能。查询优化包括使用索引、精简查询语句、应用聚合函数及限制返回结果。分布式查询和分片适用于大规模数据集,以实现并行查询和负载均衡。这些策略旨在帮助用户优化InfluxDB的性能,进行高效时序数据分析。
|
3月前
|
SQL 关系型数据库 数据库
InfluxDB相关概念
InfluxDB相关概念
35 0
|
3月前
|
分布式计算 API 数据处理
Flink【基础知识 01】(简介+核心架构+分层API+集群架构+应用场景+特点优势)(一篇即可大概了解flink)
【2月更文挑战第15天】Flink【基础知识 01】(简介+核心架构+分层API+集群架构+应用场景+特点优势)(一篇即可大概了解flink)
123 1
|
3月前
|
运维 监控 持续交付
微服务架构的概念、特点、优缺点以及最佳实践
微服务架构的概念、特点、优缺点以及最佳实践
2148 1
|
3月前
|
存储 传感器 数据挖掘
请解释一下时序数据库的工作原理,并提供一个使用时序数据库的实际应用场景。
请解释一下时序数据库的工作原理,并提供一个使用时序数据库的实际应用场景。
252 0
|
12月前
|
分布式计算 负载均衡 Hadoop
深入理解集群、分布式、微服务的概念、关系和区别
区别: 集群是个物理形态,分布式是个工作方式。
1188 0
|
消息中间件 存储 程序员
CQRS架构简介
CQRS架构简介
1112 0
CQRS架构简介
|
存储 运维 负载均衡
聊聊集群、分布式和微服务之间的联系和异同点
对于集群、分布式和微服务,大家在工作中可能经常会听到,但是如果问你它们之间存在什么样的区别和联系,可能你一下子又感觉说不清楚,今天就这个话题,趁着周末时间,跟大家来一起聊聊。
聊聊集群、分布式和微服务之间的联系和异同点
|
微服务
一文轻松读懂微服务、集群、分布式的概念和区别
一文轻松读懂微服务、集群、分布式的概念和区别
473 0
一文轻松读懂微服务、集群、分布式的概念和区别