Apache Druid REST API文档:所有端点与参数详解
Apache Druid提供了全面的REST API,用于管理集群、提交查询、监控状态等核心操作。本文详细介绍所有API端点的功能、参数和使用示例,帮助用户快速掌握Druid的API交互能力。
API概览
Druid的API主要分为HTTP API和Java API两大类,涵盖数据查询、任务管理、集群监控等功能模块。完整API索引可参考官方API文档。
核心API分类
- 数据查询:SQL查询、原生JSON查询
- 任务管理:任务提交、状态查询、终止操作
- 集群监控:服务状态、节点健康检查
- 数据管理:段生命周期、保留规则配置
- 动态配置:Coordinator/Overlord运行时参数调整
数据查询API
SQL查询端点
提交SQL查询
- URL:
POST /druid/v2/sql - 功能: 执行SQL查询并返回结果
- 请求体参数:
query: SQL查询字符串(必填)resultFormat: 结果格式(object/array/csv等,默认object)context: 查询上下文参数(如sqlQueryId手动指定查询ID)
示例请求:
{
"query": "SELECT COUNT(*) FROM wikipedia WHERE user = 'BlueMoon2662'",
"resultFormat": "array",
"context": {"sqlQueryId": "request01"}
}
响应示例:
[["__time","count"],[1442017673259,1]]
取消查询
- URL:
DELETE /druid/v2/sql/{sqlQueryId} - 功能: 终止指定ID的运行中查询
原生查询端点
- URL:
POST /druid/v2 - 功能: 提交JSON格式的原生查询(如Timeseries、TopN等)
- 请求体: 符合原生查询规范的JSON对象
任务管理API
任务操作端点
获取任务列表
- URL:
GET /druid/indexer/v1/tasks - 查询参数:
state: 任务状态过滤(running/complete/waiting)datasource: 按数据源过滤createdTimeInterval: 创建时间区间(ISO-8601格式,如2023-06-01_2023-06-30)
响应示例:
[
{
"id": "index_parallel_wikipedia_2023-06-01",
"status": "SUCCESS",
"dataSource": "wikipedia",
"duration": 12500
}
]
终止任务
- URL:
POST /druid/indexer/v1/task/{taskId}/shutdown - 功能: 强制终止指定ID的任务
数据管理API
段生命周期管理
标记段为未使用
- URL:
DELETE /druid/coordinator/v1/datasources/{datasource}/segments/{segmentId} - 功能: 将指定段标记为未使用(软删除)
永久删除段
- URL:
DELETE /druid/coordinator/v1/datasources/{datasource}/intervals/{interval} - 功能: 彻底删除指定时间区间内的未使用段(硬删除)
- 路径参数:
interval格式为start_ISO_end_ISO(如2023-01-01_2023-02-01)
集群监控API
服务状态端点
获取服务信息
- URL:
GET /status - 功能: 返回服务版本、内存使用、加载的扩展等信息
- 响应示例:
{
"version": "26.0.0",
"memory": {
"maxMemory": 268435456,
"usedMemory": 129374768
}
}
节点健康检查
- URL:
GET /status/health - 功能: 简单健康检查,返回
true表示服务正常
自动压缩API
压缩配置端点
创建压缩规则
- URL:
POST /druid/coordinator/v1/config/compaction - 功能: 为数据源配置自动段压缩策略
- 请求体参数:
dataSource: 数据源名称(必填)granularitySpec: 压缩后的段粒度tuningConfig: 压缩调优参数
示例请求:
{
"dataSource": "wikipedia_hour",
"granularitySpec": {"segmentGranularity": "DAY"},
"tuningConfig": {"type": "index_parallel"}
}
查询压缩进度
- URL:
GET /druid/coordinator/v1/compaction/progress?dataSource={datasource} - 功能: 返回待压缩段的总大小
动态配置API
Coordinator配置端点
更新动态配置
- URL:
POST /druid/coordinator/v1/config - 功能: 调整Coordinator运行时参数(如段平衡策略、复制限制等)
- 请求体参数:
maxSegmentsToMove: 单次移动的最大段数量replicationThrottleLimit: 复制操作的限流值
示例请求:
{
"maxSegmentsToMove": 5,
"replicationThrottleLimit": 10
}
最佳实践
-
查询性能优化
- 使用
resultFormat=arrayLines处理大数据集流式响应 - 通过
context参数设置timeout避免长查询阻塞
- 使用
-
任务监控
- 定期轮询
/druid/indexer/v1/runningTasks监控任务进度 - 结合
/druid/coordinator/v1/metadata检查段状态一致性
- 定期轮询
-
集群管理
- 使用
/status/selfDiscovered端点实现自动扩缩容健康检查 - 通过
/druid/coordinator/v1/config/history追踪配置变更记录
- 使用
参考资源
通过上述API,用户可以实现对Druid集群的全生命周期管理。建议结合Web控制台Segments页面直观查看段状态,辅助API操作。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




