时序数据库influxdb怎么查找field为null的数据。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了时序数据库influxdb怎么查找field为null的数据。相关的知识,希望对你有一定的参考价值。

想查找field为null的数据,和统计它们的个数。但是写的语句并不能正确找出来
我写的语句是:select count(*) from table where column = null
和 select * from table where column = null
其中table为measurement名称,column为field名称。
结果都是空的,啥都查不出来。

参考技术A select field, count(field)fcount from table where column is null group by field

时序数据库InfluxDB

在系统服务部署过后,线上运行服务的稳定性是系统好坏的重要体现,监控系统状态至关重要,经过调研了解,时序数据库influxDB在此方面表现优异。

influxDB介绍

时间序列数据是以时间字段为每行数据的标示,比如股票市场的价格,环境中的温度,主机的CPU使用率等。但是又有什么数据是不包含timestamp的呢?几乎所有的数据都可以打上一个timestamp字段。时间序列数据更重要的一个属性是如何去查询它。在查询的时候,对于时间序列我们总是会带上一个时间范围去过滤数据。同时查询的结果里也总是会包含timestamp字段。
InfluxDB 是一个开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。
它有三大特性:

  1. Time Series (时间序列):你可以使用与时间有关的相关函数(如最大,最小,求和等)

  2. Metrics(度量):你可以实时对大量数据进行计算

  3. Eevents(事件):它支持任意的事件数据
    特点:

  • schemaless(无结构),可以是任意数量的列

  • min, max, sum, count, mean, median 一系列函数,方便统计

  • Native HTTP API, 内置http支持,使用http读写

  • Powerful Query Language 类似sql

操作介绍

远程连接

1
influx -host xx.xx.xx.xx -port xxxx(默认8086) -username xx -password xx -database xx


创建及使用数据库

1
2
3
create database "test"; --创建数据库
show databases;  --查看数据库
use test; --选取数据库


增删改查

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
SHOW MEASUREMENTS  --查询当前数据库中含有的表
SHOW FIELD KEYS --查看当前数据库所有表的字段
SHOW series from pay --查看key数据
SHOW TAG KEYS FROM "pay" --查看key中tag key值
SHOW TAG VALUES FROM "pay" WITH KEY = "merId" --查看key中tag 指定key值对应的值
SHOW TAG VALUES FROM cpu WITH KEY IN ("region", "host") WHERE service = ‘redis‘
DROP SERIES FROM <measurement_name[,measurement_name]> WHERE <tag_key>=‘<tag_value>‘ --删除key
SHOW CONTINUOUS QUERIES   --查看连续执行命令
SHOW QUERIES  --查看最后执行命令
KILL QUERY <qid> --结束命令
SHOW RETENTION POLICIES ON mydb  --查看保留数据
查询数据
SELECT * FROM /.*/ LIMIT 1  --查询当前数据库下所有表的第一行记录
select * from pay  order by time desc limit 2
select * from  db_name."POLICIES name".measurement_name --指定查询数据库下数据保留中的表数据 POLICIES name数据保留
删除数据
delete from "query" --删除表所有数据,则表就不存在了
drop MEASUREMENT "query"   --删除表(注意会把数据保留删除使用delete不会)
DELETE FROM cpu
DELETE FROM cpu WHERE time < ‘2000-01-01T00:00:00Z‘
DELETE WHERE time < ‘2000-01-01T00:00:00Z‘
DROP DATABASE “testDB” --删除数据库
DROP RETENTION POLICY "dbbak" ON mydb --删除保留数据为dbbak数据
DROP SERIES from pay where tag_key=‘‘ --删除key中的tag

SHOW SHARDS  --查看数据存储文件
DROP SHARD 1
SHOW SHARD GROUPS
SHOW SUBSCRIPTIONS


6、数据保留命令

查看保留期 SHOW RETENTION POLICIES ON mydb

修改保留期 ALTER RETENTION POLICY default ON online DEFAULT

删除保留期 DROP RETENTION POLICY <retentionpolicy> ON <database>

创建保留期 REATE RETENTION POLICY "rp_name" ON "db_name" DURATION 30d REPLICATION 1 DEFAULT

rp_name:策略名

db_name:具体的数据库名

30d:保存30天,30天之前的数据将被删除

它具有各种时间参数,比如:h(小时),w(星期)m minutes h hours d days w weeks INF infinite

REPLICATION 1:副本个数,这里填1就可以了

DEFAULT设为默认的策略


目前,我们已经influxdb+grafana应用到数据库监控、Kafka数据流监控、服务页面数据统计监控等,炫酷的页面给你不一样的体验,试试吧!

关注微信公众号:正版乔,和我一起探索日常的编程乐趣~

 

推荐阅读:




一个学统计的程序员

喜欢Coding

喜欢硬件

喜欢树莓派

喜欢深度学习

喜欢你


















































































以上是关于时序数据库influxdb怎么查找field为null的数据。的主要内容,如果未能解决你的问题,请参考以下文章

180726-InfluxDB基本概念小结

influxdb插入语句怎么自动区分表名,tag,field,

时序数据库InfluxDB

时序数据库InfluxDB(I)- 搭建与采集信息demo操作

influxDB

Spring Boot中使用时序数据库InfluxDB