Metabase 是国外开源的一个可视化系统,语言使用了Clojure + TypeScript。

Clojure(/ˈkloʊʒər/)是Lisp程式語言在Java平台上的現代、動態及函數式方言。来自维基百科。

我也是第一次看到这个语言,知道它是可以运行在Java环境上的语言就可以了

官方介绍该系统为“为公司中的每个人提供商业智能和分析的最简单、最快的方法”。

ChatGPT 是这样介绍它的

Metabase是一种开源的数据分析和可视化工具,它可以让非技术人员通过简单的查询和可视化操作来探索和理解数据。Metabase支持多种数据源,例如MySQL、PostgreSQL、MongoDB、Amazon Redshift、Google BigQuery等,可以通过简单的设置和配置来连接这些数据源。

使用Metabase,用户可以轻松创建各种类型的数据可视化图表和报表,例如柱状图、折线图、饼图、地图等等。此外,Metabase还具有一些高级功能,例如数据过滤、数据分组、数据透视表等,这些功能可以帮助用户更深入地了解数据。

安装

其安装的主要有两种方式docker和jar包安装。我这里介绍一下jar包安装吧,这样不用安装docker,适合更多不同机器(包含在虚拟机、docker容器内)安装部署。

默认安装使用的是H2数据库,为了尽可以贴合生产环境安装,需要替换掉默认的数据库,可以通过部署的时候设置变量来指定连接数据库。其支持PostgreSQL( 最低版本为: 9.4)、MySQL (最低版本为:5.7.7,需要设置 utf8mb4_unicode_ci collation, utf8mb4 character set, and innodb_large_prefix=ON.)、MariaDB.(最低版本为:10.2.2. 需要设置 utf8mb4_unicode_ci collation, utf8mb4 character set, and innodb_large_prefix=ON)。参考自metabase V0.46 版本安装说明。

以下为一个部署示例,指定启动端口为9092,存储的数据库类型为MySQL和指定存储的MySQL链接(对应的MySQL数据库metabase_db需要先创建好,并且用户需要有创建表权限,默认启动的时候会链接数据库进行创建表)

echo "创建目录并进行目标安装目录"
mkdir -vp /data/server/metabase
cd /data/server/metabase
echo "这里下载可能会有点慢"
wget https://downloads.metabase.com/v0.46.3/metabase.jar
echo "开始启动,下面需要替换为自己的mysql链接"
java -DMB_JETTY_PORT=9092 -DMB_DB_TYPE=mysql -DMB_DB_CONNECTION_URI="jdbc:mysql://<host>:3306/metabase_db?user=<username>&password=<password>" -jar metabase.jar

上面命令启动时前台启动的,退出或关闭当前控制台后进程就退出。

当前台启动查看日志没报错之后,可以使用下面的后台启动命令来启动,这样就可以保持程序一直在后台运行。

nohup  java  -DMB_JETTY_PORT=9092 -DMB_DB_TYPE=mysql -DMB_DB_CONNECTION_URI="jdbc:mysql://<host>:3306/metabase_db?user=<username>&password=<password>" -jar metabase.jar  &

当出现下面的INFO 日志的时候基本就表示启动没问题了的

这个时候可以访问 http://127.0.0.1:9092 (其中的Ip可以换成自己的服务器外网的ip,如果有防火墙之类的需要关闭9092端口的屏蔽)

就会默认跳转到初始化设置页面了,主要设置一些自己的管理员账号和密码,还有设置要链接分析的数据库。

设置完成界面如下:

接着就可以正式进行metabase 系统使用了。进入首页后,会看到metabase系统推荐关于你数据库的一些表的分析,可以简单展示你要分析的数据表信息。

简单使用

首先是创建数据库,管理员可以看到这个数据库创建功能,可以选择添加数据库来创建对应数据库,其他组角色的数据库权限默认开源版本没有也不能设置的。



创建完数据库后,可以进入“浏览数据”来查看表的数据,并对表的数据进行可视化设置,然后保存为图来展示



除了上面的通过浏览数据的可视化操作来创建可视化图表,也可以通过创建“模型”来实现灵活写sql获取数据跟根据其sql数据创建图表



在看到数据展示的页面,可以根据数据来进行可视化编辑创建图表,主要设置要展示图类型(饼图、线图、柱形等),然后再设置x轴和y轴的字段的就可以看到图表会被正确显示出来了。



最后将创建好的图表保存到仪表板里面就可以了

其实官网有个讲解视频,讲得也很不错,看完之后还是比较容易上手的(不过是英语的,主要仔细看看他的操作)。 https://www.metabase.com/demo

总结

metabase 搭建还是比较简单的,有提供了一个启动jar包提供启动安装,不需要像Superset 等需要安装python、npm 等环境或者安装docker 来安装。启动的时候还提供灵活的环境变量来设置的端口、链接的数据库等启动配置信息。

另外有个部署的亮点是它默认支持PostgreSQL和MySQL这两种比较流行的数据库作为应用存储,不需要再修改源码或者增加jar包才可以支持。一开始的我以为它是只支持PostgreSQL数据库的,想着我对PostgreSQL不太熟悉,还考虑过怎么安装PostgreSQL,后来细看了一下它官方安装文档,才知道MySQL也是支持的,节省了我安装部署的一大部分工作量。不过它后端实现使用 Clojure 语言,这个没什么听过,如果要二开也是算一个比较大的工作量,如果是 Java 的话,估计现在有一大批有关它的二开系统了。

我这边搭建了一个公开的metabase系统的demo,地址为:http://metabase.kanlon.ink/ 账号和密码可以关注 CrudBoys 公众 回复“可视化”获取

参考

  1. metadata 安装可以设置变量: https://www.metabase.com/docs/v0.46/configuring-metabase/environment-variables
  2. github地址: https://github.com/metabase/metabase
  3. 官网及介绍视频:https://www.metabase.com/demo
  4. 其他参考资料:https://metabasecn.net/ 中文介绍

Metabase可视化BI系统部署安装及简单使用的更多相关文章

  1. Davinci 可视化系统部署安装及简单使用

    Davinci 是一个目前比较热门的国内开源BI系统,功能比较完善,各种可视化效果也挺不错.主要获取数据的方式是通过编写SQL 创建数据视图来展示各种图表的. Davinci面向业务人员/数据工程师/ ...

  2. 最火的分布式调度系统 XXL-JOB 安装和简单使用

    唉,在谈文章之前先说一下自己的情况.原计划是在上周六写完这篇文章的,然而周六的时候打开电脑的,按照平常"惯例",先补一些 "黑色五叶草"/"进巨&qu ...

  3. linux系统部署安装过程

    1. 虚拟环境安装 1.新建虚拟机   2.虚拟机设置 2.系统历程 1.进入系统引导界面进行配置 引导项说明:            1.安装centos 系统                    ...

  4. walle(瓦力)部署系统的安装和简单使用

    Walle(瓦力):一套软件开发的部署系统.提供了清晰的日志记录,支持数据的回滚.用于解决大型团队在软件开发中的测试.预测试和上线的统一部署管理. 系统环境:CentOS6.8-A CentOS-6. ...

  5. 可视化数据matplotlib之安装与简单折线图

    matplotlib是一个可视化数据的模块,安装前需要先安装Visual Studio Community:然后去https://pypi.python.org/pypi上查找matplotlib并下 ...

  6. Redhat系统部署安装Splunk

    一.下载安装包 可以从国内网站进入:http://10data.com/splunk/ 下载前需要注册一个splunk账号,注册后便可以提供下载,安装包名称:splunklight-6.5.1-f74 ...

  7. VMware下CenOS7系统的安装及lnmp服务器的搭建

    CentOS7系统的安装 CentOS7下载:http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso 下 ...

  8. BI系统打包Docker镜像及容器化部署的具体实现

    在过去的几年中,"云"作为明星热词站在了各种新潮技术之中,你可能使用过,但说不清它的原理:或者是没用过,但听过它的大名:也可能连它的名字都没听过,但你对这只蓝色鲸鱼一定十分眼熟.作 ...

  9. BI系统打包Docker镜像及部署的技术难度和实现

    BI系统打包Docker镜像及部署的技术难度和实现 随着容器化技术盛行,Docker在前端领域也有着越来越广泛的应用:传统的前端部署方式需要我们将项目打包生成一系列的静态文件,然后上传到服务器,配置n ...

  10. MongoDB在Windows下安装、Shell客户端的使用、Bson扩充的数据类型、MongoVUE可视化工具安装和简单使用、Robomongo可视化工具(2)

    一.Windows 下载安装 1.去http://www.mongodb.org/downloads下载,mongodb默认安装在C:\Program Files\MongoDB目录下,到F:\Off ...

随机推荐

  1. 把 ChatGPT 加入 Flutter 开发,会有怎样的体验?

    前言 ChatGPT 最近一直都处于技术圈的讨论焦点.它除了可作为普通用户的日常 AI 助手,还可以帮助开发者加速开发进度.声网社区的一位开发者"小猿"就基于 ChatGPT 做了 ...

  2. 能快速构建和定制网络拓扑图的WPF开源项目-NodeNetwork

    大家好,我是沙漠尽头的狼,今天介绍一个WPF开源项目-NodeNetwork,它可以帮助我们快速构建和定制网络拓扑图. 一.前言 在现代软件开发中,数据可视化和可交互性越来越受到关注.为了实现这一点, ...

  3. Centos7端口开放及查看

    1.开放端口 firewall-cmd --zone=public --add-port=端口/tcp --permanent eg:firewall-cmd --zone=public --add- ...

  4. .Net 6.0定义全局当前身份缓存对象

    背景: 当前身份缓存对象顾名思义就是:当前登录的用户身份对象,那它解决了什么问题呢?其实在我们日常开发过程中经常能用的到几乎是必备的,就比如我给某个表插入数据时需要创建人或者一些权限的访问,都得用到当 ...

  5. PHP微信三方平台-微信支付(扫码支付)

    1.官方文档地址: https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1 2.逻辑分析: 生成支付二维码->用户扫码支付-& ...

  6. 基于el-input实现数字区间输入框(已发布npm/github)

    项目地址:https://github.com/heyu3913/InputNumberRange  (求star) input-number-range tips:更多定制化需求请联系: 13102 ...

  7. 开源不到 48 小时获 35k star 的推荐算法「GitHub 热点速览」

    本周的热点除了 GPT 各类衍生品之外,还多了一个被马斯克预告过.在愚人节开源出来的推特推荐算法,开源不到 2 天就有了 35k+ 的 star,有意思的是,除了推荐算法本身之外,阅读源码的工程师们甚 ...

  8. Mybatis中批量插入和一些问题的解决

    批量插入有三个问题,第一是执行效率,第二数据冲突,第三数据重跑更新操作. 一般对于这样的问题有以下操作方法. 第一是执行效率:mybatis支持两种高效插入. 1.mybtis的foreach标签,f ...

  9. CS144 计算机网络 Lab0:Networking Warmup

    前言 本科期间修读了<计算机网络>课程,但是课上布置的作业比较简单,只是分析了一下 Wireshark 抓包的结构,没有动手实现过协议.所以最近在哔哩大学在线学习了斯坦福大学的 CS144 ...

  10. 【总结】浅刷leetcode,对于位运算提高性能的一些总结

    目录 什么是位运算? 位运算技巧 1. 判断奇偶性 2. 交换两个数 3. 判断一个数是否是2的幂次方 4. 取绝对值 5. 计算平均数 结论 位运算技巧是计算机科学中非常重要的一部分,它可以用来解决 ...