【metabase二次开发 • 一】开发准备

一、开发概述

  • Metabase采用前后端分离的方式构建,前端使用react搭建页面,后端使用clojure提供REST API接口,详见 API Document
  • Metabase提供了官方文档Developers Guide,对开发环境和运行方式进行了简要说明;
  • 本文档主要侧重于Clojure部分,前端涉及技术栈比较主流,网上各种文章分析也很全面,就不重复讨论了。

二、Clojure学习

  • Clojure比较冷门,网上学习资料也比较少,因此以官方文档和英文资料为主;
    • 中文基础教程 主要涵盖了基本语法的教程,内容不多,适合起步阅读;
    • 官方基础教程 同样是基础语法教程,内容不多,英文版;
    • Clojars Clojure的依赖仓库,类似于java的Maven Repository;
    • ClojureDocs Clojuer语法检索,比如输入 map 会检索出map的用法和多个使用示例,非常好用
    • 4Clojure 包含156道Clojure入门练习题,对于快速掌握语法很有帮助

三、clojure开发配置

  • 官方网站对Clojure安装进行了说明,详见Getting Started
  • 个人总结的安装步骤包括:
  1. 在Mac上安装Clojure建议使用Homebrew,一键安装简单方便。

Homebrew官方网站有详细的安装指引,但出于大家都懂的原因,国内没办法按流程安装,网上能搜到各种攻略,但第一次配置还是比较艰难的,推荐使用金牛肖马分享的安装脚本,流程清晰操作简单,链接 Homebrew国内安装

  1. 安装Leiningen,可以理解为可以理解为Clojure用的Maven,必不可少的包管理工具,也是Clojure官网推荐的,Leiningen官网

Leiningen官网推荐的安装方式是下载脚本并在本地运行,脚本运行时要多次访问github,出于大家都懂的原因,需要先解决github访问的问题;

  • github访问不了的主要方式是DNS地址污染,因此可以通过在本地hosts文件中绑定IP地址的方式解决,网上教程也很多,自行百度即可;
  • 请注意github的IP在2020年中变化过一次,因此早期的教程可能不起作用,最好是自己先手动查一下最新的IP地址
  1. 安装Cursive,运行在Idea中的Clojure语言插件,直接在Idea中搜索安装即可,使用教程可查阅Cursive官网
  • 网上有些文档会建议安装cursive和leiningen两个插件,其实只安装cursive就够了,安装了leiningen反而会冲突报错;
  • Clojure项目在Idea中若直接通过Idea中File → Open的方式打开会报错,因为Cursive需要在第一次导入项目时先建索引,因此要通过 File → New → Project from Existing Sources 的方式导入;
    直接在Idea中新建的项目和已经建好索引的项目可以直接打开,不需要每次打开时都重建索引;
  • 右键点击 project.clj 文件,选择 Run ‘REPL for XXX’ 将在Idea中运行REPL,优势是可以使用快捷键实时将代码导入到REPL中,非常灵活
  • Ideal屏幕右下方 structural style 建议选择 Parinfer,自动匹配括号,极其方便

四、常用指令

  • lein使用

leiningen常用命令(需要于project.clj文件所在目录下执行)

  • lein deps 手动下载项目依赖,若跳过该指令运行项目前也会自动下载依赖
  • lein runproject.clj 中配置的 :main 作为运行入口,运行 -main 方法
  • lein ring server 执行lein-ring插件配置,运行服务端
  • lein new project_name 按照默认模版,创建名为 project_name 的新任务

五、开发运行

  • 官方推荐:yarn build-hot 启动前端, lein run 启动后端
  • 前后端均启动后,访问 http://localhost:3000/ 可进行页面操作(注意不是访问8080)

metabase默认使用内嵌h2存储元数据,但推荐在生产环境迁移到MySQL或PostgreSQL

  • 若希望将h2数据迁移到MySQL,可参阅 官方文档 ,启动代码如下:
    MB_DB_TYPE=mysql MB_DB_HOST=172.0.0.1 MB_DB_PORT=3306 MB_DB_USER=username MB_DB_DBNAME=metabase MB_DB_PASS=password lein run load-from-h2
  • 即使换成迁移,下次启动时仍会默认采用h2数据库,使用MySQL数据库仍需要配置参数:
    MB_DB_TYPE=mysql MB_DB_HOST=172.0.0.1 MB_DB_PORT=3306 MB_DB_USER=username MB_DB_DBNAME=metabase MB_DB_PASS=password lein run
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Metabase是一种开源的业务智能(BI)工具,具备丰富的数据分析和可视化功能。作为一个强大的BI工具,Metabase也提供了二次开发的功能,使用户可以根据自己的需求进行定制和扩展。 Metabase二次开发工具包括以下几个方面: 1. Metabase API:Metabase提供了强大的API,可以通过编程方式对Metabase进行定制和扩展。开发人员可以使用API来获取数据、创建和修改问题(queries)、设置图表和仪表盘等。通过使用API,用户可以更精确地控制Metabase的功能。 2. 使用自定义查询:Metabase支持使用SQL进行查询,用户可以利用自己熟悉的数据库查询语言进行复杂查询。通过编写自定义查询语句,用户可以在Metabase中实现更复杂的数据分析和报表需求。 3. 自定义数据可视化:Metabase提供了多种图表类型和可视化效果,但有时可能无法完全满足用户的需求。用户可以通过定制CSS来自定义图表的样式和外观,以实现更好的数据可视化效果。 4. 自定义插件和扩展:Metabase还支持开发者通过创建插件或扩展,来增加新的功能和特性。通过插件机制,用户可以将自己开发的功能集成到Metabase中,以满足特定的业务需求。 Metabase二次开发工具使开发人员能够根据具体业务需求对Metabase进行定制和扩展。无论是通过API进行编程,使用自定义查询语句,定制数据可视化,还是通过插件和扩展添加新功能,Metabase都提供了丰富的扩展性和灵活性,使用户能够深度定制、个性化地使用Metabase进行数据分析和可视化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值