零门槛实战:Apache Druid数据可视化双方案(Pivot+Grafana)
你是否还在为实时数据分析的可视化难题发愁?面对海量时序数据,如何快速构建直观的仪表盘?本文将带你掌握Apache Druid的两大可视化方案——内置Pivot组件与Grafana集成,无需复杂编程,10分钟即可上手实战。读完本文,你将获得:Pivot界面零代码查询构建、Grafana数据源配置全流程、动态仪表盘设计最佳实践。
Pivot可视化:Druid内置的即席分析利器
Apache Druid的Web控制台集成了强大的Pivot组件,支持通过拖拽操作快速生成多维度分析报表。作为Druid SQL的可视化前端,Pivot特别适合运营人员进行实时数据探索。
快速上手Web控制台查询
- 启动Druid集群后访问Web控制台,点击顶部导航栏的Query进入查询界面:
Query视图
- 在左侧数据源面板展开目标数据集(如wikipedia),点击维度字段(如
page)并选择Show:page,系统会自动生成基础查询:
选择维度字段
- 编辑生成的SQL查询,添加多维度分析条件:
SELECT
"page",
"countryName",
COUNT(*) AS "Edits"
FROM "wikipedia"
WHERE "countryName" IS NOT NULL
GROUP BY 1, 2
ORDER BY "Edits" DESC
- 点击Run执行查询,结果将以表格形式展示,支持分页和排序:
查询结果展示
高级Pivot功能:动态数据透视
Druid SQL支持实验性PIVOT操作符,可将行数据转换为列维度,适合对比分析多指标数据。例如按城市维度展示编辑量:
SELECT user, channel, ba_sum_deleted, ny_sum_deleted
FROM "wikipedia"
PIVOT (SUM(deleted) AS "sum_deleted" FOR "cityName" IN ( 'Buenos Aires' AS ba, 'New York' AS ny))
WHERE ba_sum_deleted IS NOT NULL OR ny_sum_deleted IS NOT NULL
LIMIT 15
查看PIVOT查询结果
user | channel | ba_sum_deleted | ny_sum_deleted |
|---|---|---|---|
| 181.230.118.178 | #en.wikipedia | 0 | null |
| 69.86.6.150 | #en.wikipedia | null | 1 |
| 190.123.145.147 | #es.wikipedia | 0 | null |
完整的Pivot功能文档可参考Druid SQL语法指南,该功能目前处于实验阶段,建议在生产环境中谨慎使用。
Grafana集成:构建企业级监控仪表盘
对于需要长期监控的场景,Grafana提供了更丰富的可视化组件和告警能力。通过Druid的PostgreSQL兼容接口,可轻松将Grafana与Druid集群对接。
配置Druid数据源
- 安装Grafana并登录,进入Configuration > Data Sources,点击Add data source
- 选择PostgreSQL类型,配置如下参数:
- Host:
druid-broker:5432(Druid Broker服务地址) - Database:
druid - User:
druid - Password:
druid - SSL Mode:
disable - 自定义SQL:
SELECT * FROM INFORMATION_SCHEMA.TABLES
- Host:
注意:Druid的SQL接口使用PostgreSQL协议但无需实际PostgreSQL数据库,上述配置基于Druid默认的SQL JDBC驱动参数。
创建实时监控面板
- 新建Dashboard并添加Graph面板,在Query选项卡中选择Druid数据源
- 编写Druid SQL查询:
SELECT
FLOOR(__time TO HOUR) AS "time",
SUM(added) AS "新增编辑",
SUM(deleted) AS "删除编辑"
FROM wikipedia
WHERE $__timeFilter(__time)
GROUP BY 1
ORDER BY 1
- 在Visualization选项卡中选择Time series,配置坐标轴和图例
- 设置刷新频率为10秒,实现准实时数据监控
高级特性:参数化查询与变量
通过Grafana变量功能实现动态仪表盘:
- 在Dashboard设置中添加Query类型变量
datasource,查询语句:SELECT datasource_name FROM sys.datasources - 在面板查询中引用变量:
SELECT FLOOR(__time TO HOUR) AS "time", SUM(added) AS "新增编辑" FROM $datasource WHERE $__timeFilter(__time) GROUP BY 1
方案对比与最佳实践
| 特性 | Pivot组件 | Grafana集成 |
|---|---|---|
| 使用门槛 | 低(纯UI操作) | 中(需SQL基础) |
| 实时性 | 毫秒级响应 | 秒级刷新(可配置) |
| 可视化类型 | 基础图表(表格/折线) | 丰富(热力图/柱状图/ gauge等) |
| 告警功能 | 无 | 支持多级别告警 |
| 数据导出 | CSV格式 | 多种格式(PNG/PDF/CSV) |
性能优化建议
总结与进阶资源
通过本文介绍的两种方案,你已掌握Apache Druid数据可视化的核心技能。Pivot组件适合快速即席分析,Grafana则胜任长期监控场景。建议进一步学习:
- Druid SQL完整语法
- Grafana高级仪表盘设计
- Druid性能调优指南
立即动手实践,将你的实时数据转化为业务洞察!收藏本文,关注后续《Druid多租户隔离实践》。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



