BI报表工具:Metabase 部署
因为运营的需求,会需要一些统计报表,但是因为目前人手不足,没有时间去开发一个bi报表统计系统, 并且他们的需求目前还是比较简单的统计, Metabase就很好的满足我们的需求了。
Metabase 介绍
这是他官网的简介。事实上试用了一段时间,他确实是一个简单易用的报表工具。
优点
支持数据库类型繁多
它支持以下数据库:
- Postgres
- MySQL
- Druid
- SQL Server
- Redshift
- MongoDB
- Google BigQuery
- SQLite
- H2
- Oracle
- Vertica
- Presto
- Snowflake
- SparkSQL
非专业人士也能使用的查询
你可以在数据模型中为每个字段配置别名, 这样在创建问题时,可以得到易读的字段筛选信息,并且提供了聚合/分组,即使是非开发人员也可以自由的创建sql查询语句。
各式各样的可视化图表
格式各样的图表可视化, 总有一款适合你 =。=
方便的关联数据
你可以直接在数据中关联各种其他的数据, 是要鼠标点击一下,你就可以跳转到关联数据中
SQL语句定义变量
可以直接在sql中定义变量,添加筛选项,让报表更加实用
定时发送报表
可以直接定义你要发送哪些报表,并且定时发送给指定的成员。
权限管理
有成员分组,可以管理每个问题/图表的 修改/查看权限
支持谷歌登录/LDAP认证
这个真的很方便,不用再去为每个人创建帐号了
缺点
格式化功能很弱
格式化仅限 时间/货币 等来进行格式化, 其他无法自定义格式化内容
字段类型支持问题
- tinyint 问题:
在mysql中 blob 其实就是tinyint(1), 所以导致,如果你的数据库表中有存在tinyint(1) 的类型, 那么Metabase 会识别为布尔类型,并且无法更改, 你只能去改动数据库。 - 时间问题, 如果你的时间为 年月日/年月的时候, 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数据库 迁移到其他类型的数据库中(注意:只有你之前数据库映射出来才可以迁移。)。
首先停止你目前的Metabase容器。
在mysql数据库中创建一个数据库用于存储Metabase数据。
执行以下迁移命令
1 | docker run --name metabase-migration \ |
-v 填入你之前保存数据库的路径
MB_DB_TYPE 代表你想使用的数据库类型
load-from-h2 代表你想执行数据库迁移功能
执行该命令,可以看到迁移的过程。
- 创建新的容器
迁移完成之后,你需要重新创建一个容器,执行Metabase数据库从mysql中获取
PS: 可以删除上面2个容器咯。
1 | docker run -d -p 3000:3000 \ |
然后打开 127.0.0.1:3000 尽情享用吧。
使用
添加数据库
第一次打开页面, 跟着部署走,Metabase会要求你创建一个管理员帐号,和添加一个数据库。
之后在添加数据库就需要 在 设置-管理员-数据库-添加数据库 来引入新的数据库了
编辑数据模型
当你在添加完数据库后, 可能绝大部分表是不需要使用的,
并且表字段意义可能不明确,非专业人员使用可能不知所意,
所以你需要对你的数据库进行编辑,将不要使用的表隐藏起来,将表字段起一个别名。
这些都是在 设置-管理员-数据模型
中去设置的。
参考网站
BI报表工具:Metabase 部署