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 会使用最新的字段值更新该点。 在极少数情况下,数据可能会被覆盖。 了解有关重复点的更多信息。

相关文章
|
3月前
|
运维 负载均衡 算法
“分布式基础概念”全面解析,让你秒懂分布式系统!【一】
该博客文章全面解析了分布式系统的基础概念,包括微服务架构、集群与分布式的区别、节点定义、远程调用、负载均衡、服务注册与发现、配置中心、服务熔断与降级以及API网关,帮助读者快速理解分布式系统的关键组成部分和工作原理。
“分布式基础概念”全面解析,让你秒懂分布式系统!【一】
|
6月前
|
存储 负载均衡 网络协议
ZooKeeper【基础 01】简介+设计目标+核心概念+ZAB协议+典型应用场景
【4月更文挑战第10天】ZooKeeper【基础 01】简介+设计目标+核心概念+ZAB协议+典型应用场景
92 1
|
6月前
|
SQL 关系型数据库 数据库
InfluxDB相关概念
InfluxDB相关概念
60 0
|
6月前
|
运维 监控 持续交付
微服务架构的概念、特点、优缺点以及最佳实践
微服务架构的概念、特点、优缺点以及最佳实践
3269 1
|
消息中间件 存储 程序员
CQRS架构简介
CQRS架构简介
1244 1
CQRS架构简介
|
分布式计算 负载均衡 Hadoop
深入理解集群、分布式、微服务的概念、关系和区别
区别: 集群是个物理形态,分布式是个工作方式。
1603 0
|
存储 Python
BentoML核心概念(四):模型和 Bento 管理
BentoML 提供易于使用的本地和集中式商店来管理模型和bentos。 本文重点介绍基于本地文件系统的模型和 bento 商店的使用。 要了解有关集中式商店解决方案的更多信息,请参阅 BentoML Yatai。
|
前端开发 Java Nacos
应用于分布式系统-自定义扩展 dataid | 学习笔记
快速学习应用于分布式系统-自定义扩展 dataid。
120 0
|
Dubbo 应用服务中间件 数据处理
分布式系统定义|学习笔记
快速学习分布式系统定义
|
存储 运维 负载均衡
聊聊集群、分布式和微服务之间的联系和异同点
对于集群、分布式和微服务,大家在工作中可能经常会听到,但是如果问你它们之间存在什么样的区别和联系,可能你一下子又感觉说不清楚,今天就这个话题,趁着周末时间,跟大家来一起聊聊。
聊聊集群、分布式和微服务之间的联系和异同点
下一篇
无影云桌面