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 truedb パラメーターを設定して、クエリ対象のデータベースを指定します
~# 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 パラメーターを設定して、クエリ対象のデータベースを指定する必要があります。
FROM、WHERE、LIMIT、および OFFSET 句もオプションです。SHOW SERIES クエリでは、フィールド比較はサポートされていません。WHERE 句では、次の表で説明する演算子を使用してタグを比較できます。
次の表は、WHERE 句で使用できる演算子について説明しています。
= | 等しい |
|---|---|
<> | 等しくない |
!= | 等しくない |
=~ | 一致する |
!~ | 一致しない |
正規表現、FROM、LIMIT、および 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_monicadb パラメーターを設定して、クエリ対象のデータベースを指定します
~# 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 パラメーターを設定して、クエリ対象のデータベースを指定する必要があります。
WITH、WHERE、LIMIT、および 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_temperature、h2o_feet、h2o_pH、h2o_quality、h2o_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_temperaturedb パラメーターを設定して、クエリ対象のデータベースを指定します
~# 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 句で使用できる演算子について説明しています。
= | 等しい |
|---|---|
<> | 等しくない |
!= | 等しくない |
=~ | 一致する |
!~ | 一致しない |
正規表現、FROM、LIMIT、および 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
------
locationdb パラメーターを設定して、クエリ対象のデータベースを指定します
~# 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 つ以上のタグキーを指定できます。
FROM、WHERE、LIMIT、および OFFSET 句はオプションです。SHOW TAG VALUES クエリでは、フィールド比較はサポートされていません。WHERE 句では、次の表で説明する演算子を使用してタグを比較できます。
次の表は、WITH 句と WHERE 句で使用できる演算子について説明しています。
= | 等しい |
|---|---|
<> | 等しくない |
!= | 等しくない |
=~ | 一致する |
!~ | 一致しない |
正規表現、FROM、LIMIT、および 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 3db パラメーターを設定して、クエリ対象のデータベースを指定します
~# 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 floatdb パラメーターを設定して、クエリ対象のデータベースを指定します
~# 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 booleanSHOW FIELD KEYS ステートメントは、SELECT ステートメントとは異なる方法でフィールド値のデータ型の違いを処理します。詳細については、「FAQ」のトピックをご参照ください。
InfluxDB® は InfluxData によって登録された商標であり、InfluxDB® 用 TSDB とは提携しておらず、推奨もしていません。