可以通过修改集群的资源分配来提高 Druid 查询速度。可调整的参数包括 queryCache ,segmentCache 和 server.maxSize 与 server.numThreads 等。具体配置请参考官方文档:https://druid.apache.org/docs/latest/configuration/index.html
默认情况下,Druid 集群使用 Quartz 管理任务调度,但 Quartz 线程池设置可能不够理想,限制了 Druid 的处理能力。您可以通过修改 Quartz 属性来优化 Druid 集群的性能。
优化查询条件将直接提高查询效率。建议增加索引,减少不必要的聚合和筛选条件。
示例:通过时间范围过滤,利用 segmentCache 和 queryCache 改善 Druid 查询性能。
{
"queryType": "timeseries",
"dataSource": "your_data_source",
"granularity": "HOUR",
"intervals": [
"2019-03-01T00:00:00.000/2019-03-03T00:00:00.000"
],
"aggregations": [
{
"type": "longSum",
"name": "your_field_name",
"fieldName": "your_field_name"
}
],
"filter": {
"type": "and",
"fields": [
{
"type": "selector",
"dimension": "your_time_dimension",
"value": "2019-03-01T00:00:00.000"
},
{
"type": "selector",
"dimension": "your_other_dimension",
"value": "some_value"
}
]
}
}
此查询仅返回一个小时的结果,因此 Druid 只需加载一个小型段,从 segmentCache 或 queryCache 中提取数据以加快查询速度。