You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Apache Druid中已存储的存量数据导出为CSV格式

Apache Druid 全量数据CSV导出解决方案

以下是三种可落地的实现方式,适配不同的部署场景和数据量级:

1. 调用Druid SQL HTTP接口直接导出

该方式不需要额外依赖,直接通过HTTP请求拉取全量结果,操作门槛最低:

  • Druid Broker的SQL原生支持CSV格式返回,无需分页即可流式拉取全量数据
  • 参考curl命令:
curl -X POST 'http://<Druid Broker节点IP>:8082/druid/v2/sql/' \
-H 'Content-Type: application/json' \
-d '{"query":"SELECT 你需要的字段列表 FROM 目标数据表名","resultFormat":"csv","header":true}' \
--compressed \
-o export_result.csv
  • 注意:若数据量级过大导致单请求超时,可按Druid数据的时间分区拆分多个短时间区间的查询,导出后手动合并CSV文件即可。

2. 提交Druid异步导出任务

针对10亿行这种超大规模数据集,优先推荐后台异步导出的方式,避免长连接超时问题:

  • 通过Druid Overlord节点提交Export任务,可直接将全量数据导出到集群可访问的分布式存储(HDFS、S3等),任务在集群后台异步运行,无需维持本地连接
  • 任务提交示例(请求地址为http://<Druid Overlord节点IP>:8081/druid/indexer/v1/task):
{
  "type": "export",
  "id": "export_dataset_csv_2024",
  "spec": {
    "dataSource": "目标数据表名",
    "interval": "待导出数据的时间范围,如2020-01-01/2024-01-01",
    "output": {
      "type": "hdfs",
      "path": "hdfs:///druid/export/csv_output",
      "format": {
        "type": "csv",
        "includeHeader": true
      }
    }
  }
}
  • 导出完成后直接从存储路径将CSV文件下载到本地即可。

3. 通过JDBC客户端工具导出

如果习惯用可视化工具操作,可通过支持Druid JDBC连接的客户端完成导出:

  • Druid的JDBC连接地址为jdbc:avatica:remote:url=http://<Druid Broker节点IP>:8082/druid/v2/sql/avatica/
  • 可使用DBeaver、DataGrip、sqlline等工具连接后,执行全量SELECT查询,直接将结果导出为CSV格式,工具会自动处理流式拉取,无需手动分页。

注意事项

  • 导出前提前确认存储容量充足,10亿行CSV文件体积通常在几十到上百GB级别
  • 尽量选择集群低峰期执行导出操作,避免占用过多集群资源影响线上业务
  • 尽量避免使用SELECT *,仅导出需要的字段可大幅降低导出耗时和文件体积

内容的提问来源于stack exchange,提问作者ufukyılmaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 09:45:08