InfluxDB v2.x中的Flux查询语言的核心概念主要包括以下几个方面:
1. 表(Tables)
- Flux以表(Tables)的形式处理数据。每个表包含多行数据,每行数据都是一个record(记录),包含了数据点的时间戳、测量值、字段和标签等信息。
- 表是Flux查询的基本单位,查询的结果通常也是以表的形式返回。
2. 记录(Records)
- 记录(Records)是表中的一行数据,包含了时间戳(
_time
)、测量值(_measurement
)、字段(_field
)和标签(tags)等信息。 - 每个记录都代表了时间序列数据中的一个具体数据点。
3. 管道(Pipelines)
- Flux使用管道(Pipelines)来组织查询逻辑。管道由一系列通过管道转发操作符(
|>
)连接的函数组成。 - 数据从管道的一端流入,经过每个函数的处理后,再流向管道的下一端。
4. 函数(Functions)
- Flux提供了丰富的函数库,用于执行各种数据处理和分析操作。
- 这些函数可以对表进行过滤、转换、聚合等操作,以生成所需的查询结果。
5. 组键(Group Keys)
- 组键(Group Keys)用于描述表的内容。它是一个列列表,表中的每一行都具有相同的组键值。
- 组键有助于在查询过程中对数据进行分组和聚合。
6. 数据源(Data Sources)
- Flux查询的数据来源于InfluxDB的存储桶(Buckets)。在查询时,需要指定数据源(即存储桶)和查询的时间范围。
7. 时间范围(Time Ranges)
- Flux查询可以指定时间范围,以限制查询结果中的时间戳范围。
- 时间范围可以是相对时间(如"最近一小时")或绝对时间(如"2023-01-01T00:00:00Z至2023-01-02T00:00:00Z")。
8. 数据模式(Data Schema)
- 在InfluxDB v2.x中,存储桶(Buckets)可以具有明确的schema-type,需要为每个度量指定显式架构。
- 这限制了可以写入该度量的数据的形状,提高了数据的一致性和可查询性。
9. 标签(Tags)和字段(Fields)
- 标签(Tags)和字段(Fields)是InfluxDB中用于存储数据的关键元素。
- 标签用于索引和过滤数据,而字段则用于存储实际的数值数据。
10. 数据保留(Retention)
- 存储桶(Buckets)具有数据保留期(Retention Period),用于指定数据在InfluxDB中的保留时间。
- 超过保留期的数据将被自动删除,以释放存储空间。
11. Flux Engine
- Flux Engine是InfluxDB v2.x中的新数据存储引擎,它支持高并发写入和高效查询。
- Flux Engine与Flux查询语言紧密集成,提供了更好的性能和扩展性。
综上所述,Flux查询语言的核心概念包括表、记录、管道、函数、组键、数据源、时间范围、数据模式、标签和字段、数据保留以及Flux Engine等。这些概念共同构成了Flux查询语言的基础框架,使得用户能够灵活地执行复杂的数据处理和分析操作。