InfluxDB核心概念系列之数据元素

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

工欲善其事必先利其器,想要用好InfluxDB,当然要先厘清其基本概念,本文为InfluxDB核心概念系列文章之数据元素。

在InfluxDB中,其包括如下种类的数据元素。

  • timestamp
  • field key
  • field value
  • field set
  • tag key
  • tag value
  • tag set
  • measurement
  • series
  • point
  • bucket
  • bucket schema
  • organization

下面的示例数据用于说明数据元素概念。

Timestamp

InfluxDB 中存储的所有数据都有一个 _time 列,用于存储时间戳。 在磁盘上,时间戳以纪元纳秒格式存储。 InfluxDB 格式时间戳显示与数据关联的 RFC3339 UTC 中的日期和时间。 写入数据时,时间戳精度很重要。

Measurement

_measurement 列显示 measurement 的名称, measurement 名称为字符串,充当标签、字段和时间戳的容器。使用measurement来描述你的数据。

Fields

字段包括存储在_field 列中的字段键和存储在_value 列中的字段值。

Field key

字段键是表示字段名称的字符串。 在上面的示例数据中,bees 和 ant 是字段键。

Field value

字段值表示关联字段的值。 字段值可以是字符串、浮点数、整数或布尔值。 示例数据中的字段值显示了指定时间的蜜蜂数量:23 和 28 以及指定时间的蚂蚁数量:30 和 32。

Field set

字段集是与时间戳关联的字段键值对的集合。 示例数据包括以下字段集:

字段未编入索引:InfluxDB 数据中需要字段且未编入索引。 过滤字段值的查询必须扫描所有字段值以匹配查询条件。 因此,对标签 > 的查询比对字段的查询性能更高。 将常用查询的元数据存储在标签中。

Tags

示例数据中的location和scientist是标签。 标签包括存储为字符串和元数据的标签键和标签值。

Tag key

样本数据中的标签键是location 和scientist。

Tag value

标签键位置有两个标签值:klamath 和 portland。 标签键scientlist也有两个标签值:anderson 和 mullen。

Tag set

标签键值对的集合构成了一个标签集。 示例数据包括以下四个标签集:

标签被索引:标签是可选的。 您的数据结构中不需要标签,但通常包含标签是个好主意。 因为标签被索引,标签查询比字段查询更快。 这使得标签非常适合存储常见查询的元数据。

包含 UUID、散列和随机字符串等高度可变信息的标签会导致数据库中出现大量唯一序列,称为高序列基数。 高系列基数是许多数据库工作负载高内存使用率的主要驱动因素。 有关更多信息,请参阅系列基数。

为什么你的schema很重要

如果您的大多数查询都关注字段中的值,例如,查询何时计算了 23 只蜜蜂:

InfluxDB 在查询返回响应之前扫描数据集中的每个字段值是否有蜜蜂。 如果我们的样本统计数据增长到数百万行,为了优化您的查询,您可以重新排列您的架构,使字段(蜜蜂和蚂蚁)成为标签,标签(位置和科学家)成为字段:

既然蜜蜂和蚂蚁是标签,InfluxDB 就不必扫描所有 _field 和 _value 列。 这使您的查询更快。

Bucket schema

在 InfluxDB Cloud 中,具有显式架构类型的存储桶需要为每个度量指定显式架构。 测量包含标签、字段和时间戳。 显式模式限制了可以写入该度量的数据的形状。

以下模式限制了统计数据:

Series

现在您已经熟悉了度量(measurements)、字段集(filed sets)和标签集(tag sets),是时候讨论系列键(series keys)和系列(series)了。 系列键是共享度量、标签集和字段键的点的集合。 例如,示例数据包括两个唯一的系列键:

系列包括给定系列键的时间戳和字段值。 从示例数据中,这是一个系列键和相应的系列:

在 InfluxDB 中设计架构和处理数据时,理解系列的概念至关重要。

Point

一个点包括系列键、字段值和时间戳。 例如,样本数据中的一个点如下所示:

Bucket

所有 InfluxDB 数据都存储在一个存储桶中。 存储桶结合了数据库和保留期(每个数据点持续存在的持续时间)的概念。 一个桶属于一个组织。 有关存储桶的更多信息,请参阅管理存储桶

Organization

InfluxDB 组织是一组用户的工作区。 所有仪表板、任务、存储桶和用户都属于一个组织。 有关组织的更多信息,请参阅管理组织

相关文章
|
关系型数据库 MySQL Java
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
353 0
|
1月前
|
存储 SQL Prometheus
图文解析带你精通时序PromQL语法
[阿里云SLS可观测团队发布] 本文通过图文解析深入讲解PromQL的计算原理,涵盖其与SQL的差异、时间线模型、选点机制、聚合函数、窗口函数及常见非预期场景,帮助用户掌握PromQL的核心语法与执行逻辑。
534 10
|
自然语言处理 前端开发 JavaScript
最好用的 8 款 React Datepicker 时间日期选择器测评推荐
React 时间日期选择器(date-timepicker)组件,与表单、富文本、表格、拖拽等组件一样,是大家用 React 搭建项目时使用最频繁的组件之一。React DateTimePicker 除了基础选择日期时间外,还有非常多样的功能配合不同场景使用,比如 12/24小时,禁止选择某些日期,高亮某些日期,夜间模式,多语言,酒店订单的特别场景等。本文记录了我自己使用多年最好用的 8 款 React DateTimePicker 组件,每一款都经过我实际测试,推荐给大家。
2123 0
最好用的 8 款 React Datepicker 时间日期选择器测评推荐
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
1586 1
|
存储 监控 关系型数据库
InfluxDB入门:基础概念解析
【4月更文挑战第30天】InfluxDB是开源时序数据库,擅长处理实时数据,常用于监控和分析。本文介绍了其基础概念:数据库(数据容器)、测量值(类似表)、字段(数据值)、标签(元数据)、时间戳和数据点。InfluxDB特性包括高性能写入、灵活查询(InfluxQL和Flux)、可扩展性及活跃社区支持。了解这些概念有助于更好地使用InfluxDB处理时间序列数据。
|
缓存 安全 Java
原子操作的实现原理
原子操作的实现原理
274 0
|
机器学习/深度学习 存储 分布式计算
未来趋势:探索GraphRAG在大规模异构网络环境下的挑战与机遇
【10月更文挑战第11天】随着互联网和物联网技术的快速发展,数据不仅数量庞大,而且类型多样,形成了复杂的大规模异构网络。这些网络中包含了不同类型的节点(如文本、图像、视频等)以及它们之间的多种关系。如何有效地处理这种大规模异构网络,以便进行内容理解与生成,是当前研究的一个热点问题。Graph Retrieval-Augmented Generation (GraphRAG) 框架作为一种新兴的方法,在这一领域展现出了巨大的潜力。本文将深入探讨GraphRAG的基础理论、构建方法,并分析其在未来大规模异构网络环境下的挑战与机遇。
789 3
|
存储 SQL 数据库
达梦(DM)数据库管理表
达梦(DM)数据库表管理
达梦(DM)数据库管理表
|
SQL 存储 关系型数据库
数据库的基本原理
数据库的基本原理
199 2