Influxdb 聚合函数sum()和count(Distinct())在influxsql中返回结果所需的时间超过分钟

Influxdb 聚合函数sum()和count(Distinct())在influxsql中返回结果所需的时间超过分钟,influxdb,influxdb-python,influxql,Influxdb,Influxdb Python,Influxql,我正在执行一个influxSQL查询,该查询将在1分钟以上返回结果。 查询: 单独的查询,如 select Count(Distinct(recipient_id)) as total_recipients from xyz where target_id = '1'; select SUM(call_duration) as total_duration from xyz where target_id = '1'; 返回也需要1分钟以上的时间 while查询 select MAX(cal

我正在执行一个influxSQL查询,该查询将在1分钟以上返回结果。 查询:

单独的查询,如

select Count(Distinct(recipient_id)) as total_recipients from xyz where target_id = '1';

select SUM(call_duration) as total_duration from xyz where target_id = '1';
返回也需要1分钟以上的时间

while查询

select MAX(call_duration), MIN(call_duration) from xyz where target_id = '1';
返回结果非常快,以秒为单位,如3-4秒

表(测量值)xyz非常大。有超过1000万条记录符合此条件。 呼叫持续时间和收件人id是字段,而目标id是标记

虽然最小和最大函数返回结果非常快,但我怀疑为什么求和需要更多的时间

XDB版本:1.7.4 机器配置-AWS EC2-t2.2中等(4 GB RAM)

配置文件:

[meta]
dir = "/var/lib/influxdb/meta"
[data]
dir = "/var/lib/influxdb/data"
wal-dir = "/var/lib/influxdb/wal"
series-id-set-cache-size = 100
[coordinator]
[retention]
[shard-precreation]
[monitor]
[http]
enabled = true
auth-enabled = true
log-enabled = true
access-log-path = "/var/log/influxdb/http_access.log"
write-tracing = false
max-body-size = 0
max-concurrent-write-limit = 0
[logging]
[subscriber]
[[graphite]]
[[collectd]]
[[opentsdb]]
[[udp]]
[continuous_queries]
[tls]
我认为结果应该在5-6秒内返回

EXPLAIN select MIN(call_duration) from xyz where target_id='1';
QUERY PLAN
----------
EXPRESSION: min(call_duration::float)
NUMBER OF SHARDS: 21
NUMBER OF SERIES: 85134
CACHED VALUES: 0
NUMBER OF FILES: 24642
NUMBER OF BLOCKS: 31608
SIZE OF BLOCKS: 65520278

EXPLAIN select MAX(call_duration) from xyz where target_id='1';
QUERY PLAN
----------
EXPRESSION: max(call_duration::float)
NUMBER OF SHARDS: 21
NUMBER OF SERIES: 85134
CACHED VALUES: 0
NUMBER OF FILES: 24642
NUMBER OF BLOCKS: 31608
SIZE OF BLOCKS: 65520278

EXPLAIN select SUM(call_duration) as total_call_duration from xyz where target_id='1';
QUERY PLAN
----------
EXPRESSION: sum(call_duration::float)
NUMBER OF SHARDS: 21
NUMBER OF SERIES: 85134
CACHED VALUES: 0
NUMBER OF FILES: 24642
NUMBER OF BLOCKS: 31608
SIZE OF BLOCKS: 65520278

EXPLAIN select Count(Distinct(recipient_id)) as total_recipients from xyz where target_id='1';
QUERY PLAN
----------
EXPRESSION: recipient_id::integer
NUMBER OF SHARDS: 21
NUMBER OF SERIES: 85134
CACHED VALUES: 0
NUMBER OF FILES: 24642
NUMBER OF BLOCKS: 31608
SIZE OF BLOCKS: 82448255

你能用“EXPLAIN”前缀发布每个查询的结果吗?@HardikSondagar添加了EXPLAIN results看起来InfluxDB(以及任何其他TSDB)不适合此任务,因为数据集不包含明确定义的时间序列-它包含具有各种属性的时间标记事件。对于此任务,分析数据库类将提供更好的性能(100倍或更多)。
EXPLAIN select MIN(call_duration) from xyz where target_id='1';
QUERY PLAN
----------
EXPRESSION: min(call_duration::float)
NUMBER OF SHARDS: 21
NUMBER OF SERIES: 85134
CACHED VALUES: 0
NUMBER OF FILES: 24642
NUMBER OF BLOCKS: 31608
SIZE OF BLOCKS: 65520278

EXPLAIN select MAX(call_duration) from xyz where target_id='1';
QUERY PLAN
----------
EXPRESSION: max(call_duration::float)
NUMBER OF SHARDS: 21
NUMBER OF SERIES: 85134
CACHED VALUES: 0
NUMBER OF FILES: 24642
NUMBER OF BLOCKS: 31608
SIZE OF BLOCKS: 65520278

EXPLAIN select SUM(call_duration) as total_call_duration from xyz where target_id='1';
QUERY PLAN
----------
EXPRESSION: sum(call_duration::float)
NUMBER OF SHARDS: 21
NUMBER OF SERIES: 85134
CACHED VALUES: 0
NUMBER OF FILES: 24642
NUMBER OF BLOCKS: 31608
SIZE OF BLOCKS: 65520278

EXPLAIN select Count(Distinct(recipient_id)) as total_recipients from xyz where target_id='1';
QUERY PLAN
----------
EXPRESSION: recipient_id::integer
NUMBER OF SHARDS: 21
NUMBER OF SERIES: 85134
CACHED VALUES: 0
NUMBER OF FILES: 24642
NUMBER OF BLOCKS: 31608
SIZE OF BLOCKS: 82448255