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

相关文章
|
运维 负载均衡 测试技术
分布式基本概念-02
分布式基本概念-02
95 4
|
5天前
|
存储 缓存 监控
ClickHouse 架构原理及核心特性详解
ClickHouse 是由 Yandex 开发的开源列式数据库,专为 OLAP 场景设计,支持高效的大数据分析。其核心特性包括列式存储、字段压缩、丰富的数据类型、向量化执行和分布式查询。ClickHouse 通过多种表引擎(如 MergeTree、ReplacingMergeTree、SummingMergeTree)优化了数据写入和查询性能,适用于电商数据分析、日志分析等场景。然而,它在事务处理、单条数据更新删除及内存占用方面存在不足。
102 21
|
5天前
|
存储 SQL NoSQL
Doris 架构原理及核心特性详解
Doris 是百度内部孵化的OLAP项目,现已开源并广泛应用。它采用MPP架构、向量化执行引擎和列存储技术,提供高性能、易用性和实时数据处理能力。系统由FE(管理节点)和BE(计算与存储节点)组成,支持水平扩展和高可用性。Doris 适用于海量数据分析,尤其在电商、游戏等行业表现出色,但资源消耗较大,复杂查询优化有局限性,生态集成度有待提高。
38 15
|
8月前
|
存储 NoSQL 关系型数据库
redis-学习笔记(概念, 相关名词, 特性, 优势: 快)
redis-学习笔记(概念, 相关名词, 特性, 优势: 快)
47 0
|
8月前
|
存储 监控 负载均衡
InfluxDB最佳实践:数据模型设计与查询优化
【4月更文挑战第30天】本文探讨了InfluxDB的最佳实践,重点在于数据模型设计和查询优化。合理选择字段类型,根据业务逻辑划分Measurement,利用Tags进行索引优化,以及适时数据归档和清理,能有效提升性能。查询优化包括使用索引、精简查询语句、应用聚合函数及限制返回结果。分布式查询和分片适用于大规模数据集,以实现并行查询和负载均衡。这些策略旨在帮助用户优化InfluxDB的性能,进行高效时序数据分析。
|
8月前
|
SQL 关系型数据库 数据库
InfluxDB相关概念
InfluxDB相关概念
75 0
|
8月前
|
运维 监控 持续交付
微服务架构的概念、特点、优缺点以及最佳实践
微服务架构的概念、特点、优缺点以及最佳实践
3700 1
|
存储 Kubernetes 负载均衡
K8S基础篇:概念与架构
**Kubernetes** 是一个可移植的、可扩展的开源平台,用于**管理容器化的工作负载和服务,可促进声明式配置和自动化**。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用
350 2
K8S基础篇:概念与架构
|
消息中间件 存储 程序员
CQRS架构简介
CQRS架构简介
1329 1
CQRS架构简介
|
前端开发 Java Nacos
应用于分布式系统-自定义扩展 dataid | 学习笔记
快速学习应用于分布式系统-自定义扩展 dataid。
129 0