InfluxQL(Influx Query Language)是与InfluxDB紧密集成的一种SQL风格的语言,专为处理时间序列数据而设计。其基本语法结构清晰,方便开发者理解和实现。以下是对InfluxQL基本语法及常用聚合函数的简单介绍:
目录
一、基本语法
1. 基本概念
- Measurement(测量):在InfluxDB中,Measurement类似于传统关系型数据库中的表(Table),是数据的主要容器。
- Tag(标签):用于索引的元数据,以键值对(key-value)的形式存在,其中key和value都是字符串类型。
- Field(字段):存储实际的数据值,也以键值对的形式存在,但value可以是多种数据类型(如float、integer、string、boolean)。
- Point(点):由时间戳(Time)、一组Fields和一组Tags组成,是InfluxDB中存储数据的基本单位。
2. 数据类型
InfluxQL支持的基本数据类型包括:
- float:浮点型,默认的数据类型。
- integer:整型,在插入数据时需要在数值后加
i
来指定。 - string:字符串,需要用双引号将值括起来。
- boolean:布尔型,可以用
t
、T
、true
、True
、TRUE
表示真,用f
、F
、false
、False
、FALSE
表示假。
3. 基本操作
3.1 数据库操作
- 显示所有数据库:
SHOW DATABASES
- 使用数据库:
USE <database_name>
- 创建数据库:
CREATE DATABASE <database_name>
- 删除数据库:
DROP DATABASE <database_name>
3.2 数据写入
数据通过HTTP API或InfluxDB的命令行界面(CLI)写入。写入数据时,需要指定Measurement、Tags和Fields。
3.2.1. 通过HTTP API写入数据
在使用HTTP API写入数据时,你通常会发送一个POST请求到InfluxDB的/write
端点(注意:在新版本的InfluxDB中,如InfluxDB 2.x,API和写入方式可能有所不同,但这里以InfluxDB 1.x为例)。请求体中包含了你要写入的数据,这些数据按照特定的格式组织,包括Measurement、Tags和Fields。
示例:
假设我们有一个名为weather
的Measurement,我们想要记录某个城市(如location=us-midwest
)的温度(temperature
)和湿度(humidity
)。
curl -i -XPOST 'http://localhost:8