Superset
https://github.com/apache/incubator-superset/pulse/monthly
http://superset.apache.org/
Redash
https://github.com/getredash/redash/pulse/monthly
https://redash.io/
Metabse
https://github.com/metabase/metabase/pulse/monthly
https://www.metabase.com/
以下顺序为Superset-Redash-Metabase,毫无疑问,Superset碾压,后面两个基本打平,Metabase略优。
总体来说,安装难度不大:
创建一个python虚拟环境
virtualenv --no-site-packages superset
source superset/bin/activate
安装依赖,非常多,一定要用 requirements.txt,而且还会有漏网之鱼。
pip install superset -i https://pypi.douban.com/simple
superset db upgrade
导入示例数据
superset load_examples
创建admin账户
superset fab create-admin
superset init
superset run
需要注意,默认是127.0.0.1地址,我直接将环境下flask的cli.py改成了0.0.0.0。
看起来最容易的就是docker安装,但是镜像下载比较蛋疼,虽然我已经设置了国内源。docker部署说明
实际操作因为集群npm太久了,但是没有权限,没有装成功,只能用已有的镜像安装。下面是4个容器启动的 docker-compose.yml
文件,注意 先docker-compose up -d
,后 docker-compose run --rm server create_db
,不知为何,先创建数据库,或导致 postgres不能开启端口。
还要注意 windows docker 默认端口问题,http://192.168.99.100:5000/。
version: '2'
services:
server:
image: redash/redash:8.0.0.b32245
command: server
depends_on:
- postgres
- redis
ports:
- "5000:5000"
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
REDASH_RATELIMIT_ENABLED: "false"
restart: always
worker:
image: redash/redash:8.0.0.b32245
command: scheduler
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
QUEUES: "queries,scheduled_queries,celery"
WORKERS_COUNT: 2
restart: always
redis:
image: redis:3-alpine
restart: always
postgres:
image: postgres:11
ports:
- "5432:5432"
command: "postgres -c fsync=off -c full_page_writes=off -c synchronous_commit=OFF"
restart: always
environment:
POSTGRES_HOST_AUTH_METHOD: "trust"
最简单,因为是基于JVM的语言写的,所以就一个jar包。
首先要安装java,这个一般都有。然后下载jar包,就直接命令启动了。
java -jar metabase.jar
使用测试数据都是某个项目的DW/DM层数据。
1、目标用户肯定不是技术人员,基本操作逻辑就是客户探索数据,按照预定义的图表逻辑制作对应图表。说实话,功能挺丰富和全面,没有SQL照样可以做出不错的图表。另外,它的图表确实很炫酷,Demo很漂亮,对地理空间数据支持度很高。
2、使用起来感觉就是不得要领,还有稍微繁琐:首先我要创建数据源、然后注册一个数据表、之后就可以创建一张图了、最后汇总到一张仪表盘。
不得要领是最主要的问题,因为所有图表都是按产品逻辑预定义好的,与我的想法不一样,我也没心情去找说明(说明文档没有相关内容)或者慢慢学习。
比如柱状图的,默认就是统计总数,另外我想做时间序列的图时,由于我将时间格式转为字符串,然后这个就没有办法了。(以下是失败案例。。。)
3、汉化:部分汉化,有语言选择,但是汉化比例不高,另外数据会乱码。
4、总的来说,就是适合非技术人员直接对原数据的探索与BI制作,但是首先需要一定学习成本,对每一种图的逻辑都需要有所了解。另外使用起来有点延时。
1、目标用户技术人员,或者起码要会SQL。产品使用逻辑就很简单,总共3个功能:查询、仪表盘、预警。基本操作是创建一个查询,由这个查询选择字段创建图表,可以有多个。仪表盘就是插入一个个图表或文字。另外还有一个功能,预警,就是定时监测某个值,设定阈值,发邮件。
2、最大优势就是支持数据源多,46种。另外看起来前端图表做个UI美化,比之前版本好多了;对图表的操作也比较丰富,可以移位、放大、缩小、框选、套索选择等。下图展示的是框选。
3、汉化:没有。
4、总的来说,就是专注做一件事,适合技术人员直接对原数据的进行查询制作图表,使用起来也又比较顺畅。另外是单页面应用,
Metabase 感觉是个旗舰产品。
1、目标用户基本是想涵盖所有想用BI的用户。
2、产品页面设计非常简洁而且符合逻辑和习惯。
下图中,右上角就是两大模块,浏览数据就像dba工具一样,当然不懂SQL也可以操作,也可以使用SQL。
创建问题就是图表制作,左侧图表设置,右侧数据筛选、聚合,中间按钮随时切换 图表/原数据,产品设计非常好,而且整体使用非常流畅。
非常轻松用同样的数据制作图表,格式为字符的字段在superset无能为力,这里自动转了时间。
3、汉化:全部汉化。
4、总的来说,产品制作精良,追求卓越,适合所有BI参与者。
虽然Superset最热,但是我最不看好它。如果是给客户使用,那么最好选Metabase,因为汉化和交互良好。如果是数据技术团队使用,那么就用Redash,特别是大数据。