すべてのプロダクト
Search
ドキュメントセンター

Time Series Database:スキーマ探索

最終更新日:Jan 14, 2025

InfluxQL は、InfluxDB® 用 TSDB に格納されているデータに対して操作を実行するために使用できる SQL のような言語です。次のセクションでは、スキーマのクエリに使用できる InfluxQL 構文について説明します。

SHOW DATABASES

SHOW RETENTION POLICIES

SHOW SERIES

SHOW MEASUREMENTS

SHOW TAG KEYS

SHOW TAG VALUES

SHOW FIELD KEYS

-

-

説明

このトピックで使用されているサンプルデータをダウンロードするには、[サンプルデータ] をご参照ください。

サンプルデータ

スキーマのクエリを開始する前に、Influx CLI にログオンします。

$ influx -precision rfc3339
Connected to http://localhost:8086 version 1.7.x
InfluxDB shell 1.7.x
>

重要

データベース情報のクエリやデータベースに対する操作の実行には、[時系列データベース (TSDB)] コンソールを使用することをお勧めします。

SHOW DATABASES

アカウントにクエリ権限があるすべてのデータベースを返します。

SHOW DATABASES

SHOW DATABASES クエリを実行する

> SHOW DATABASES

name: databases
name
----
NOAA_water_database
_internal

上記のクエリは、データベースの名前を表形式で返します。アカウントには、NOAA_water_database データベースと _internal データベースに対するクエリ権限があります。

SHOW RETENTION POLICIES

指定されたデータベースのデータ保持ポリシーを返します。

SHOW RETENTION POLICIES [ON <database_name>]

構文の説明

ON <database_name> 句はオプションです。クエリに ON <database_name> が含まれていない場合は、Influx CLI で USE <database_name> ステートメントを実行するか、HTTP API リクエストで db パラメーターを設定して、クエリ対象のデータベースを指定する必要があります。

例 1: ON <database_name> 句を含む SHOW RETENTION POLICIES クエリを実行する

> SHOW RETENTION POLICIES ON NOAA_water_database

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

上記のクエリは、NOAA_water_database データベースの保持ポリシーを表形式で返します。クエリのレスポンスは、データベースに autogen という名前の保持ポリシーが 1 つだけあることを示しています。 autogen は、データベースの DEFAULT 保持ポリシーです。この保持ポリシーは、無限の期間、7 日間のシャードグループ期間、およびレプリケーション係数 1 を持ちます。

例 2: ON <database_name> 句を含まない 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 "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> が含まれていない場合は、Influx CLI で USE <database_name> ステートメントを実行するか、HTTP API リクエストで db パラメーターを設定して、クエリ対象のデータベースを指定する必要があります。

FROMWHERELIMIT、および OFFSET 句もオプションです。SHOW SERIES クエリでは、フィールド比較はサポートされていません。WHERE 句では、次の表で説明する演算子を使用してタグを比較できます。

次の表は、WHERE 句で使用できる演算子について説明しています。

=

等しい

<>

等しくない

!=

等しくない

=~

一致する

!~

一致しない

正規表現、FROMLIMIT、および OFFSET 句の詳細については、「データ探索」の章をご参照ください。

例 1: ON <database_name> 句を含む SHOW SERIES クエリを実行する

> 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 データベースに 5 つの異なるメジャーメントと 14 の異なる系列があることを示しています。

例 2: ON <database_name> 句を含まない 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"
                        ]
                    ]
                }
            ]
        }
    ]
}

例 3: 複数の句を含む 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 句は、返される系列の数を 2 に制限します。

SHOW MEASUREMENTS

指定されたデータベースのメジャーメントを返します。

構文

SHOW MEASUREMENTS [ON <database_name>] [WITH MEASUREMENT <regular_expression>] [WHERE <tag_key> <operator> ['<tag_value>' | <regular_expression>]] [LIMIT_clause] [OFFSET_clause]

構文の説明

ON <database_name> 句はオプションです。クエリに ON <database_name> が含まれていない場合は、Influx CLI で USE <database_name> ステートメントを実行するか、HTTP API リクエストで db パラメーターを設定して、クエリ対象のデータベースを指定する必要があります。

WITHWHERELIMIT、および OFFSET 句はオプションです。SHOW MEASUREMENTS クエリでは、フィールド比較はサポートされていません。WHERE 句では、次の表で説明する演算子を使用してタグを比較できます。

次の表は、WHERE 句で使用できる演算子について説明しています。

=

等しい

<>

等しくない

!=

等しくない

=~

一致する

!~

一致しない

正規表現、LIMIT、および OFFSET 句の詳細については、「データ探索」の章をご参照ください。

例 1: ON <database_name> 句を含む SHOW MEASUREMENTS クエリを実行する

> SHOW MEASUREMENTS ON NOAA_water_database

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

上記のクエリは、NOAA_water_database データベースのメジャーメントを返します。NOAA_water_database データベースには、average_temperatureh2o_feeth2o_pHh2o_qualityh2o_temperature というメジャーメントがあります。

例 2: ON <database_name> 句を含まない 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 "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"
                          ]
                      ]
                  }
              ]
          }
      ]
  }

例 3: 複数の句を含む 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 句は、返されるメジャーメントの数を 2 に制限します。OFFSET 句は h2o_feet をスキップします。クエリは、h2o_feet の後に表示される最初の 2 つのメジャーメントを返します。

例 4: 複数の句を含む SHOW MEASUREMENTS クエリを実行する (ii)

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

name: measurements
name
----
h2o_quality

上記のクエリは、NOAA_water_database データベースで、指定された要件を満たすメジャーメントを返します。要件の 1 つは、メジャーメント名が h2o で始まる必要があることです。もう 1 つの要件は、randtag タグの値に少なくとも 1 つの整数が含まれている必要があることです。

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> が含まれていない場合は、Influx CLI で USE <database_name> ステートメントを実行するか、HTTP API リクエストで db パラメーターを設定して、クエリ対象のデータベースを指定する必要があります。

FROM 句と WHERE 句はオプションです。SHOW TAG KEYS クエリでは、フィールド比較はサポートされていません。WHERE 句では、次の表で説明する演算子を使用してタグを比較できます。

次の表は、WHERE 句で使用できる演算子について説明しています。

=

等しい

<>

等しくない

!=

等しくない

=~

一致する

!~

一致しない

正規表現、FROMLIMIT、および OFFSET 句の詳細については、「データ探索」の章をご参照ください。

例 1: ON <database_name> 句を含む 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 と location の 2 つのタグキーがあります。

例 2: ON <database_name> 句を含まない 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 "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"
                        ]
                    ]
                }
            ]
        }
    ]
}

例 3: 複数の句を含む 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 句は、返されるタグキーの数を 1 に制限します。OFFSET 句は最初のメジャーメントをスキップします。

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> が含まれていない場合は、Influx CLI で USE <database_name> ステートメントを実行するか、HTTP API リクエストで db パラメーターを設定して、クエリ対象のデータベースを指定する必要があります。

WITH 句は必須です。WITH 句には、1 つの正規表現または 1 つ以上のタグキーを指定できます。

FROMWHERELIMIT、および OFFSET 句はオプションです。SHOW TAG VALUES クエリでは、フィールド比較はサポートされていません。WHERE 句では、次の表で説明する演算子を使用してタグを比較できます。

次の表は、WITH 句と WHERE 句で使用できる演算子について説明しています。

=

等しい

<>

等しくない

!=

等しくない

=~

一致する

!~

一致しない

正規表現、FROMLIMIT、および OFFSET 句の詳細については、「データ探索」の章をご参照ください。

例 1: ON <database_name> 句を含む 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 は、メジャーメント名に基づいて結果をグループ化します。

例 2: ON <database_name> 句を含まない 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 "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"
                        ]
                    ]
                }
            ]
        }
    ]
}

例 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 データベースのメジャーメントの指定された要件を満たすタグ値を返します。要件は、タグキーが location または randtag である必要があり、randtag タグキーの値は NULL 値であってはなりません。LIMIT 句は、返されるタグ値の数を 3 に制限します。

SHOW FIELD KEYS

フィールドキーとフィールド値のデータ型を返します。

構文

SHOW FIELD KEYS [ON <database_name>] [FROM <measurement_name>]

構文の説明

ON <database_name> 句はオプションです。クエリに ON <database_name> が含まれていない場合は、Influx CLI で USE <database_name> ステートメントを実行するか、HTTP API リクエストで db パラメーターを設定して、クエリ対象のデータベースを指定する必要があります。

FROM 句もオプションです。FROM 句の詳細については、「データ探索」の章をご参照ください。

説明

注: フィールド値のデータ型は、シャードによって異なる場合があります。複数のデータ型が返される場合、SHOW FIELD KEYS ステートメントは FLOAT、INTEGER、STRING、BOOLEAN の順序に基づいて結果を返します。

例 1: ON <database_name> 句を含む 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 データベースの各メジャーメントから、フィールドキーとフィールド値のデータ型を返します。

例 2: ON <database_name> 句を含まない 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 "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"
                        ]
                    ]
                }
            ]
        }
    ]
}

例 3: 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 に関する FAQSHOW FIELD KEYS

質問 1: SHOW FIELD KEYS とフィールド値のデータ型の違い

フィールド値のデータ型は、シャード内で同じである必要があります。フィールド値のデータ型は、シャードによって異なる場合があります。SHOW FIELD KEYS ステートメントは、各シャードのフィールドキーに関連付けられたフィールド値のデータ型を返します。

次のコードブロックは、all_the_types フィールドに 4 つのデータ型が格納されていることを示しています。

> 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 ステートメントとは異なる方法でフィールド値のデータ型の違いを処理します。詳細については、「FAQ」のトピックをご参照ください。

InfluxDB® は InfluxData によって登録された商標であり、InfluxDB® 用 TSDB とは提携しておらず、推奨もしていません。