大数据的兴起,关于数据的存储、计算技术层出不穷,但是最终的数据可视化呈现,数据的探索,也成为颇为重要的一环,这一块并没有像存储、计算技术栈那么百花齐放,大家在做大数据可视化时是否也曾有这些困惑呢?
诸如此类,确实令人头疼,现在就推荐一款解药metabase
——开源的大数据分析探索、可视化报表的神器。
做事还是需要立一个目标架构,最后所有的事情都是围绕目标架构展开,才能越做越轻松,如图1.2,可是架构分为三个梯队;
注意:常用的也还有其它技术架构,如ELK架构,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。 Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索)。 kibana 也是一个开源和免费的工具,他Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。这个后续再讲,这里书归正传,先讲讲metabase。
metabase
是一款开源的简易但强大同时又无缝兼容大数据和传统数据库的分析工具,帮助公司每一个人对企业数据的学习挖掘,进而达到更好的数据化运营和决策。
Metabase is a simple and powerful analytics tool which lets anyone learn and make decisions from their company’s data. No technical knowledge required! We hope you love it.
官网
:https://www.metabase.com/
所有版本下载
:Available Versions
githup
:https://github.com/metabase/metabase
开发语言
:Clojure
,但是官网被封装编译成了一个Jar包,非常方便。
目前自带不支持ClickHouse,需要自己加入ClickHouse的Jar驱动,该驱动Jar需要手动加载,在GitHub有同步更新,只是相比于Metabase有一定的滞后性,具体操作请参考后续的与clickhouse对接
对接章节。
博主也写过一篇关于Apache Superset的大数据可视化报表平台Apache Superset——开源的大数据探索分析、可视化报表平台的博客,那么对于与Apache Superset,Metabase有哪些优劣呢;
向来博主都是鱼与熊掌能兼得就兼得,毕竟小孩才做选择嘛,可以考虑两个都装,Metabase用于专注业务数据需求人员,Apache Superset用于懂SQL的数据需求人员,二者生成的通用仪表盘,则可以利用一个统一的网页超链接到一起,形成一个统一的报表平台。
这里先展示下metabase
的最牛逼功能,托拉拽零代码生成各类产品销售额及占比,并保存在仪表盘内,可定时刷新,可分享他人等,这也是博主最喜欢的一个牌面,更多更刺激的体验,请跟随博主细细道来。
metabse
支持部署方式也是非常丰富的,具体可参考官网的Installing and Running Metabase ,常用的部署如下:
在具有JRE的环境下直接运行Jar包
博主就选了一个最简单的 在具有JRE的环境下直接运行Jar包
。
版本选择稍微有点讲究,如果觉得没必要集成ClickHouse的数据库连接,可以选择release的最新版本或者倒退1,2个版本;如果需要集成ClickHouse的数据库连接,因为Metabase自身是不支持的ClickHouse连接的(起码目前20210722不支持),所以需要下载适合的驱动包;
github metabase-clickhouse-driver
:metabase-clickhouse-driver;
版本适配,目前20210723支持ClickHouse的最新版本是Metabase-0.38.1。
原则上只要能跑Jar包的JDK的平台即可,博主的配置如下:
进入metabase首页,然后如图4.3的操作,将metabase.jar下载下来,注意,选择你需要的版本,默认是最新的版本。
所有版本下载
:Available Versions
安装就更简单了,将下载的metabase.jar
上传到其中一台装有JDK的服务器,博主就放在了/data/metabase/metabase-0.38.1
;
# 将Jar包命名一下,做到望文生义
cd /data/metabase/metabase-0.38.1
mv metabase.jar metabase-0.38.1.jar
# 启动
java -jar ./metabase-0.38.1.jar
# 这样的启动日志是打印在客户端的,这个后续在启动与关闭再说
# 此次启动的目的是确保启动打印的日志能准确,如果有bug,请根据bug提示修复,如java未安装之类的。
正常启动后,默认端口是3000
;在能访问该服务器3000的机器上,打开浏览器,输入安装服务器的IP:3000(如10.215.23.506:3000)
即可跳出注册界面,填写登录名(邮箱),密码,然后就可以跳转图4.3.1的web首页,然后就可以实操下快速上手的案例。
将日志打印收集到文件,后台启动进程;
# 启动
# 设置下软链current,这样让current永远指向最新的metabase版本,利于候选的版本更新
cd /data/metabase
ln -sf metabase-0.38.1 current
cd /data/metabase/metabase-0.38.1
mkdir log #创建log文件夹
nohup java -jar ./metabase-0.38.1.jar >> ./log/metabase.log 2>&1 &
./log/metabase.log 在log文件夹下的创建metabase.log文件,并把日志追加进去
2>&1
0 表示stdin标准输入,用户键盘输入的内容
1 表示stdout标准输出,输出到显示屏的内容
2 表示stderr标准错误,报错内容
2>&1是一个整体,>左右不能有空格,即将错误内容重定向输入到标准输出中去。
&为后台运行
关闭服务;
jps # 查看进程得到如下
2578 Jps
2523 metabase-0.38.1.jar
# 杀死进程号即可
kill -9 2523
先在github
下载ClickHouse的驱动包metabase-clickhouse-driver,注意下版本,选择的ClickHouse驱动要适配对应的metabase版本,同时ClickHouse版本只要通用能适配的JDBC版本一般都问题不大,博主的ClickHouse是20.8.12.2-1.el7.x86_64.rpm
,截至目前20210723,适配版本如下:
下载好驱动包clickhouse.metabase-driver.jar
后,再上传到/data/metabase/metabase-0.38.1/plugins
,该文件夹在第一次启动后初始化的时候生成的,专门存储和各大数据库的驱动。
然后再重启下metabase
,就可以看到如图5.1.2新建连接的时候多出了ClickHouse,一定要自己先配置下,看看能否正常连接到ClickHouse集群,因为这个受版本兼容,有一些坑。
注意:metabase没有Test Connection
这样的按钮,添加数据库时直接点保存
即可,如果连接有误,保存会出错,提示连接超时等异常。
温馨提醒:如果要兼容ClickHouse,建议使用天生自带兼容ClickHouse的SuperSet,Metabase接ClickHouse容易有异常。
主页点击右上角的设置
—>跳转图5.2—>管理员
—>菜单栏数据库
或者开始向导里面的添加一个数据库
—>跳转到添加数据库的配置也,然后配置好数据库实例,用户名,密码,点击保存
即可。
创建问题
;
原生查询
, 自定义查询
, 原生查询
;
创建的问题最终都可以通过数据得到可视化图表,如图5.3.4,可以选择保存在不同的目录内分析
,您的个人收藏
,其他用户的个人收藏
,也可以自己再建新的目录;每个目录可以调整访问者的权限;查看归档
其实就是类似回收站,废弃的创建问题和仪表盘必须先归档,才能删除。
仪表盘其实就可以理解为报表,有两个办法创建仪表盘,第一是在你创建问题
保存后,会弹出询问你是否保存到仪表盘或者保存到新的仪表盘;第二就是直接点击主界面菜单栏的+
号,将已经存在的创建问题
探索图表添加到新创建的仪表盘上。
设置在主界面的菜单的右上角+
,如图6.0。
管理员(重点)
:接下来细讲,添加人员、分组;添加数据库;公开分享,公开嵌入应用系统等;接下来重点讲讲管理员里面的相关设置操作,首先,管理员是一个组,即只要是隶属管理员组的人员,都可以操作这些设置。
人员管理分为人员
和分组
,人员
是邀请新人员,默认是邀请人员邮箱。分组
默认是管理员
和所有用户
两个组,可以再添加,后续的权限是根据组来分配的,同时一个人员A,可以隶属于多个分组,权限是只要其中隶属的其中一个分组有权限,A就有权限访问该权限的图表或仪表盘以及创建问题的权限。
权限是按组分配的,分为数据权限
和文件夹权限
,如图6.1.1;
之前讲过,就是添加新的数据库连接,将数据库,表模型加载到metabase用以数据探索和可视化呈现,如图6.2.0;
具体可以细到表,主要是给加在进来的表添加一些模型备注,使得使用者更好的使用该数据,分数据
,过滤器
,指标
,如图6.3.0。
数据
:给表的每一个字段设置属性,可见性,实体键,实体名称、实体外键等;过滤器
:设置过滤条件,将不需要的表记录过略掉,如id不等于250的订单;指标
:根据原有数据计算出来的新列,作为一个指标列一起加载到表内。 如图6.4.0和图6.4.1,先要打开嵌入其他的应用中
和公开分享
的开关,使得两项功能生效,其中嵌入其他的应用中
还会生成一个密钥。
然后右上角设置
—>退出管理员
,选择文件夹中其中一张你有权限的仪表盘,如图6.4.2,点击分享且编辑
,就可跳转图6.4.3,生成公开链接
和公开嵌入
。
如图6.4.3,生成公开链接和公开嵌入;
公开链接
:把链接地址复制给需要的人A,A计算没有Metabase的注册账号,也可以看到该仪表盘的报表页面,而且,如果仪表盘发生变更,A也可收到变更,如图6.4.4;公开嵌入
:一段前端嵌入的代码,如果仪表盘发生变更,应用系统内也会跟着变更。 错误排查主要是可以查看任务日志等信息,界面上的两个任务一个是分析日志,一个是调度器信息,当遇到bug时可以来这里查看。
以上就是关于Metabase的安装部署,使用的一个简单教程,更多更刺激的体验,可以参考官网文档Metabase Documentation,或者留言一起交流;