influxdata / influxdata/influxdb-java

Does influxdb-java has limitation for the # of select queries in one query() call?

オープン
#930 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
Java
スター
1.2k
フォーク
469
PR マージ指標
30日以内にマージされた PR はありません

説明

# Environment
```
java 1.8
SpringBoot 2.4.3
SpringCloud 3.0.5
Influxdb-java 2.20
Influxdb 1.8
```

# Platform
```
client app: windows 10
influxdb server: centos 7
```

# Question
My influxdb database stores the data from May 2nd to May 5th, and the query string is as below, which contains 5 select:
```
SELECT metricsA FROM measurementA WHERE time >= '2023-05-02T10:10:30.78+08:00' AND time < '2023-05-20T08:20:30.78+08:00' AND ((uniqId = 'cadd3c08082f07740c459d4366b91002' AND sign=~/.*/) OR (uniqId = 'c0c0250e096735acc6b6dc341b47504a' AND sign=~/1.1|1.2/)) GROUP BY uniqId,sign tz('Etc/GMT-8');
SELECT metricsB FROM measurementB WHERE time >= '2023-05-02T10:10:30.78+08:00' AND time < '2023-05-20T08:20:30.78+08:00' AND ((uniqId = 'cadd3c08082f07740c459d4366b91002' AND sign=~/.*/) OR (uniqId = 'c0c0250e096735acc6b6dc341b47504a' AND sign=~/1.1|1.2/)) GROUP BY uniqId,sign tz('Etc/GMT-8');
SELECT metricsC,metricsD FROM measurementC WHERE time >= '2023-05-02T10:10:30.78+08:00' AND time < '2023-05-20T08:20:30.78+08:00' AND ((uniqId = 'cadd3c08082f07740c459d4366b91002' AND sign=~/.*/) OR (uniqId = 'c0c0250e096735acc6b6dc341b47504a' AND sign=~/1.1|1.2/)) GROUP BY uniqId,sign tz('Etc/GMT-8');
SELECT metricsE FROM measurementD WHERE time >= '2023-05-02T10:10:30.78+08:00' AND time < '2023-05-20T08:20:30.78+08:00' AND ((uniqId = 'cadd3c08082f07740c459d4366b91002') OR (uniqId = 'c0c0250e096735acc6b6dc341b47504a')) GROUP BY uniqId tz('Etc/GMT-8');
SELECT metricsF FROM measurementE WHERE time >= '2023-05-02T10:10:30.78+08:00' AND time < '2023-05-20T08:20:30.78+08:00' AND ((uniqId = 'cadd3c08082f07740c459d4366b91002' AND sign=~/.*/) OR (uniqId = 'c0c0250e096735acc6b6dc341b47504a' AND sign=~/1.1|1.2/)) GROUP BY uniqId,sign tz('Etc/GMT-8');
```
I'm calling InfluxDB.query() to execute it, but only the first 3 select query returns QueryResult. The Json format of QueryResult is:
```
"result":[
{
"series": [
{
"name": "measurementA",
"tags": {
"sign": "1.1",
"uniqId": "c0c0250e096735acc6b6dc341b47504a",
"IP": "4.4.4.4"
},
"columns": [
"time",
"PSUIn"
],
"values": [
[
"2023-05-03T08:04:00+08:00",
900.0
],
...
]
}
]
},
{...},
{...}
]
```

When I execute each select query seperately, they can all return QueryResults. And there is more, which is when I narrowed down the time range to { 2023-05-02T10:10:30.78+08:00 ---- 2023-05-04T10:10:30.78+08:00 } instead of { 2023-05-02T10:10:30.78+08:00 ---- 2023-05-20T08:20:30.78+08:00 }, it works just fine and gives all the results for 5 queries.

I had no clue why this happened. Is there any constrants for the number of select query in one query() call?

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず、両方の時間範囲で InfluxDB.query() を使用して 5 つのステートメントを再現し、返された QueryResult を、存在する場合はサーバーエラーおよびクライアントエラーと比較します。不足している結果が Java クライアントに起因するのか、InfluxDB の multi-statement 処理に起因するのかを確認します。制限要因となっているコンポーネントを特定し、再現可能な説明を文書化できれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
databases
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。