Apache Druid REST API文档:所有端点与参数详解

Apache Druid REST API文档:所有端点与参数详解

【免费下载链接】druid Apache Druid: a high performance real-time analytics database. 【免费下载链接】druid 项目地址: https://gitcode.com/gh_mirrors/druid6/druid

Apache Druid提供了全面的REST API,用于管理集群、提交查询、监控状态等核心操作。本文详细介绍所有API端点的功能、参数和使用示例,帮助用户快速掌握Druid的API交互能力。

API概览

Druid的API主要分为HTTP API和Java API两大类,涵盖数据查询、任务管理、集群监控等功能模块。完整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
}

最佳实践

  1. 查询性能优化

    • 使用resultFormat=arrayLines处理大数据集流式响应
    • 通过context参数设置timeout避免长查询阻塞
  2. 任务监控

    • 定期轮询/druid/indexer/v1/runningTasks监控任务进度
    • 结合/druid/coordinator/v1/metadata检查段状态一致性
  3. 集群管理

    • 使用/status/selfDiscovered端点实现自动扩缩容健康检查
    • 通过/druid/coordinator/v1/config/history追踪配置变更记录

参考资源

通过上述API,用户可以实现对Druid集群的全生命周期管理。建议结合Web控制台Segments页面直观查看段状态,辅助API操作。

【免费下载链接】druid Apache Druid: a high performance real-time analytics database. 【免费下载链接】druid 项目地址: https://gitcode.com/gh_mirrors/druid6/druid

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值