InfluxDB是一个由InfluxData开发的开源时序数据库,专为高性能地查询与存储时序数据而设计。以下是对InfluxDB基础操作的介绍:
一、数据库操作
- 创建数据库
使用CREATE DATABASE语句可以创建一个新的数据库。例如,创建一个名为example_db的数据库:
CREATE DATABASE example_db
- 显示所有数据库
使用SHOW DATABASES语句可以查看所有现有的数据库:
SHOW DATABASES
- 删除数据库
使用DROP DATABASE语句可以删除一个数据库。例如,删除名为example_db的数据库:
DROP DATABASE example_db
- 使用数据库
使用USE语句可以切换到指定的数据库。例如,切换到名为example_db的数据库:
USE example_db
二、数据表(Measurement)操作
InfluxDB中并没有表(table)的概念,而是使用Measurement来代替。Measurement的功能与传统数据库中的表一致。
- 显示所有Measurement
使用SHOW MEASUREMENTS语句可以查看当前数据库中的所有Measurement:
SHOW MEASUREMENTS
- 创建Measurement
InfluxDB中没有显式的新建Measurement的语句,只能通过插入数据的方式来建立新Measurement。例如,插入一条数据到名为temperature的Measurement中:
INSERT temperature,location=office value=22.5
其中,temperature是Measurement名,location是标签(tag),value是字段(field)值。
- 删除Measurement
使用DROP MEASUREMENT语句可以删除一个Measurement。例如,删除名为temperature的Measurement:
DROP MEASUREMENT temperature
三、数据操作
- 插入数据
插入数据的基本格式为:
INSERT <measurement>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]
例如,插入一条包含多个字段和标签的数据:
INSERT weather,altitude=1000,area=north temperature=20,humidity=60
- 查询数据
使用SELECT语句可以从Measurement中查询数据。例如,查询weatherMeasurement中的所有数据:
SELECT * FROM weather
可以使用WHERE子句来过滤数据。例如,查询altitude为1000的数据:
SELECT * FROM weather WHERE altitude=1000
可以使用GROUP BY子句来对数据进行分组。例如,按area分组并计算每个地区的平均温度:
SELECT MEAN(temperature) FROM weather GROUP BY area
- 删除数据
InfluxDB不直接支持删除特定数据点的操作。但是,可以通过删除整个Measurement或使用数据保留策略来间接删除数据。
四、数据保留策略(Retention Policy)
- 查看保留策略
使用SHOW RETENTION POLICIES语句可以查看当前数据库的保留策略:
SHOW RETENTION POLICIES ON example_db
- 创建保留策略
使用CREATE RETENTION POLICY语句可以创建一个新的保留策略。例如,创建一个名为one_week的保留策略,保留时间为7天:
CREATE RETENTION POLICY one_week ON example_db DURATION 7d REPLICATION 1 DEFAULT
- 修改保留策略
使用ALTER RETENTION POLICY语句可以修改现有的保留策略。例如,将one_week保留策略的默认状态更改为非默认:
ALTER RETENTION POLICY one_week ON example_db DEFAULT
注意:这里有一个错误,正确的应该是将某个其他保留策略设置为默认,或者删除DEFAULT关键字来取消默认状态。由于InfluxDB版本和具体语法的差异,请根据实际情况进行调整。
- 删除保留策略
使用DROP RETENTION POLICY语句可以删除一个保留策略。例如,删除名为one_week的保留策略:
DROP RETENTION POLICY one_week ON example_db
以上是对InfluxDB基础操作的介绍。请注意,InfluxDB的版本和具体语法可能会随着时间的推移而发生变化,因此建议查阅官方文档以获取最新的信息。