Apache Superset是一款开源的企业级数据可视化和探索平台。它具有直观的界面,丰富的图表与仪表盘类型,并支持大规模数据集,方便进行实时分析与探索。Apache Druid是一款高性能、分布式、低延迟的OLAP数据存储方案。它适用于数据探查和快速数据摘要等场景,能轻松应对PB级数据。
本文将介绍如何结合Superset和Druid这两个优秀的开源软件,快速搭建一个实时数据分析看板应用。将二者整合,我们可以轻松实现一个帮助企业快速监控数据、获得数据洞察的智能平台。
一、环境准备
安装 Druid,安装和配置Superset
安装步骤省略,可自行搜索。添加 Druid 数据源
- 登录Superset, 选择“数据源”菜单
- 点击“+ 数据源”按钮,选择“Druid”数据源类型
- 填写Druid数据源相关信息:
- 名称: Druid数据源名称, 如test_druid
- 主机: Druid Broker主机IP/域名
- 端口:Druid Broker服务端口,默认为8082
- 点击“保存”按钮,Druid数据源添加成功!
二、构建Druid数据表和查询
登录Druid Console, 构建数据表
在Druid Console通过上传数据文件或提供数据流的方式创建数据表定义复杂的查询
Druid支持丰富的查询类型, 如GroupBy、TopN、Timeseries等...(查询语法示例)
{
"queryType": "groupBy",
"dataSource": "wikiticker",
"granularity": "all",
"dimensions": ["page","country"],
"aggregations": {
"count": "count"
},
"intervals": [
"2020-01-01/2020-01-02"
]
}
- queryType:指定GroupBy查询类型
- dataSource:查询的数据源
- granularity:聚合粒度,all表示全量数据
- dimensions:分组维度
- aggregations:聚合指标,这里使用count计数
- intervals:时间范围
该查询会按page和country两个维度对wikiticker数据源在2020-01-01至2020-01-02的所有数据进行分组,并统计每个分组的记录数。
Druid通过简洁的JSON配置支持构建复杂的分组、TopN、时间序列等聚合查询。
三、在 Superset 中创建报表
- 新建Druid表格视图
在Superset中,我们需要创建表格视图来显示Druid数据集的数据。新建Druid表格视图的步骤如下:
- 选择数据源为我们之前添加的Druid数据源test_druid
- 选择“Druid数据集”,这会拉取Druid Console中已有的数据集列表
- 选择要查询的Druid数据集,比如wikiticker
- 选择要查询的时间范围,可选择最近1小时、1天、1周、1月或自定义时间范围
- 选择要使用的查询类型,包括Timeseries、TopN、GroupBy等
- 根据所选查询类型配置对应的参数,如分组维度、聚合指标等
- 点击“引入表格”按钮,表格视图创建成功
- 使用多种图表类型可视化数据
在新建的表格视图上,点击工具栏的“创建图表”按钮,选择要使用的图表类型,即可将查询结果以图表形式进行可视化展示。
Superset支持线图、柱状图、散点图、地图、盒形图等多种图表类型,选择合适的可视化形式。
- 构建实时数据看板
将创建好的多个图表和文本框拖动到仪表盘,设置自动刷新间隔,即可以实现一个实时数据监控看板。
步骤如下:
- 点击左侧“仪表盘”菜单, 选择“新建仪表盘”
- 输入仪表盘名称, 选择布局样式, 点击“保存”
- 添加文本框、图像等组件进行装饰(可选)
- 将创建好的图表从左侧的可用内容拖动到仪表盘 Grid 空间中
- 点击添加到仪表盘的图表,在右侧设置面板中设置自动刷新间隔(如每1分钟)
- 回到仪表盘界面, 点击右上方“保存并进入编辑模式”按钮
- 调整组件大小和位置, 美化仪表盘整体样式
- 点击右上方“保存”按钮, 实时数据看板创建成功!
四、总结
通过 Superset 和 Druid,我们实现了一个实时数据分析看板应用。Druid提供实时和历史数据的存储与查询,Superset通过丰富的可视化手段, 将Druid查询结果呈现直观的网页报表和仪表盘。
写作是一个学习和思考的过程, 我也会不断总结与改进。谢谢阅读,如果你对文章中的内容有疑惑,欢迎点击我头像,看我个人介绍,与我取得联系,谢谢~