概述
Metabase 官网介绍:是一种简单、开源的方式,让公司中的每个人都可以通过它来提问和学习数据。
如果了解更多BI工具,可看我的另一篇文章:BI、数据可视化工具浅析整理。
Metabase特点:
- 开源免费
- 适合看运行数据: 提问的方式,业务人员自己就可以做数据分析
- 报表自动化,数据可视化
- 权限管理控制
- 数据共享,操作简单
- 可以与ETL结合
- 支持与业务系统做集成
二次开发
前端框架:React + Redux等相关框架,基于yarn的开发环境,webpack构建
后端开发:metabase后端语言采用clojure,Ring和toucan等开发框架
补充:
前端框架:React + Redux + D3(图表工具)
后端框架:Clojure + RING(中间件) + Compojure(路由框架) + Toucan(ORM框架)
源代码
github地址: https://github.com/metabase/metabase
安装git工具,clone源代码
开发工具
- idea 需安装clojure相关插件, Cursive和Leinigen
- vscode 安装 calva和clojure插件
安装工具
Leiningen
Leiningen用于自动化Clojure项目,例如创建项目、抓取依赖包、编译、运行、测试、此外,Leiningen可以为项目生成maven风格的“pom”文件以进行互操作。
安装过程:
第一步:
官网下载zip包和bat文件
第二步:
自定义Leiningen安装目录,并在安装目录下面,创建bin文件夹和self-installs文件夹
将bat文件,lein.bat放到bin目录下面
将zip包修改后缀为jar,然后放到self-installs文件夹中,如:leiningen-2.9.1-standalone.jar
备注:也可以直接找安装版安装即可
第三步:
配置环境变量,创建LEIN_HOME变量,配置%LEIN_HOME%\bin目录到path中
运行命令lein repl :start,该命令会先启动REPL服务端,接着启动REPL客户端连接所启动的REPL服务端
到此,Leiningen安装到了windows上
yarn
下载地址:https://yarnpkg.com/en/docs/install
nodejs
安装最新版本
部署发布
windows二次开发环境部署,采用yarn,不建议用npm,容易出问题,推荐编辑工具vscode
初始化
yarn install
前端编译
yarn run build
后端运行
lein run
访问默认端口3000
http://localhost:3000
有个配置引导,数据可以直接选稍后配置,其余下一步即可
Metabase自身默认数据库修改
Metabase默认使用的H2数据库,如果想改用本地mysql需要,修改环境变量(或者启动之前设置一下),如果直接运行不生效,建议重启一下电脑
set MB_DB_TYPE=mysql
set MB_DB_DBNAME=metabase
set MB_DB_PORT=3306
set MB_DB_USER=root
set MB_DB_PASS=123456
set MB_DB_HOST=localhost
注意一:myql数据库创建用utf-8,utf8mb4有可能出现问题
注意二:如果碰到 1709 – 索引列大小太大.最大列大小为767字节问题
//查看
SHOW VARIABLES LIKE 'storage_engine';//默认应该是MyISAM,修改为InnoDB,这个修改最好改配置文件
SHOW variables like 'innodb_large_prefix'
SHOW variables like 'innodb_file_format'
//修改
SET GLOBAL INNODB_LARGE_PREFIX = ON;
SET GLOBAL INNODB_LARGE_PREFIX = ON;
SET GLOBAL innodb_file_format = BARRACUDA;
Metabase默认DEMO数据库+H2工具
Metabase默认是数据库是H2数据库,连接工具直接去H2官网下载即可
连接配置,你可以直接到Metabase本身数据里面去找,表:metabase_database
{"db":"/E:/XXXX/metabase-master/resources/sample-dataset.db;USER=GUEST;PASSWORD=guest"}
可以直接看到数据库,用户名和密码,注意配置连接直接访问数据库文件就可以,不能多个应用同时访问
常用命令
lein repl:打开REPL环境。
前端编译:yarn build
前端热部署:yarn build-hot
后端运行:lein run
后端热部署:lein ring server
lein uberjar:打包项目,包含依赖项。得到jar后就跟平常的jar没有区别了。
blog连接:https://dumplingbao.github.io/2019/11/04/metabase-bi-dev/