今天来聊下数据部门都逃不过的可视化工具选择。为什么需要可视化?领导鬼知道数仓,模型,范式是什么鬼。拿东西出来看呀!这时候酷炫屌炸的可视化就很能体现数据部门价值了。
对比结论
先上我们的调研结论:
(这个结论是结合了部门人员的技能情况,及需求情况,每个公司都不一样,只做为参考)
开源工具选型建议 Superset>Davinci>Redash>Metabase
对比结果表格

可视化诉求
1、该项目使用技术栈,自己的团队是否熟悉?
2、当前的技术架构是否会阻碍项目今后的发展?
3、该项目在生产环境中部署和运维是否有难度?
4、是否有完整的对接接口(权限、API、可视化嵌入)?
5、多用户、多角色、多权限问题(数据源、图表、仪表盘、表级别、行级别、字段级别)?
6、访问日志和使用统计日志?
7、告警功能(数据集/报表)?
8、多级菜单功能?
9、图标丰富性、扩展性?
10、邮件、企业微信、飞书?
各工具详细对比
一、Superset
关注度和活跃度

Star数量:38.5k
技术架构和部署运维
技术架构
Superset 的后端用 Python 开发,主要用到的开源组件:
Flask App Builder(简称 FAB)构架在 Flask 之上的一个应用开发框架,可以根据数据库的表结构,自动生成增删查改的前端界面,功能上类似 Django Admin。
SQLAlchemy比较成熟的数据库ORM解决方案。
部署方式
部署比较简单,Web 服务器是一个标准的 WSGI 应用,存储层支持用任意的 SQL 数据库(只需 SQLAlchemy 支持),所以部署方面无论是高可用还是水平扩展都很方便。
API 接口
FAB 原生支持 RESTful API,可以对大部分对象做 CRUD 操作。但认证方式不够灵活,只能通过 cookie,这对于脚本或是服务器端调用不太友好。
报表自定义程度
制作报表流程
数据库-->图表-->定义图表类型、指标和维度、图表样式-->看板-->权限
SQL工具箱-->自定义SQL-->定义图表类型、指标和维度、图表样式-->看板-->权限
适合人员
业务人员、数据工程师、数据分析师、数据科学家
权限对接
Superset提供了基于用户和角色的权限系统,使用OLTP数据库,用于存储其内部信息,例如您的用户列表,切片和仪表板定义。
现阶段还没有开放用户和角色的API。
API开放
提供了除用户和角色的大部分API功能
https://superset.apache.org/docs/rest-api
二、Metabase
关注度和活跃度

Star数量:24.8k
技术架构和部署运维
技术架构
Metabase 的后端是用 Clojure 写的,前端是用 React + Redux 写的单页应用。
部署方式
Metabase 提供了 Jar 文件,Mac 应用程序,Docker 镜像等方式可以让使用者在本地快速尝试该项目。而在生产环境中,它提供了如何在 AWS、Heroku、Kubernetes 上部署的详尽文档。
API接口
唯一提供完整 API 文档的项目,这使得开发者即使完全不会 Clojure,依然可以凭借丰富的 API 与文档完成许多二次开发。
报表自定义程度
制作报表流程
自定义SQL-->定义图表类型、指标和维度、图表样式-->看板-->权限
适合人员
业务人员、数据工程师、数据分析师、数据科学家
权限对接
已提供权限对接的接口调用,也可做报表的嵌入做二次开发。
API开放
比较完善的API接口,可以满足很多业务需求
https://www.metabase.com/docs/latest/api-documentation.html
三、Redash
关注度和活跃度

Star数量:18.7k
技术架构和部署运维
技术架构
Redash 的服务器端同样是用 Python 来写的,Web 框架以 Flask 为基础,并充分利用了 Flask 的插件生态圈,主要用了以下的组件:
API 框架:Flask-RESTful
数据库:Flask-SQLAlchemy
认证:Flask-Login
部署方式
Redash 除了 SQL 数据库外,还依赖于 Redis,但 Redis 只用来保存查询锁(防止多个相同查询同时进行),不需要做持久化。总体上说,Redash 的部署也比较简单。另外,Redash 直接提供了 AWS 上的镜像,以及开发环境的 docker-compose 配置,无论是对运维人员还是开发人员都蛮贴心的。
API接口
Redash 也提供了完整的 RESTful API 接口,它前端的单页应用就是通过这套 API 与后端通讯的,所以理论上在前端界面上做的任何事,都可以用 API 来完成。它的 API 原生支持 API Token 的认证方式。
报表自定义程度
制作报表流程
数据库-->自定义SQL-->图表-->定义图表类型、图表样式-->看板-->权限
适合人员
数据工程师、数据分析师、数据科学家
权限对接
未提供用户和角色权限,可做报表的嵌入做二次开发(基于api_key)。
API开放
提供Queries、Dashboard相关API
https://redash.io/help/user-guide/integrations-and-api/api
四、Davinci
关注度和活跃度

Star数量:3.4k
技术架构和部署运维
技术架构
Davinci的服务器用 Java 来写的,Web 框架以 TypeScript 为基础
部署方式
Davinci主要依赖于 Mysql,部署也比较简单。另外,Davinci既可作为公有云/私有云独立部署使用,也可作为可视化插件集成到三方系统。
API接口
Davinci支持开放接口
报表自定义程度
制作报表流程
自定义SQL-->定义图表类型、指标和维度、图表样式-->看板-->权限
适合人员
业务人员、数据工程师、数据分析师、数据科学家
权限对接
提供用户和角色权限,可以做到数据行列权限控制粒度,可做报表的嵌入做二次开发(基于api_key)。
API开放
开放




