content/shared/influxdb-v2/query-data/influxql/explore-schema.md
Use InfluxQL to explore the schema of your time series data. Use the following InfluxQL commands to explore your schema:
{{% note %}} Command examples use the NOAA water sample data. {{% /note %}}
Return a list of series for the specified database.
SHOW SERIES [ON <database_name>] [FROM_clause] [WHERE <tag_key> <operator> [ '<tag_value>' | <regular_expression>]] [LIMIT_clause] [OFFSET_clause]
ON <database_name> is optional.
If the query does not include ON <database_name>, you must specify the
database with the db query string parameter in the
InfluxDB API request.
FROM, WHERE, LIMIT, and OFFSET clauses are optional.
The WHERE clause in SHOW SERIES supports tag comparisons but not field comparisons.
Supported operators in the WHERE clause:
=: equal to<>: not equal to!=: not equal to=~: matches against!~: doesn't match againstSee Explore data using InfluxQL for documentation on the
FROM clause,
LIMIT clause,
OFFSET clause,
and Regular Expressions.
SHOW SERIES ON noaa
Output:
The query returns all series in the noaa database.
The query's output is similar to the line protocol format.
Everything before the first comma is the measurement name.
Everything after the first comma is either a tag key or a tag value.
The noaa database has 5 different measurements and 13 different 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 |
SHOW SERIES ON noaa FROM "h2o_quality" WHERE "location" = 'coyote_creek' LIMIT 2
Output:
The query returns all series in the noaa database that are
associated with the h2o_quality measurement and the tag location = coyote_creek.
The LIMIT clause limits the number of series returned to two.
| key |
|---|
| h2o_quality,location=coyote_creek,randtag=1 |
| h2o_quality,location=coyote_creek,randtag=2 |
Returns a list of measurements for the specified database.
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> is optional.
If the query does not include ON <database_name>, you must specify the
database with the db query string parameter in the
InfluxDB API request.
The WITH, WHERE, LIMIT and OFFSET clauses are optional.
The WHERE in SHOW MEASUREMENTS supports tag comparisons, but not field comparisons.
Supported operators in the WHERE clause:
= : equal to<>: not equal to!=: not equal to=~: matches against!~: doesn't match againstSee Explore data using InfluxQL for documentation on the
FROM clause,
LIMIT clause,
OFFSET clause,
and Regular Expressions.
SHOW MEASUREMENTS ON noaa
Output:
The query returns the list of measurements in the noaa database.
The database has five measurements: average_temperature, h2o_feet, h2o_pH,
h2o_quality, and h2o_temperature.
| name |
|---|
| average_temperature |
| h2o_feet |
| h2o_pH |
| h2o_quality |
| h2o_temperature |
SHOW MEASUREMENTS ON noaa WITH MEASUREMENT =~ /h2o.*/ LIMIT 2 OFFSET 1
Output:
The query returns the measurements in the noaa database that start with h2o.
The LIMIT and OFFSET clauses limit the number of measurement names returned to
two and offset the results by one, skipping the h2o_feet measurement.
| name |
|---|
| h2o_pH |
| h2o_quality |
SHOW MEASUREMENTS ON noaa WITH MEASUREMENT =~ /h2o.*/ WHERE "randtag" =~ /\d/
The query returns all measurements in the noaa that start with h2o and have
values for the tag key randtag that include an integer.
| name |
|---|
| h2o_quality |
Returns a list of tag keys associated with the specified database.
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> is optional.
If the query does not include ON <database_name>, you must specify the
database with db query string parameter in the InfluxDB API request.
The FROM clause and the WHERE clause are optional.
The WHERE clause in SHOW TAG KEYS supports tag comparisons, but not field comparisons.
Supported operators in the WHERE clause:
= : equal to<>: not equal to!=: not equal to=~: matches against!~: doesn't match againstSee Explore data using InfluxQL for documentation on the
FROM clause,
LIMIT clause,
OFFSET clause,
and Regular Expressions.
SHOW TAG KEYS ON noaa
Output:
The query returns the list of tag keys in the noaa database.
The output groups tag keys by measurement name;
it shows that every measurement has the location tag key and that the
h2o_quality measurement has an additional randtag tag key.
| name | tagKey |
|---|---|
| average_temperature | location |
| h2o_feet | location |
| h2o_pH | location |
| h2o_quality | location |
| h2o_quality | randtag |
| h2o_temperature | location |
SHOW TAG KEYS ON noaa FROM "h2o_quality" LIMIT 1 OFFSET 1
Output:
The query returns tag keys from the h2o_quality measurement in the noaa database.
The LIMIT and OFFSET clauses limit the number of tag keys returned to one
and offsets the results by one.
| name | tagKey |
|---|---|
| h2o_quality | randtag |
SHOW TAG KEYS ON noaa WITH KEY IN ("location")
Output:
| measurement | tagKey |
|---|---|
| average_temperature | location |
| h2o_feet | location |
| h2o_pH | location |
| h2o_quality | location |
| h2o_quality | randtag |
| h2o_temperature | location |
Returns the list of tag values for the specified tag key(s) in the database.
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> is optional.
If the query does not include ON <database_name>, you must specify the
database with the db query string parameter in the InfluxDB API request.
The WITH clause is required.
It supports specifying a single tag key, a regular expression, and multiple tag keys.
The FROM, WHERE, LIMIT, and OFFSET clauses are optional.
The WHERE clause in SHOW TAG KEYS supports tag comparisons, but not field comparisons.
Supported operators in the WITH and WHERE clauses:
= : equal to<>: not equal to!=: not equal to=~: matches against!~: doesn't match againstSee Explore data using InfluxQL for documentation on the
FROM clause,
LIMIT clause,
OFFSET clause,
and Regular Expressions.
SHOW TAG VALUES ON noaa WITH KEY = "randtag"
Output:
The query returns all tag values of the randtag tag key in the noaa database.
SHOW TAG VALUES groups query results by measurement name.
{{% influxql/table-meta %}} name: h2o_quality {{% /influxql/table-meta %}}
| key | value |
|---|---|
| randtag | 1 |
| randtag | 2 |
| randtag | 3 |
SHOW TAG VALUES query with several clausesSHOW TAG VALUES ON noaa WITH KEY IN ("location","randtag") WHERE "randtag" =~ /./ LIMIT 3
Output:
The query returns the tag values of the tag keys location and randtag for
all measurements in the noaa database where randtag has tag values.
The LIMIT clause limits the number of tag values returned to three.
{{% influxql/table-meta %}} name: h2o_quality {{% /influxql/table-meta %}}
| key | value |
|---|---|
| location | coyote_creek |
| location | santa_monica |
| randtag | 1 |
Returns the field keys and the data type of their field values.
SHOW FIELD KEYS [ON <database_name>] [FROM <measurement_name>]
ON <database_name> is optional.
If the query does not include ON <database_name>, you must specify the
database with USE <database_name> when using the InfluxQL shell
or with the db query string parameter in the
InfluxDB 1.x compatibility API request.FROM clause is optional.
See the Data Exploration page for documentation on the
FROM clause.{{% note %}}
Note: A field's data type can differ across
shards.
If your field has more than one type, SHOW FIELD KEYS returns the type that
occurs first in the following list: float, integer, string, boolean.
{{% /note %}}
SHOW FIELD KEYS ON noaa
Output:
The query returns the field keys and field value data types for each
measurement in the noaa database.
| name | fieldKey | fieldType |
|---|---|---|
| average_temperature | degrees | float |
| h2o_feet | level description | string |
| h2o_feet | water_level | float |
| h2o_pH | pH | float |
| h2o_quality | index | float |
| hh2o_temperature | degrees | float |
SHOW FIELD KEYS ON noaa FROM h2o_feet
Output:
The query returns the fields keys and field value data types for the h2o_feet
measurement in the noaa database.
| name | fieldKey | fieldType |
|---|---|---|
| h2o_feet | level description | string |
| h2o_feet | water_level | float |
Field value data types
cannot differ within a shard but they
can differ across shards.
SHOW FIELD KEYS returns every data type, across every shard, associated with
the field key.
The all_the_types field stores four different data types:
SHOW FIELD KEYS
{{% influxql/table-meta %}} name: mymeas {{% /influxql/table-meta %}}
| fieldKey | fieldType |
|---|---|
| all_the_types | integer |
| all_the_types | float |
| all_the_types | string |
| all_the_types | boolean |
Note that SHOW FIELD KEYS handles field type discrepancies differently from
SELECT statements.
For more information, see the
How does InfluxDB handle field type discrepancies across shards?.
Cardinality is the product of all unique databases, retention policies, measurements, field keys and tag values in your Influx instance. Managing cardinality is important, as high cardinality leads to greater resource usage.
-- 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 noaa
-- show estimated tag key cardinality
SHOW TAG KEY CARDINALITY
-- show exact tag key cardinality
SHOW TAG KEY EXACT CARDINALITY