?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查詢語言的基礎框架,使得用戶能夠靈活地執行復雜的數據處理和分析操作。