Apache Superset

Apache Superset

Superset其实是一个自助式数据分析工具,它的主要目标是简化我们的数据探索分析操作。

相似产品对比

name 描述 实现
grafana grafana的druid插件,比较简陋,github一年不更新了 js
Metabase 支持数据库种类多,启动方便,支持json查询。图形化查询,只能有一个聚合字段,两个维度 Clojure
imply-pivot 基于Plywood,部署方便,能构造复杂的查询。目前已经闭源了,没法二次开发 Js
airbnb/superset 权限管理完善,图形可定制性也比较高,github持续更新,集合了metabase的Dashboard和pivot的查询可定制性优点,部署相对麻烦 python+js

数据库支持

Superset 是基于 Druid.io 设计的,但是又支持横向到像 SQLAlchemy 这样的常见Python ORM框架上面。

Druid 是一个基于分布式的快速列式存储,也是一个为BI设计的开源数据存储查询工具。Druid提供了一种实时数据低延迟的插入、灵活的数据探索和快速数据聚合。现有的Druid已经可以支持扩展到TB级别的事件和PB级的数据了,Druid是BI应用的最佳搭档。

跟类似产品Hive相比,速度快了很多。

架构

整个项目的后端是基于Python的,用到了Flask、Pandas、SqlAlchemy。

后端:

  • Flask AppBuilder(鉴权、CRUD、规则)
  • Pandas(分析)
  • SqlAlchemy(数据库ORM)

前端:

用到了npm、react、webpack,这意味着你可以在手机也可以流畅使用。

  • d3 (数据可视化)
  • nvd3.org(可重用图表)

局限性

  • Superset的可视化,目前只支持每次可视化一张表,对于多表join的情况还无能为力
  • 依赖于数据库的快速响应,如果数据库本身太慢Superset也没什么办法
  • 语义层的封装还需要完善,因为druid原生只支持部分sql。

参考

坚持原创技术分享,您的支持将鼓励我继续创作!