【BI报表选型】metabase方案

在做数仓的过程中是需要对数据进行可视化与报表的,有一些开源的BI报表平台可以通过配置SQL和图表的方式制作Dashboard,甚至支持邮件定时发送报表、指标监控告警等。

使用BI报表平台的思路就是将数仓的统计结果sqoop导出到Mysql,然后通过BI报表平台编写Mysql SQL取数绘图,实现一些类似这样的图表:

下面是市场上可以考虑的选型:

目前了解superset和metabase是比较主流的2个选型,前者更强大,后者更简单。

目前根据好友推荐直接使用了metabase,主要感受是:

  • 无师自通,几分钟就会用了。
  • 图表类型太少,不够丰富。
  • 不能监控指标&告警。

下面简单记录一下metabase的安装与使用。

安装

下载Jar包

从这个链接下载Jar包::https://www.metabase.com/docs/latest/operations-guide/running-the-metabase-jar-file.html,这就是部署的唯一内容。

启动前可以利用环境变量来配置监听端口:

export MB_JETTY_PORT=

然后启动jar包即可拉起metabase:

java -jar metabase.jar

访问http://localhost:3000即可访问到metabase,但是别着急,这不是生产环境的部署方式。

配置数据库

为了可靠部署metabase,我们需要去mysql里建个数据库,令metabase存储它的数据到里面,默认metabase是存储在本地的h2嵌入式数据库的。

根据这个链接:https://www.metabase.com/docs/latest/operations-guide/configuring-application-database.html#mysql-or-mariadb的说明,先去Mysql创建一下数据库:

CREATE DATABASE metabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

启动jar包前导出这些环境变量告知数据库的连接方式:

配置systemd

为了开机自动拉起,我们配置metabase为systemd service:

可以看到我们把需要的环境变量放到了env文件中:

MB_DB_TYPE=mysql
MB_DB_DBNAME=metabase
MB_DB_PORT=3306
MB_DB_USER=metabase_user
MB_DB_PASS=xxxxxxxx
MB_DB_HOST=10.xx.xx.xx

启动jar包时注意设置Asia/Shanghai的时区以及JVM堆大小,其他就没什么了。

使用逻辑

配置数据源

因为要SQL取数画图,所以得先配置Mysql数据源在哪里。

配置图表

每个图表对应一个取数的SQL,可以直接编写SQL,同时metabase也为非技术人员提供了点鼠标拼SQL的交互形式:

SQL输出的结果字段,可以配置到x轴与y轴,这样就自动画出图来了。

配置仪表盘

将上面配置的多个图表布局到一个页面上,就产生了仪表盘。

这就是metabase产品使用的所有逻辑了,欢迎大家一起留言交流。

如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~