文档文档

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

示例

使用 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 保留策略具有无限持续时间,七天的分片组持续时间复制因子为 1,并且它是数据库的 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 <database_name> 是可选的。如果查询不包含 ON <database_name>,则必须在 CLI 中使用 USE <database_name> 或在 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

查询的输出类似于 Line Protocol 格式。第一个逗号之前的所有内容都是指标名称。第一个逗号之后的所有内容都是标签键标签值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

该查询返回 NOAA_water_database 数据库中与 h2o_quality 指标和标签 location = coyote_creek 关联的所有序列。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

该查询返回 NOAA_water_database 数据库中以 h2o 开头的指标。LIMITOFFSET 子句将返回的指标名称数量限制为两个,并将结果偏移一个,跳过 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] [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 将返回以下列表中首先出现的类型:float、integer、string、boolean。

示例

使用 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

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 参考条目

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 小时的分片组持续时间按大约一小时过滤 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 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
    

此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

InfluxDB 3 开源版现已发布公开 Alpha 版本

InfluxDB 3 开源版现已可用于 Alpha 测试,并根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版本的一部分。

InfluxDB 3 Core 是我们的全新开源产品。它是用于时间序列和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可伸缩性和细粒度的安全性。

有关如何入门的更多信息,请查看