使用InfluxQL探索您的模式
InfluxQL是一种类似SQL的查询语言,用于与InfluxDB中的数据交互。以下部分涵盖了用于探索您的schema的有用查询语法。
| 显示数据库 | 显示保留策略 | 显示系列 |
| 显示测量 | 显示标签键 | 显示标签值 |
| 显示字段键 | 按时间过滤元查询 |
示例数据
本文档中使用的数据可以在示例数据页面下载。
在继续之前,请登录到Influx CLI。
$ influx -precision rfc3339
Connected to http://localhost:8086 version 1.11.8
InfluxDB shell 1.11.8
>
SHOW DATABASES
返回您实例上所有数据库的列表。
语法
SHOW DATABASES
示例
运行一个 SHOW DATABASES 查询
> SHOW DATABASES
name: databases
name
----
NOAA_water_database
_internal
查询以表格格式返回数据库名称。
这个InfluxDB实例有两个数据库: NOAA_water_database 和 _internal。
SHOW RETENTION POLICIES
语法
SHOW RETENTION POLICIES [ON <database_name>]
语法描述
ON <database_name> 是可选的。 如果查询不包括 ON <database_name>,则必须在 CLI 中使用 USE <database_name> 指定数据库,或者在 InfluxDB API 请求中使用 db 查询字符串参数。
示例
运行一个 SHOW RETENTION POLICIES 查询,带有 ON 子句
> SHOW RETENTION POLICIES ON NOAA_water_database
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 true
查询返回数据库 NOAA_water_database 中保留策略的列表,以表格格式显示。
该数据库有一个保留策略,称为 autogen。
autogen 保留策略具有无限的 duration,
七天的 shard group duration,
一个 replication factor
,并且它是数据库的 DEFAULT 保留策略。
运行一个 SHOW RETENTION POLICIES 查询,而不使用 ON 子句
使用 USE <database_name> 指定数据库
> USE NOAA_water_database
Using database NOAA_water_database
> SHOW RETENTION POLICIES
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 true
使用 db 查询字符串参数指定数据库:
~# curl -G "http://localhost:8086/query?db=NOAA_water_database&pretty=true" --data-urlencode "q=SHOW RETENTION POLICIES"
{
"results": [
{
"statement_id": 0,
"series": [
{
"columns": [
"name",
"duration",
"shardGroupDuration",
"replicaN",
"default"
],
"values": [
[
"autogen",
"0s",
"168h0m0s",
1,
true
]
]
}
]
}
]
}
SHOW SERIES
语法
SHOW SERIES [ON <database_name>] [FROM_clause] [WHERE <tag_key> <operator> [ '<tag_value>' | <regular_expression>]] [LIMIT_clause] [OFFSET_clause]
语法描述
ON <database_name> 是可选的。
如果查询不包括 ON <database_name>,您必须在 CLI 中使用 USE <database_name> 指定数据库,或在 InfluxDB API 请求中使用 db 查询字符串参数。
SHOW SERIES 仅返回数据库默认保留策略中的系列,如果没有默认保留策略,则会失败。
来自 FROM , WHERE , LIMIT 和 OFFSET 子句是可选的。 WHERE 子句支持标签比较;字段比较在 SHOW SERIES 查询中无效。
在 WHERE 子句中支持的运算符:
= 等于
<> 不等于
!= 不等于
=~ 匹配
!~ 不匹配
请参阅数据探索页面以获取有关
FROM 子句,
LIMIT 子句,
OFFSET 子句,
以及 查询中的正则表达式 的文档。
示例
运行一个 SHOW SERIES 查询与 ON 子句
// Returns series for all shards in the database and default retention policy
> SHOW SERIES ON NOAA_water_database
key
---
average_temperature,location=coyote_creek
average_temperature,location=santa_monica
h2o_feet,location=coyote_creek
h2o_feet,location=santa_monica
h2o_pH,location=coyote_creek
h2o_pH,location=santa_monica
h2o_quality,location=coyote_creek,randtag=1
h2o_quality,location=coyote_creek,randtag=2
h2o_quality,location=coyote_creek,randtag=3
h2o_quality,location=santa_monica,randtag=1
h2o_quality,location=santa_monica,randtag=2
h2o_quality,location=santa_monica,randtag=3
h2o_temperature,location=coyote_creek
h2o_temperature,location=santa_monica
查询的输出类似于行协议格式。 第一个逗号之前的内容是测量名称。 第一个逗号之后的内容是标签键或标签值。 NOAA_water_database有五个不同的测量和14个不同的系列。
在没有 ON 子句的情况下运行 SHOW SERIES 查询
使用 USE <database_name> 指定数据库
> USE NOAA_water_database
Using database NOAA_water_database
> SHOW SERIES
key
---
average_temperature,location=coyote_creek
average_temperature,location=santa_monica
h2o_feet,location=coyote_creek
h2o_feet,location=santa_monica
h2o_pH,location=coyote_creek
h2o_pH,location=santa_monica
h2o_quality,location=coyote_creek,randtag=1
h2o_quality,location=coyote_creek,randtag=2
h2o_quality,location=coyote_creek,randtag=3
h2o_quality,location=santa_monica,randtag=1
h2o_quality,location=santa_monica,randtag=2
h2o_quality,location=santa_monica,randtag=3
h2o_temperature,location=coyote_creek
h2o_temperature,location=santa_monica
使用 db 查询字符串参数指定数据库:
~# curl -G "http://localhost:8086/query?db=NOAA_water_database&pretty=true" --data-urlencode "q=SHOW SERIES"
{
"results": [
{
"statement_id": 0,
"series": [
{
"columns": [
"key"
],
"values": [
[
"average_temperature,location=coyote_creek"
],
[
"average_temperature,location=santa_monica"
],
[
"h2o_feet,location=coyote_creek"
],
[
"h2o_feet,location=santa_monica"
],
[
"h2o_pH,location=coyote_creek"
],
[
"h2o_pH,location=santa_monica"
],
[
"h2o_quality,location=coyote_creek,randtag=1"
],
[
"h2o_quality,location=coyote_creek,randtag=2"
],
[
"h2o_quality,location=coyote_creek,randtag=3"
],
[
"h2o_quality,location=santa_monica,randtag=1"
],
[
"h2o_quality,location=santa_monica,randtag=2"
],
[
"h2o_quality,location=santa_monica,randtag=3"
],
[
"h2o_temperature,location=coyote_creek"
],
[
"h2o_temperature,location=santa_monica"
]
]
}
]
}
]
}
运行一个 SHOW SERIES 查询,带有多个子句
> SHOW SERIES ON NOAA_water_database FROM "h2o_quality" WHERE "location" = 'coyote_creek' LIMIT 2
key
---
h2o_quality,location=coyote_creek,randtag=1
h2o_quality,location=coyote_creek,randtag=2
查询返回与h2o_quality测量和标签location = coyote_creek相关的NOAA_water_database数据库中的所有系列。LIMIT子句将返回的系列数量限制为两个。
运行一个 SHOW SERIES 查询,时间有限制
限制在指定分片组持续时间内返回的系列。
// Returns all series in the current shard.
> SHOW SERIES ON NOAA_water_database WHERE time > now() - 1m
key
---
average_temperature,location=coyote_creek
h2o_feet,location=coyote_creek
h2o_pH,location=coyote_creek
h2o_quality,location=coyote_creek,randtag=1
h2o_quality,location=coyote_creek,randtag=2
h2o_quality,location=coyote_creek,randtag=3
h2o_temperature,location=coyote_creek
上述查询返回当前分片组中 NOAA_water_database 数据库的所有序列。WHERE 子句将结果限制为包含在最后一分钟内的时间戳的分片组中的序列。请注意,如果分片组的持续时间为7天,则返回的结果可能长达7天。
// Returns all series in shard groups that contain a timestamp in the last 28 days.
> SHOW SERIES ON NOAA_water_database WHERE time > now() - 28d
key
---
average_temperature,location=coyote_creek
average_temperature,location=santa_monica
h2o_feet,location=coyote_creek
h2o_feet,location=santa_monica
h2o_pH,location=coyote_creek
h2o_pH,location=santa_monica
h2o_quality,location=coyote_creek,randtag=1
h2o_quality,location=coyote_creek,randtag=2
h2o_quality,location=coyote_creek,randtag=3
h2o_quality,location=santa_monica,randtag=1
h2o_quality,location=santa_monica,randtag=2
h2o_quality,location=santa_monica,randtag=3
h2o_temperature,location=coyote_creek
h2o_temperature,location=santa_monica
注意,如果指定的分片组持续时间为7天,则上述查询将返回最近3个或4个分片的系列。
SHOW MEASUREMENTS
语法
SHOW MEASUREMENTS [ON <database_name>] [WITH MEASUREMENT <operator> ['<measurement_name>' | <regular_expression>]] [WHERE <tag_key> <operator> ['<tag_value>' | <regular_expression>]] [LIMIT_clause] [OFFSET_clause]
语法描述
ON <database_name> 是可选的。 如果查询不包括 ON <database_name>,则必须在 CLI 中使用 USE <database_name> 指定数据库,或者在 InfluxDB API 请求中使用 db 查询字符串参数。
WITH、WHERE、LIMIT 和 OFFSET 子句是可选的。WHERE 子句支持标签比较;字段比较在 SHOW MEASUREMENTS 查询中无效。
在 WHERE 子句中支持的运算符:
= 等于
<> 不等于
!= 不等于
=~ 匹配
!~ 不匹配
请参阅数据探索页面以获取关于
LIMIT 子句,
OFFSET 子句,
以及关于查询中的正则表达式的文档。
示例
运行一个 SHOW MEASUREMENTS 查询,使用 ON 子句
> SHOW MEASUREMENTS ON NOAA_water_database
name: measurements
name
----
average_temperature
h2o_feet
h2o_pH
h2o_quality
h2o_temperature
查询返回 NOAA_water_database 数据库中的测量列表。数据库有五个测量: average_temperature, h2o_feet, h2o_pH, h2o_quality, 和 h2o_temperature。
运行一个 SHOW MEASUREMENTS 查询而不使用 ON 子句
使用 USE <database_name> 指定数据库
> USE NOAA_water_database
Using database NOAA_water_database
> SHOW MEASUREMENTS
name: measurements
name
----
average_temperature
h2o_feet
h2o_pH
h2o_quality
h2o_temperature
使用 db 查询字符串参数指定数据库:
~# curl -G "http://localhost:8086/query?db=NOAA_water_database&pretty=true" --data-urlencode "q=SHOW MEASUREMENTS"
{
{
"results": [
{
"statement_id": 0,
"series": [
{
"name": "measurements",
"columns": [
"name"
],
"values": [
[
"average_temperature"
],
[
"h2o_feet"
],
[
"h2o_pH"
],
[
"h2o_quality"
],
[
"h2o_temperature"
]
]
}
]
}
]
}
运行一个 SHOW MEASUREMENTS 查询,带有多个子句 (i)
> SHOW MEASUREMENTS ON NOAA_water_database WITH MEASUREMENT =~ /h2o.*/ LIMIT 2 OFFSET 1
name: measurements
name
----
h2o_pH
h2o_quality
查询返回的测量值来自 NOAA_water_database 数据库,
以 h2o 开头。
LIMIT 和 OFFSET 子句将返回的测量名称数量限制为
两个,并将结果偏移一个,跳过 h2o_feet 测量。
运行一个 SHOW MEASUREMENTS 查询,带有多个条件 (ii)
> SHOW MEASUREMENTS ON NOAA_water_database WITH MEASUREMENT =~ /h2o.*/ WHERE "randtag" =~ /\d/
name: measurements
name
----
h2o_quality
查询返回所有在 NOAA_water_database 中,以 h2o 开头并且标签键 randtag 的值包含整数的测量。
SHOW TAG KEYS
语法
SHOW TAG KEYS [ON <database_name>] [FROM_clause] WITH KEY [ [<operator> "<tag_key>" | <regular_expression>] | [IN ("<tag_key1>","<tag_key2")]] [WHERE <tag_key> <operator> ['<tag_value>' | <regular_expression>]] [LIMIT_clause] [OFFSET_clause]
语法描述
ON <database_name> 是可选的。 如果查询不包括 ON <database_name>,则必须在 CLI 中使用 USE <database_name> 指定数据库,或者在 InfluxDB API 请求中使用 db 查询字符串参数。
FROM 子句和 WHERE 子句是可选的。 WHERE 子句支持标签比较;字段比较对于 SHOW TAG KEYS 查询是无效的。
在 WHERE 子句中支持的运算符:
= 等于
<> 不等于
!= 不等于
=~ 匹配
!~ 不匹配
请参阅数据探索页面以获取有关
FROM 子句,
LIMIT 子句,
OFFSET 子句,
以及 查询中的正则表达式 的文档。
示例
运行一个 SHOW TAG KEYS 查询与 ON 子句
> SHOW TAG KEYS ON "NOAA_water_database"
name: average_temperature
tagKey
------
location
name: h2o_feet
tagKey
------
location
name: h2o_pH
tagKey
------
location
name: h2o_quality
tagKey
------
location
randtag
name: h2o_temperature
tagKey
------
location
查询返回 NOAA_water_database 数据库中的标签键列表。
输出按测量名称对标签键进行分组;
这表明每个测量都有 location 标签键,并且 h2o_quality 测量还有一个额外的 randtag 标签键。
运行一个 SHOW TAG KEYS 查询而不使用 ON 子句
使用 USE <database_name> 指定数据库
> USE NOAA_water_database
Using database NOAA_water_database
> SHOW TAG KEYS
name: average_temperature
tagKey
------
location
name: h2o_feet
tagKey
------
location
name: h2o_pH
tagKey
------
location
name: h2o_quality
tagKey
------
location
randtag
name: h2o_temperature
tagKey
------
location
使用 db 查询字符串参数指定数据库:
~# curl -G "http://localhost:8086/query?db=NOAA_water_database&pretty=true" --data-urlencode "q=SHOW TAG KEYS"
{
"results": [
{
"statement_id": 0,
"series": [
{
"name": "average_temperature",
"columns": [
"tagKey"
],
"values": [
[
"location"
]
]
},
{
"name": "h2o_feet",
"columns": [
"tagKey"
],
"values": [
[
"location"
]
]
},
{
"name": "h2o_pH",
"columns": [
"tagKey"
],
"values": [
[
"location"
]
]
},
{
"name": "h2o_quality",
"columns": [
"tagKey"
],
"values": [
[
"location"
],
[
"randtag"
]
]
},
{
"name": "h2o_temperature",
"columns": [
"tagKey"
],
"values": [
[
"location"
]
]
}
]
}
]
}
运行一个 SHOW TAG KEYS 查询,带有多个子句
> SHOW TAG KEYS ON "NOAA_water_database" FROM "h2o_quality" LIMIT 1 OFFSET 1
name: h2o_quality
tagKey
------
randtag
查询返回来自NOAA_water_database数据库中h2o_quality测量的标签键。LIMIT和OFFSET子句将返回的标签键数量限制为一个,并将结果偏移一个。
运行一个 SHOW TAG KEYS 查询,带有 WITH KEY IN 子句
> SHOW TAG KEYS ON "telegraf" WITH KEY IN ("host","region")
"measurement","tagKey"
"cpu","host"
"cpu_load_short","host"
"cpu_load_short","region"
"disk","host"
"diskio","host"
"docker","host"
"docker_container_blkio","host"
"docker_container_cpu","host"
"docker_container_mem","host"
"docker_container_status","host"
SHOW TAG VALUES
返回指定数据库中tag key(s)的tag values列表。
语法
SHOW TAG VALUES [ON <database_name>][FROM_clause] WITH KEY [ [<operator> "<tag_key>" | <regular_expression>] | [IN ("<tag_key1>","<tag_key2")]] [WHERE <tag_key> <operator> ['<tag_value>' | <regular_expression>]] [LIMIT_clause] [OFFSET_clause]
语法描述
ON <database_name> 是可选的。 如果查询不包括 ON <database_name>,您必须通过 USE <database_name> 在 CLI 中或在 InfluxDB API 请求中的 db 查询字符串参数来指定数据库。
需要使用WITH子句。
它支持指定单个标签键、正则表达式和多个标签键。
FROM、WHERE、LIMIT 和 OFFSET 子句是可选的。
WHERE 子句支持标签比较;字段比较在 SHOW TAG KEYS 查询中无效。
在 WITH 和 WHERE 子句中支持的运算符:
= 等于
<> 不等于
!= 不等于
=~ 匹配
!~ 不匹配
请参阅数据探索页面以获取有关
FROM 子句,
LIMIT 子句,
OFFSET 子句,
以及 查询中的正则表达式 的文档。
示例
运行一个 SHOW TAG VALUES 查询,带有 ON 子句
> SHOW TAG VALUES ON "NOAA_water_database" WITH KEY = "randtag"
name: h2o_quality
key value
--- -----
randtag 1
randtag 2
randtag 3
查询返回 NOAA_water_database 数据库中 randtag 标签键的所有标签值。SHOW TAG VALUES 根据测量名称对查询结果进行分组。
运行一个 SHOW TAG VALUES 查询,没有 ON 子句
使用 USE <database_name> 指定数据库
> USE NOAA_water_database
Using database NOAA_water_database
> SHOW TAG VALUES WITH KEY = "randtag"
name: h2o_quality
key value
--- -----
randtag 1
randtag 2
randtag 3
使用 db 查询字符串参数指定数据库:
~# curl -G "http://localhost:8086/query?db=NOAA_water_database&pretty=true" --data-urlencode 'q=SHOW TAG VALUES WITH KEY = "randtag"'
{
"results": [
{
"statement_id": 0,
"series": [
{
"name": "h2o_quality",
"columns": [
"key",
"value"
],
"values": [
[
"randtag",
"1"
],
[
"randtag",
"2"
],
[
"randtag",
"3"
]
]
}
]
}
]
}
运行一个 SHOW TAG VALUES 查询,带有多个子句
> SHOW TAG VALUES ON "NOAA_water_database" WITH KEY IN ("location","randtag") WHERE "randtag" =~ /./ LIMIT 3
name: h2o_quality
key value
--- -----
location coyote_creek
location santa_monica
randtag 1
查询返回所有测量值中标签键 location 和 randtag 的标签值,这些测量值位于 NOAA_water_database 数据库中,其中 randtag 具有标签值。LIMIT 子句将返回的标签值数量限制为三个。
SHOW FIELD KEYS
语法
SHOW FIELD KEYS [ON <database_name>] [FROM <measurement_name>]
语法描述
ON <database_name> 是可选的。 如果查询不包括 ON <database_name>,则必须在 CLI 中使用 USE <database_name> 指定数据库,或者在 InfluxDB API 请求中使用 db 查询字符串参数。
该 FROM 子句也是可选的。 查看数据探索页面以获取关于FROM 子句的文档。
注意: 字段的数据类型 可以不同 跨 分片。 如果您的字段有多个类型,
SHOW FIELD KEYS将返回以下列表中 首先出现的类型:float, integer, string, boolean。
示例
运行一个 SHOW FIELD KEYS 查询,并使用 ON 子句
> SHOW FIELD KEYS ON "NOAA_water_database"
name: average_temperature
fieldKey fieldType
-------- ---------
degrees float
name: h2o_feet
fieldKey fieldType
-------- ---------
level description string
water_level float
name: h2o_pH
fieldKey fieldType
-------- ---------
pH float
name: h2o_quality
fieldKey fieldType
-------- ---------
index float
name: h2o_temperature
fieldKey fieldType
-------- ---------
degrees float
该查询返回NOAA_water_database数据库中每个测量的字段键和字段值数据类型。
运行一个 SHOW FIELD KEYS 查询而不使用 ON 子句
使用 USE <database_name> 指定数据库
> USE NOAA_water_database
Using database NOAA_water_database
> SHOW FIELD KEYS
name: average_temperature
fieldKey fieldType
-------- ---------
degrees float
name: h2o_feet
fieldKey fieldType
-------- ---------
level description string
water_level float
name: h2o_pH
fieldKey fieldType
-------- ---------
pH float
name: h2o_quality
fieldKey fieldType
-------- ---------
index float
name: h2o_temperature
fieldKey fieldType
-------- ---------
degrees float
使用 db 查询字符串参数指定数据库:
~# curl -G "http://localhost:8086/query?db=NOAA_water_database&pretty=true" --data-urlencode 'q=SHOW FIELD KEYS'
{
"results": [
{
"statement_id": 0,
"series": [
{
"name": "average_temperature",
"columns": [
"fieldKey",
"fieldType"
],
"values": [
[
"degrees",
"float"
]
]
},
{
"name": "h2o_feet",
"columns": [
"fieldKey",
"fieldType"
],
"values": [
[
"level description",
"string"
],
[
"water_level",
"float"
]
]
},
{
"name": "h2o_pH",
"columns": [
"fieldKey",
"fieldType"
],
"values": [
[
"pH",
"float"
]
]
},
{
"name": "h2o_quality",
"columns": [
"fieldKey",
"fieldType"
],
"values": [
[
"index",
"float"
]
]
},
{
"name": "h2o_temperature",
"columns": [
"fieldKey",
"fieldType"
],
"values": [
[
"degrees",
"float"
]
]
}
]
}
]
}
使用 FROM 子句运行 SHOW FIELD KEYS 查询
> SHOW FIELD KEYS ON "NOAA_water_database" FROM "h2o_feet"
name: h2o_feet
fieldKey fieldType
-------- ---------
level description string
water_level float
查询返回 NOAA_water_database 数据库中 h2o_feet 测量的字段键和字段值数据类型。
关于 SHOW FIELD KEYS 的常见问题
显示字段键和字段类型差异
字段值
数据类型
在 分片 内不能不同,但它们
可以在不同的分片之间有所不同。
SHOW FIELD KEYS 返回与
字段键相关的每个数据类型,跨越每个分片。
示例
字段 all_the_types 存储四种不同的数据类型:
> SHOW FIELD KEYS
name: mymeas
fieldKey fieldType
-------- ---------
all_the_types integer
all_the_types float
all_the_types string
all_the_types boolean
请注意,SHOW FIELD KEYS 在处理字段类型差异时与SELECT语句的处理方式不同。更多信息,请参阅InfluxDB如何处理跨分片的字段类型差异?。
SHOW CARDINALITY
SHOW CARDINALITY 指的是用于估计或准确计算测量、系列、标签键、标签键值和字段键基数的一组命令。
有关 SHOW CARDINALITY 命令的更多信息,请参见 InfluxQL reference entry。
SHOW FIELD KEY CARDINALITY
-- show estimated cardinality of the field key set of current database
SHOW FIELD KEY CARDINALITY
-- show exact cardinality on field key set of specified database
SHOW FIELD KEY EXACT CARDINALITY ON mydb
SHOW MEASUREMENT KEY CARDINALITY
-- show estimated cardinality of measurement set on current database
SHOW MEASUREMENT CARDINALITY
-- show exact cardinality of measurement set on specified database
SHOW MEASUREMENT EXACT CARDINALITY ON mydb
SHOW SERIES CARDINALITY
-- show estimated cardinality of the series on current database
SHOW SERIES CARDINALITY
-- show estimated cardinality of the series on specified database
SHOW SERIES CARDINALITY ON mydb
-- show exact series cardinality
SHOW SERIES EXACT CARDINALITY
-- show series cardinality of the series on specified database
SHOW SERIES EXACT CARDINALITY ON mydb
SHOW TAG KEY CARDINALITY
-- show estimated tag key cardinality
SHOW TAG KEY CARDINALITY
-- show exact tag key cardinality
SHOW TAG KEY EXACT CARDINALITY
SHOW TAG VALUES CARDINALITY
-- show estimated tag key values cardinality for a specified tag key
SHOW TAG VALUES CARDINALITY WITH KEY = "myTagKey"
-- show estimated tag key values cardinality for a specified tag key
SHOW TAG VALUES CARDINALITY WITH KEY = "myTagKey"
-- show exact tag key values cardinality for a specified tag key
SHOW TAG VALUES EXACT CARDINALITY WITH KEY = "myTagKey"
-- show exact tag key values cardinality for a specified tag key
SHOW TAG VALUES EXACT CARDINALITY WITH KEY = "myTagKey"
按时间过滤元查询
当您按时间过滤元查询时,您可能会看到超出指定时间的结果。元查询结果在分片级别进行过滤,因此结果的颗粒度大致可以与您的分片组持续时间相当。如果您的时间过滤跨越多个分片,您将获得指定时间范围内所有分片的结果。要查看您的分片和分片点的时间戳,请运行 SHOW SHARDS。要了解有关分片及其持续时间的更多信息,请参见 推荐的分片组持续时间。
下面的示例显示了如何使用 1h 分片组持续时间过滤 SHOW TAG KEYS 大约一小时。要过滤其他元数据,将 SHOW TAG KEYS 替换为 SHOW TAG VALUES、SHOW SERIES、SHOW FIELD KEYS 等等。
注意:
SHOW MEASUREMENTS不能通过时间来过滤。
按时间过滤 SHOW TAG KEYS 示例
在新数据库上指定分片持续时间或 更改现有分片持续时间。要在创建新数据库时指定1小时的分片持续时间,请运行以下命令:
> CREATE database mydb with duration 7d REPLICATION 1 SHARD DURATION 1h name myRP;注意: 最小分片持续时间为1小时。
通过运行
SHOW SHARDS命令来验证分片持续时间是否具有正确的时间间隔(精度)。下面的示例显示了一个具有小时精度的分片持续时间。> SHOW SHARDS name: mydb id database retention_policy shard_group start_time end_time expiry_time owners -- -------- ---------------- ----------- ---------- -------- ----------- ------ > precision h(可选) 插入示例标签键。此步骤仅用于演示。如果您已经有要搜索的标签键(或其他元数据),请跳过此步骤。
// Insert a sample tag called "test_key" into the "test" measurement, and then check the timestamp: > INSERT test,test_key=hello value=1 > select * from test name: test time test_key value ---- -------- ----- 434820 hello 1 // Add new tag keys with timestamps one, two, and three hours earlier: > INSERT test,test_key_1=hello value=1 434819 > INSERT test,test_key_2=hello value=1 434819 > INSERT test,test_key_3_=hello value=1 434818 > INSERT test,test_key_4=hello value=1 434817 > INSERT test,test_key_5_=hello value=1 434817要在分片持续时间内查找标签键,请运行以下命令之一:
SHOW TAG KEYS ON database-name <WHERE time clause>或SELECT * FROM measurement <WHERE time clause>下面的示例使用步骤3中的测试数据。
//Using data from Step 3, show tag keys between now and an hour ago > SHOW TAG KEYS ON mydb where time > now() -1h and time < now() name: test tagKey ------ test_key test_key_1 test_key_2 // Find tag keys between one and two hours ago > SHOW TAG KEYS ON mydb where > time > now() -2h and time < now()-1h name: test tagKey ------ test_key_1 test_key_2 test_key_3 // Find tag keys between two and three hours ago > SHOW TAG KEYS ON mydb where > time > now() -3h and time < now()-2h name: test tagKey ------ test_key_3 test_key_4 test_key_5 // For a specified measurement, find tag keys in a given shard by specifying the time boundaries of the shard > SELECT * FROM test WHERE time >= '2019-08-09T00:00:00Z' and time < '2019-08-09T10:00:00Z' name: test time test_key_4 test_key_5 value ---- ------------ ------------ ----- 434817 hello 1 434817 hello 1 // For a specified database, find tag keys in a given shard by specifying the time boundaries of the shard > SHOW TAG KEYS ON mydb WHERE time >= '2019-08-09T00:00:00Z' and time < '2019-08-09T10:00:00Z' name: test tagKey ------ test_key_4 test_key_5