目前开源的数据可视化工具主要有 metabase 和 superset,两者都能让用户简单、快速的对数据进行分析处理、权限控制等操作。
metabase
简介
metabase 是由 metabase 公司开发的大数据分析工具,可以让用户简单、快速的对数据进行分析。目前有社区版和企业版 2 个版本。
部署方案

- 采用横向扩展的方式来达到分流及高可用的目的
- 可通过 Nomad Job 部署,但不支持 arm 架构
功能
- 数据源:Postgres、MySQL、Druid、SQL Server、Redshift、MongoDB、Google BigQuery、SQLite、H2、Oracle、Vertica、Presto、Snowflake、SparkSQL等
- 可视化查询:简单查询(单表),自定义查询(多表)及原生查询(SQL)
- 可视化图表类型:曲线、柱状、条形、饼图、面积图、组合图、地图、漏斗、散点、仪表盘等。
- Dashboard:支持参数传递、一键全屏、公开分享、iframe 嵌入、定时刷新
-
邮件报警:可以使用已有查询配置数据阈值报警,发送邮件
-
用户集成:可以直接和 LDAP 集成
-
权限:用户组粒度,不能到单个用户级别。表中的数据只能在表级别
-
API: 提供 rest api 进行数据查询
实践
影响性能的点
-
连接到 metabase 的数据库数量
-
每个数据库中表的数量
-
数据仓库的效率
-
Dashboard 上 question 的个数
使用建议
-
只查询需要的数据
-
使用 RDS 存储数据
-
开启缓存
-
优先考虑横向扩展,在多个 metabase 前面加个负载均衡器
简介
superset 是 Apache 开源的一款分布式的数据分析工具,它具备快速、轻量、直观的特点,使用户可以轻松探索和可视化自己的数据。
部署方案

- 天然支持分布式部署,满足高可用需求
- 可通过 Nomad Job 部署,但不支持 arm 架构
功能
- 支持丰富的数据源管理
- 丰富的数据集管理
- 支持丰富的图表管理
- 只支持单表的数据可视化,不支持同时多表的数据可视化
- 支持数据的告警及报表发送功能
- 支持开放的 api
- 细粒度的用户、数据权限管理
- 支持 SQL 原生查询
- 支持 LDAP、OAUTH2 认证方式
Metabase vs superset
| Metabase | superset |
| 语言 | java | python |
| 架构 | 单机可扩展 | 分布式 |
| 依赖组件 | RDS | RDS、Redis |
| 数据源 | 18+ 种数据源 | 34+ 种数据源 |
| 可视化 |
|
- 可同时只支持单表、不支持多表
- 整个 ECharts 的都支持
|
| 功能 |
- 数据源管理
- 数据集管理
- 数据可视化
- caching(内存)
- SQL Lab
- 开放 API
- 权限管理(用户 & 数据)
- Alert
- 支持 Caching
- 不支持本地 csv 数据源
- 没有审计日志
|
- 数据源管理
- 数据集管理(单表)
- 数据可视化
- caching(内存或redis)
- SQL Lab
- 开放 API
- 权限管理(用户 & 数据)
- Alert、Reporter(镜像中需要安装浏览器)。
- 支持 Caching
- 支持本地 csv 数据源
- 审计日志
|
| 数据权限 | 表级别 | 行级别 |
| 用户权限 | 组级别 | 用户级别 |
| 用户集成 | LDAP | LDAP、OAUTH2 |
| Dashboard 组件 | MD 文本 + 自带的 charts | 丰富的 MD 文本、Tabs、Row、Column、Header、Divider 组件及 charts |
| API | 开放 | 开放 |
总结
- 在支持的数据源、数据可视化、权限及 Dashboard 种类等功能上 Superset 要比 Metabase 占一定的优势。
- 在数据可视化情况下 Metabase 可以做多表的 Join 操作。而只能针对单表来进行可视化操作。