問題タブ [influxql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
database - Influx の 2 つのテーブルからクエリ中に特定の行を取得する方法
以下の例では、Influx データベースにクエリを書き込もうとしました。
私は2つのテーブルを持っています:
行を取得するために 1 つのクエリを使用したい: ID 1 と 2 からtable_1
、ID 2 からtable_2
クエリ:
SELECT * FROM table_1, table_2 WHERE id=1 AND id=2
... すべてのデータを取得しています。
私は試しました:
SELECT * FROM table_1, table_2 WHERE table_1.id=1 AND id=2
...しかし、うまくいきません。
手伝ってくれてありがとう!
sql - InfluxDB データベースを編成する場合、これら 2 つのアプローチのどちらが最も好ましいでしょうか?
InfluxDB のデータベースで測定値をどのように編成するかを決定しようとしています (スキーマ設計とデータ レイアウトと呼ばれていると思います) が、これはより一般的なデータベース タイプの質問であると思います。
簡単な例として、居間と屋外の 2 つの場所で温度と湿度(想像上のものです!) の2 つの量を測定しているとしましょう。
InfluxDB には、データ ポイントを挿入するための構文があります。
測定、tag_key=tag_value field_key=field_value
したがって、(少なくとも私にとっては) 明らかな 2 つのオプションがあります。簡単に言えば、最初のオプションは次のようなデータポイントを挿入します。
一方、2 番目のオプションは次のようにします。
私の質問はより高レベルです:
- これについて優先/受け入れられる方法はありますか?
- より多くの数量/場所/データ タイプにスケールアップしようとすると、これらのいずれかで問題が発生しますか?
- たとえば、後でGrafanaでこれらのものをグラフ化しようとした場合、または後で多くのInfluxQL関数のいくつかを実装しようとした場合、いずれかの方法が利点を提供しますか?
- これに関する一般的なアドバイスはありますか?
私自身の考え:
オプション 1 は、InfluxDB の説明「測定」によって暗示されているものに似ているように思えます。温度と湿度は別の量です。しかし、それを単に「価値」と呼ぶのは少し不格好に思えます。
オプション 2 には、湿度と温度の両方がまったく同じタイムスタンプを共有するという利点があるようです。これは、たとえば、データを他のソフトウェアにインポートして 2 つの数量間の相関を行いたい場合に役立ちます。つまり、データを一致させるために補間やビニングを行う必要がないことを意味します。
オプション 2 でsensor_measurementsと呼ばれる一般的な測定値を取得するのが悪い考えであるかどうかはわかりませんが、後で維持するのは難しいでしょう。
詳細に:
オプション1
- 温度と湿度のそれぞれに個別の「測定」を行い、場所を「タグ」として使用し、「フィールド」に値として名前を付けるだけです。
時間t1で、データを挿入します。
時間t2で、いくつかの異なるデータを挿入します。
次に、次のクエリを実行して、居間の温度にアクセスできます。
group by 関数を使用して、次のようなこともできます。
オプション 2
- たとえば、 location に「タグ」を使用し、温度と湿度のそれぞれに個別の「フィールド」を使用します。
時間t1で、データを挿入します。
時間t2で、いくつかの異なるデータを挿入します。
次のクエリを実行することで、居間の温度にアクセスできるようになりました。
group by 関数を使用して、次のようなことができるようになりました。
influxdb - 論理 OR 条件を追加すると、InfluxDB は結果を返さない
時間とフィールド値の両方を条件として次の InfluxDB クエリを使用しようとしていますが、結果が返されません。
ただし、最後の条件を削除すると、測定値が返されます。
これは InfluxDB のバグですか、それとも何か間違っていますか? 時間条件とフィールド条件を組み合わせることができないことを示すドキュメントが見つかりません... 1.7 から 1.8 へのアップグレードを試みました。
これを自分で試すには:
influxql - 最後を除くInfluxDBクエリ
最後の値を除くすべての値を選択する InfluxQL クエリを作成する方法はありますか? Grafana での現在の InfluxDB クエリは次のようになります。