BI报表工具:Metabase 部署

BI报表工具:Metabase 部署

因为运营的需求,会需要一些统计报表,但是因为目前人手不足,没有时间去开发一个bi报表统计系统, 并且他们的需求目前还是比较简单的统计, Metabase就很好的满足我们的需求了。

Metabase 介绍

这是他官网的简介。事实上试用了一段时间,他确实是一个简单易用的报表工具。

优点

支持数据库类型繁多

它支持以下数据库:

  • Postgres
  • MySQL
  • Druid
  • SQL Server
  • Redshift
  • MongoDB
  • Google BigQuery
  • SQLite
  • H2
  • Oracle
  • Vertica
  • Presto
  • Snowflake
  • SparkSQL

非专业人士也能使用的查询

你可以在数据模型中为每个字段配置别名, 这样在创建问题时,可以得到易读的字段筛选信息,并且提供了聚合/分组,即使是非开发人员也可以自由的创建sql查询语句。

简便的操作

各式各样的可视化图表

格式各样的图表可视化, 总有一款适合你 =。=

方便的关联数据

你可以直接在数据中关联各种其他的数据, 是要鼠标点击一下,你就可以跳转到关联数据中
db

SQL语句定义变量

可以直接在sql中定义变量,添加筛选项,让报表更加实用

定时发送报表

可以直接定义你要发送哪些报表,并且定时发送给指定的成员。

权限管理

有成员分组,可以管理每个问题/图表的 修改/查看权限

支持谷歌登录/LDAP认证

这个真的很方便,不用再去为每个人创建帐号了

缺点

格式化功能很弱

格式化仅限 时间/货币 等来进行格式化, 其他无法自定义格式化内容

字段类型支持问题

  1. tinyint 问题:
    在mysql中 blob 其实就是tinyint(1), 所以导致,如果你的数据库表中有存在tinyint(1) 的类型, 那么Metabase 会识别为布尔类型,并且无法更改, 你只能去改动数据库。
  2. 时间问题, 如果你的时间为 年月日/年月的时候, Metabase生成的表格 会自动改成为 年月日时分秒的格式, 你必须在查询的时候 去 定义返回字段格式为 ‘%Y-%m’才会正常显示

自定义查询弱

自定义查询只能提供那么几个 固定的 方法, 无法去增加新的, 所以很多Sql,还是得靠自己去编写sql语句来查询。

变量类型少

在sql语句中增加变量, 只有 时间/字符串/数值 等类型, 并且 时间 必须是 年月日 或者 年月日 时分秒 的格式, 如果有 查询月份的字段 就不可以了。

docker 安装

部署时,最好映射数据库存储位置,方便后期更新升级使用。 这里我指定了版本号,是因为有时候最新版本是没有中文语言包的(需要等待翻译完成后才会被作者合并主分支中, 如果你想帮助翻译的话 可以 点击该链接 贡献你的翻译)

安装

1
docker run -d -p 3000:3000 -v /data/metabase:/metabase-data -e "MB_DB_FILE=/metabase-data/metabase.db" --name metabase metabase/metabase:v0.33.3

数据迁移mysql中

Metabase 默认使用H4数据库, 官方推荐在生产环境中,最好更换为其他数据库比较稳定, 所以如果你在快速体验完毕后, 不想重新安装, 你可以直接将你目前的H4数据库 迁移到其他类型的数据库中(注意:只有你之前数据库映射出来才可以迁移。)。

  1. 首先停止你目前的Metabase容器。

  2. 在mysql数据库中创建一个数据库用于存储Metabase数据。

  3. 执行以下迁移命令

1
2
3
4
5
6
7
8
9
10
docker run --name metabase-migration \
-v /data/metabase:/metabase-data \
-e "MB_DB_FILE=/metabase-data/metabase.db" \
-e "MB_DB_TYPE=mysql" \
-e "MB_DB_DBNAME=metabase" \
-e "MB_DB_PORT=3306" \
-e "MB_DB_USER=root" \
-e "MB_DB_PASS=root" \
-e "MB_DB_HOST=127.0.0.1" \
metabase/metabase:v0.33.3 load-from-h2

-v 填入你之前保存数据库的路径
MB_DB_TYPE 代表你想使用的数据库类型
load-from-h2 代表你想执行数据库迁移功能

执行该命令,可以看到迁移的过程。

  1. 创建新的容器
    迁移完成之后,你需要重新创建一个容器,执行Metabase数据库从mysql中获取
    PS: 可以删除上面2个容器咯。
1
2
3
4
5
6
7
8
docker run -d -p 3000:3000 \
-e "MB_DB_TYPE=mysql" \
-e "MB_DB_DBNAME=metabase" \
-e "MB_DB_PORT=3306" \
-e "MB_DB_USER=root" \
-e "MB_DB_PASS=root" \
-e "MB_DB_HOST=127.0.0.1" \
--name metabase metabase/metabase:v0.33.3

然后打开 127.0.0.1:3000 尽情享用吧。

使用

添加数据库

第一次打开页面, 跟着部署走,Metabase会要求你创建一个管理员帐号,和添加一个数据库。
之后在添加数据库就需要 在 设置-管理员-数据库-添加数据库 来引入新的数据库了

编辑数据模型

当你在添加完数据库后, 可能绝大部分表是不需要使用的,
并且表字段意义可能不明确,非专业人员使用可能不知所意,
所以你需要对你的数据库进行编辑,将不要使用的表隐藏起来,将表字段起一个别名。

这些都是在 设置-管理员-数据模型 中去设置的。

参考网站

BI报表工具:Metabase 部署

https://xxxy.xyz/post/Metabase-BI-deploy/

作者

MartialBE

发布于

2019-09-29

更新于

2019-09-29

许可协议

评论