文档

使用InfluxQL探索您的模式

本页记录了InfluxDB OSS的早期版本。 InfluxDB OSS v2 是最新稳定版本。 查看等效的 InfluxDB v2 文档: 使用Flux探索您的数据模式

InfluxQL是一种类似于SQL的查询语言,用于与InfluxDB中的数据交互。以下部分涵盖了用于探索您的 模式 的有用查询语法。

SHOW DATABASESSHOW RETENTION POLICIESSHOW SERIES
SHOW MEASUREMENTSSHOW TAG KEYSSHOW TAG VALUES
SHOW FIELD KEYSSHOW CARDINALITY通过时间过滤元查询

示例数据

本文档中使用的数据可在 示例数据 页面上下载。

在继续之前,请登录Influx CLI。

$ influx -precision rfc3339
Connected to https://127.0.0.1:8086 version 1.11.7
InfluxDB shell 1.11.7
>

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 查询字符串参数指定数据库。

示例

使用 ON 子句运行 SHOW RETENTION POLICIES 查询

> SHOW RETENTION POLICIES ON NOAA_water_database

name      duration   shardGroupDuration   replicaN   default
----      --------   ------------------   --------   -------
autogen   0s         168h0m0s             1          true

查询以表格格式返回 NOAA_water_database 数据库中的保留策略列表。该数据库有一个名为 autogen 的保留策略。该 autogen 保留策略有无限 持续时间,七天 分片组持续时间,一个 复制因子,并且是数据库的 DEFAULT 保留策略。

不使用 ON 子句运行 SHOW RETENTION POLICIES 查询

使用 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 "https://127.0.0.1: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 <数据库名> 是可选的。如果查询中没有包含 ON <数据库名>,则必须在 CLI 中使用 USE <数据库名> 或者在 InfluxDB API 请求中使用 db 查询字符串参数来指定数据库。SHOW SERIES 只返回数据库默认保留策略中的系列,如果没有默认保留策略则失败。

FROMWHERELIMITOFFSET 子句都是可选的。WHERE 子句支持标签比较;对于 SHOW SERIES 查询,字段比较是无效的。

WHERE 子句中支持的操作符:= 等于 <> 不等于 != 不等于 =~ 匹配 !~ 不匹配

请参阅数据探索页面以获取有关 FROM 子句LIMIT 子句OFFSET 子句以及查询中的 正则表达式 的文档。

示例

运行带有 ON 子句的 SHOW SERIES 查询

// 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 "https://127.0.0.1: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 查询字符串参数指定数据库。

WITHWHERELIMITOFFSET 子句都是可选的。WHERE 子句支持标签比较;对于 SHOW MEASUREMENTS 查询,字段比较是无效的。

WHERE 子句中支持的操作符:= 等于 <> 不等于 != 不等于 =~ 匹配 !~ 不匹配

请参阅数据探索页面以获取有关 LIMIT 子句OFFSET 子句以及查询中的 正则表达式 的文档。

示例

运行带有 ON 子句的 SHOW MEASUREMENTS 查询

> SHOW MEASUREMENTS ON NOAA_water_database

name: measurements
name
----
average_temperature
h2o_feet
h2o_pH
h2o_quality
h2o_temperature

查询返回 NOAA_water_database 数据库中的测量列表。该数据库有五个测量:average_temperatureh2o_feeth2o_pHh2o_qualityh2o_temperature

运行不带 ON 子句的 SHOW MEASUREMENTS 查询

使用 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 "https://127.0.0.1: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

查询返回以 h2o 开头的 NOAA_water_database 数据库中的测量值。使用 LIMITOFFSET 子句将返回的测量名称数量限制为两个,并将结果偏移一个,跳过了 h2o_feet 测量值。

运行带有几个子句的 SHOW MEASUREMENTS 查询(ii)

> SHOW MEASUREMENTS ON NOAA_water_database WITH MEASUREMENT =~ /h2o.*/ WHERE "randtag"  =~ /\d/

name: measurements
name
----
h2o_quality

查询返回以 h2o 开头并且具有包含整数的 randtag 标签键值的 NOAA_water_database 中的所有测量值。

SHOW TAG KEYS

返回与指定 数据库 关联的 标签键 列表。

语法

SHOW TAG KEYS [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 查询字符串参数指定数据库。

FROM 子句和 WHERE 子句是可选的。WHERE 子句支持标签比较;对于 SHOW TAG KEYS 查询,字段比较是不有效的。

WHERE 子句中支持的操作符:= 等于 <> 不等于 != 不等于 =~ 匹配 !~ 不匹配

请参阅数据探索页面以获取有关 FROM 子句LIMIT 子句OFFSET 子句以及查询中的 正则表达式 的文档。

示例

带有 ON 子句运行 SHOW TAG KEYS 查询

> 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 标签键。

不带 ON 子句运行 SHOW TAG KEYS 查询

使用 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 "https://127.0.0.1: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 测量值的标签键。使用 LIMITOFFSET 子句将返回的标签键数量限制为一个,并将结果偏移一个。

SHOW 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>,则必须在 CLI 中使用 USE <database_name> 或在 InfluxDB API 请求中使用 db 查询字符串参数指定数据库。

需要 WITH 子句。它支持指定单个标签键、正则表达式和多个标签键。

FROMWHERELIMITOFFSET 子句是可选的。WHERE 子句支持标签比较;对于 SHOW TAG KEYS 查询,字段比较是不有效的。

WITHWHERE 子句中支持的运算符:= 等于 <> 不等于 != 不等于 =~ 匹配 !~ 不匹配

请参阅数据探索页面以获取有关 FROM 子句LIMIT 子句OFFSET 子句以及查询中的 正则表达式 的文档。

示例

带有 ON 子句运行 SHOW TAG VALUES 查询

> 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 按测量名称分组查询结果。

不带 ON 子句运行 SHOW TAG VALUES 查询

使用 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 "https://127.0.0.1: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

查询返回 NOAA_water_database 数据库中所有测量值的标签键 locationrandtag 的标签值,其中 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 返回的是以下列表中首先出现的类型:浮点数、整数、字符串、布尔。

示例

运行带有 ON 子句的 SHOW FIELD KEYS 查询

> 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 数据库中每个度量字段的键和值数据类型。

运行不带 ON 子句的 SHOW FIELD KEYS 查询

使用 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 "https://127.0.0.1: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 和字段类型差异

字段值 数据类型 在一个 分片中不能不同,但它们可以在分片之间不同。SHOW FIELD KEYS 返回与字段键关联的每个数据类型,跨越所有分片。

示例

all_the_types 字段存储了四种不同的数据类型

请注意,SHOW FIELD KEYS 处理字段类型差异的方式与 SELECT 语句不同。有关更多信息,请参阅 InfluxDB 如何处理分片之间的字段类型差异?

SHOW CARDINALITY

SHOW CARDINALITY 指的是用于估计或精确计数度量、系列、标签键、标签键值和字段键的基数的一组命令。

有关 SHOW CARDINALITY 命令的更多信息,请参阅 InfluxQL 参考条目

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。要了解更多关于分片及其持续时间的知识,请参阅 推荐的分片组持续时间

以下示例显示了如何使用 1 小时分片组持续时间过滤大约 1 小时的 SHOW TAG KEYS。要过滤其他元数据,将 SHOW TAG KEYS 替换为 SHOW TAG VALUESSHOW SERIESSHOW FIELD KEYS 等。

注意: SHOW MEASUREMENTS 不能按时间过滤。

按时间过滤 SHOW TAG KEYS 的示例

  1. 在新建数据库上指定分片持续时间或 修改现有分片持续时间。要在创建新数据库时指定 1 小时分片持续时间,请运行以下命令

    > CREATE database mydb with duration 7d REPLICATION 1 SHARD DURATION 1h name myRP;
    

    注意: 最小分片持续时间是 1 小时。

  2. 通过运行SHOW SHARDS命令来验证分片持续时间是否有正确的时间间隔(精度)。以下示例显示了具有小时精度的分片持续时间。

    > SHOW SHARDS
    name: mydb
    id database retention_policy shard_group start_time end_time expiry_time owners
    -- -------- ---------------- ----------- ---------- -------- ----------- ------
    > precision h
    
  3. (可选)插入示例标签键。此步骤仅用于演示目的。如果您已经有了要搜索的标签键(或其他元数据),则可跳过此步骤。

    // 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
    
  4. 要找到分片持续时间内的标签键,请运行以下命令之一

    SHOW TAG KEYS ON 数据库名 <WHERE 时间子句>

    SELECT * FROM measurement <WHERE 时间子句>

    以下示例使用步骤 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
    

这个页面有用吗?

感谢您的反馈!


Flux 的未来

Flux 将进入维护模式。您可以继续像现在一样使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB v3 增强功能和 InfluxDB 集群现在已普遍可用

新功能包括更快的查询性能和管理工具,推动 InfluxDB v3 产品线的进步。InfluxDB 集群现在已普遍可用。

InfluxDB v3 性能和功能

InfluxDB v3 产品线在查询性能方面取得了显著提升,并提供了新的管理工具。这些增强包括一个操作仪表板来监控您的 InfluxDB 集群的健康状况,InfluxDB 云专用中的单点登录(SSO)支持以及新的令牌和数据库管理 API。

了解新的 v3 增强功能


InfluxDB 集群普遍可用

InfluxDB 集群现在已普遍可用,为您在自管理堆栈中提供了 InfluxDB v3 的功能。

与我们谈谈 InfluxDB 集群