在Kibana/Vega中如何可视化关联重叠集合数据?
需求与问题描述
原始数据
{"id":12345, "issues":["tests failed", "host not found"]} {"id":12645, "issues":["tests failed"]} {"id":12643, "issues":["compile failed"]}
可视化需求
用Kibana饼图可以轻松生成关键词占比统计:tests failed占50%,host not found和compile failed各占25%。但我需要能保留记录关联关系的可视化方式,例如:
- 环形图:内圈显示
compile failed占1/3、tests failed占2/3,外圈对应包含host not found的记录占1/3 - 类树状Sankey图、堆叠直方图等
现有工具的局限
要实现这类可视化,需要基于数据构建树结构,核心逻辑是:找到最常见术语,将记录分为包含与不包含该术语的两组,递归处理各组直到所有记录完成分类。但:
- Vega明确不支持循环/递归,Kibana中也没有可用功能
- Vega的tree相关transform(如
nest、stratify)不适用:nest基于指定字段名创建预定义层级,无法自适应选择术语stratify需要父子字段,生成的结果缺乏各节点自适应处理最常见术语的能力,呈现杂乱
当前进展
我已经开始研究自定义transform,但在此之前想确认是否已有现成方案。
更新内容
这是我首次使用Vega,趁等待代码审核的间隙尝试了一个方案,目前还不够完善,已将其上传并添加注释供参考。后续会优化方案,使其更易扩展、适配现有树状可视化,并补充完整注释。
个人体验与建议
编写Vega代码的体验就像大学时期学习Prolog和LISP,十分烧脑!建议推出一套更易读的DSL,支持循环、跨transform的"viewpoints"及类型系统!
内容的提问来源于stack exchange,提问作者Tim Baverstock
相关产品推荐
相关产品推荐

