Influxdb v0.13をいじり始めましたが、テストデータベースにダミー値がいくつかあります。ここで、id
はタグで、value
はフィールドです。
> SELECT * FROM dummy
name: dummy
--------------
time id value
1468276508161069051 1234 12345
1468276539152853428 613 352
1468276543470535110 613 4899
1468276553853436191 1234 12
このクエリを実行しても結果が返されません。
> SELECT * FROM dummy WHERE id=1234
しかし、代わりにフィールドでクエリを実行すると、次のようになります。
> SELECT * FROM dummy WHERE value=12
name: dummy
--------------
time id value
1468276553853436191 1234 12
私はここで何か間違ったことをしていますか?タグのポイントは(インデックスが付けられており、フィールドはインデックス付けされていないため)クエリされると思いましたが、クエリが壊れているようです。
Influxは、挿入するすべてのタグキーと値を文字列として扱うようです。これは、公式ドキュメントに明らかに示されています。
参照: https://docs.influxdata.com/influxdb/v0.13/guides/writing_data/
ポイントを書き込むときは、dbqueryパラメーターで既存のデータベースを指定する必要があります。使用可能なクエリパラメータの完全なリストについては、「構文の書き込み」ページの「HTTP」セクションを参照してください。 POST-これをラインプロトコルと呼びます-には、保存する時系列データが含まれています。これらのデータは、測定値、タグ、フィールド、およびタイムスタンプで構成されます。InfluxDBには測定名。厳密に言えば、タグはオプションですが、ほとんどのシリーズには、データソースを区別し、クエリを簡単かつ効率的にするためのタグが含まれています。タグキーとタグ値はどちらも文字列です。
注:太字のテキスト。
したがって、タグキー値でフィルタリングするには、クエリを引用符で囲む必要があります。
例:
SELECT * FROM dummy WHERE id='1234'