本文为博主原创,转载请注明出处:
1.登录influxdb
influx -username admin -password "password"
2.查看数据库
##查看有哪些数据库 show databases; ##选中数据库 use database_name;
3.查看表及表结构
##查看所有数据库表 show measurements; ##查看measurement_name有哪些 fields show field keys from measurement_name ##查看measurement_name有哪些tag show tag keys from measurement_name
4.建表并新增数据
InfluxDB 使用写入操作来自动创建表。当你向新的测量写入数据时,如果该测量不存在,则会自动创建一个新表。
insert tbname>,tags> values> [timestamp]
INSERT sensor_data,location=home,device_id=sensor001 temperature=25,humidity=50
上述写入操作将自动创建一个名为 sensor_data
的表,并将数据写入其中。
5.更新数据
在 InfluxDB 中,数据是不可变的,因此不能直接更新已有的数据点。如果要更改数据值,需要执行插入操作,并覆盖具有相同时间戳的数据。
假设要更新 sensor_data
测量中 temperature
字段的值为 26,可以执行以下操作:
INSERT sensor_data,location=home,device_id=sensor001 temperature=26,humidity=50
6.删除表与数据:
DROP MEASUREMENT measurement_name
根据过滤条件删除数据:
DELETE FROM sensor_data WHERE location='home' AND device_id='sensor001'
7.group by
在 InfluxDB 中,group by 只能用于对 tag 相关的字段进行分组,而不能对 field 字段进行分组。这是因为在 InfluxDB 的数据模型中,tag 是用来标识和过滤数据的元数据,而 field 则是实际存储数据的值。
在查询语句中,将 GROUP BY
关键字与适当的 tag 键名结合使用,以指定要分组的标签。
SELECT aggregate_function>(field_key>) FROM measurement_name> GROUP BY tag_key>
示例:
8.时间窗口
GROUP BY time(interval>)
9.查看tag得字段有哪些值
不可以使用distinct函数,distinct 函数可以对field生效,但对tag查询会失效
SHOW TAG VALUES FROM measurement WITH KEY = "location" WHERE time > now() - 1h
10.聚合函数
##最大值 SELECT SUM(field_key>) FROM measurement_name> [WHERE ] [GROUP BY ] ##平均值 SELECT MEAN(field_key>) FROM measurement_name> [WHERE ] [GROUP BY ] ##返回一个字段(field)的唯一值 SELECT DISTINCT(field_key>) FROM measurement_name> [WHERE ] [GROUP BY ] ##返回一个(field)字段中的非空值的数量 SELECT COUNT(field_key>) FROM measurement_name> [WHERE ] [GROUP BY ]
11.排序 order by time desc
influxdb 排序只能用于time 进行排序:升序:order by time asc,降序 order by time desc
select * from tableName order by time asc
12. FILL 数据空处理
给空数据赋予某个值,如下,给是空值的赋予0(可以赋予其它值,如-1、2),只能位于sql所有条件之后
select * from tableName fill(0)
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
作者简介: 邓正威(GitHub: @jasondeng1997):Apache Dubbo committer,seata-go 项目发起人,对云原生、中间件、容器等领域有浓厚兴趣,活跃在 Dubbo 和 seata 两个开源项目中,是分布式事务和rpc框架…