之前有读者问我有没有什么好用的 BI(Business Intelligence)工具?BI 工具简略来说就是一种数据可视化工具。明天给大家举荐一款开源的数据可视化工具
DataEase
,基于 SpringBoot 实现,集成 Apache Doris + Kettle,可反对超大数据量秒级查问,心愿对大家有所帮忙!
SpringBoot 实战电商我的项目 mall(50k+star)地址:https://github.com/macrozheng/mall
简介
DataEase 是一款号称 人人可用
的开源数据可视化剖析工具,在 Github 上曾经有 4.1K+Star。致力于帮忙用户疾速剖析数据并洞察业务趋势,从而实现业务的改良与优化。DataEase 反对丰盛的数据源连贯,可能通过拖拽形式疾速制作图表,并能够分享给别人。
上面是一张由 DataEase 生成的可视化大屏,还是挺炫酷的。
架构
作为一款数据可视化工具,DataEase 应用了现阶段风行的大数据技术 Apache Doris 和 Kettle,如果你想学习这两种技术的话,这个我的项目是个不错的抉择。
零碎架构
DataEase 应用的技术栈如下:
技术 | 阐明 |
---|---|
SpringBoot | 后端根底框架 |
MySQL | 数据存储 |
Apache Doris | 一个现代化的 MPP 剖析型数据库产品。仅需亚秒级响应工夫即可取得查问后果,无效地反对实时数据分析。 |
Kettle | 一款开源的 ETL(即数据抽取、转换、装载的过程)工具,纯 Java 编写,能够实现高效稳固的数据抽取。 |
Docker | 容器化部署 |
Vue | 前端根底框架 |
Element | 前端 UI 框架 |
各种技术在 DataEase 中的应用场景如下:
性能架构
上面是 DataEase 的性能架构图,从中咱们很容易看出应用 DataEase 咱们能做什么。
装置
DataEase 提供了安装包,下载安装包,应用装置脚本
install.sh
即可实现装置,如果你的服务器曾经装置了 MySQL
,须要一些额定的配置。
- 首先咱们须要下载安装包,这里应用的是
v1.5.2
版本,下载地址:https://github.com/dataease/d…
- 下载实现后上传到 Linux 服务器,应用如下命令解压到指定目录;
tar -zxvf dataease-v1.5.2-online.tar.gz
- 解压实现后目录构造如下,留神
dataease
文件夹下有 docker-compose 部署脚本;
- 接下来批改装置配置
install.conf
,次要批改服务运行端口DE_PORT
和 MySQL 配置;
# 根底配置
## 装置目录
DE_BASE=/opt
## Service 端口(默认 80,大概率抵触)DE_PORT=8010
# 数据库配置
## 是否应用内部数据库
DE_EXTERNAL_MYSQL=false
## 数据库地址(默认 mysql,之前如果用 docker 装置过 mysql 倡议批改)DE_MYSQL_HOST=mysql-de
## 数据库端口(默认 3306,之前如果用 docker 装置过 mysql 倡议批改)DE_MYSQL_PORT=3307
## DataEase 数据库库名
DE_MYSQL_DB=dataease
## 数据库用户名
DE_MYSQL_USER=root
## 数据库明码
DE_MYSQL_PASSWORD=Password123@mysql
- 批改 DataEase 的 docker-compose 文件,门路为
dataease/docker-compose.yml
,批改 MySQL 依赖名称和网络配置,默认网络配置可能会引起抵触;
services:
dataease:
image: registry.cn-qingdao.aliyuncs.com/dataease/dataease:v1.5.2
container_name: dataease
ports:
- ${DE_PORT}:8081
mem_limit: 4096m
volumes:
- ${DE_BASE}/dataease/conf:/opt/dataease/conf
- ${DE_BASE}/dataease/logs:/opt/dataease/logs
- ${DE_BASE}/dataease/plugins/thirdpart:/opt/dataease/plugins/thirdpart
- ${DE_BASE}/dataease/data/kettle:/opt/dataease/data/kettle
depends_on:
# 如果之前应用 Docker 装置过 mysql,批改名称
mysql-de:
condition: service_healthy
networks:
- dataease-network
networks:
dataease-network:
driver: bridge
ipam:
driver: default
# 默认网段配置可能会抵触,倡议批改
config:
- subnet: 172.33.0.0/16
gateway: 172.33.0.1
- 批改 Doris 的 docker-compose 文件,门路为
dataease/docker-compose-kettle-doris.yml
,次要批改网络配置;
version: '2.1'
services:
doris-fe:
image: registry.cn-qingdao.aliyuncs.com/dataease/doris:0.15
container_name: doris-fe
networks:
# 批改为 33 网段避免抵触
dataease-network :
ipv4_address: 172.33.0.198
restart: always
doris-be:
image: registry.cn-qingdao.aliyuncs.com/dataease/doris:0.15
networks:
# 批改为 33 网段避免抵触
dataease-network :
ipv4_address: 172.33.0.199
restart: always
- 批改 MySQL 的 docker-compose 文件,门路为
dataease/docker-compose-mysql.yml
,只有批改容器名称即可;
version: '2.1'
services:
mysql-de:
image: registry.cn-qingdao.aliyuncs.com/dataease/mysql:5.7.36
# 之前应用 Docker 装置过 mysql,须要批改容器名称
container_name: mysql-de
env_file:
- ${DE_BASE}/dataease/conf/mysql.env
ports:
- ${DE_MYSQL_PORT}:3306
volumes:
- ${DE_BASE}/dataease/conf/my.cnf:/etc/mysql/conf.d/my.cnf
- ${DE_BASE}/dataease/bin/mysql:/docker-entrypoint-initdb.d/
- ${DE_BASE}/dataease/data/mysql:/var/lib/mysql
networks:
- dataease-network
- 如果你启用了 firewall 防火墙的话,还要凋谢下
8010
端口;
firewall-cmd --zone=public --add-port=8010/tcp --permanent
firewall-cmd --reload
- 所有准备就绪,间接运行装置目录下的
install.sh
文件进行装置;
./install.sh
- 装置过程波及下载镜像,工夫较长须要急躁期待,最终装置胜利后显示如下;
➜ dataease-v1.5.2-online ./install.sh
Stopping doris-fe ... done
Stopping doris-be ... done
Stopping kettle ... done
Removing doris-fe ... done
Removing doris-be ... done
Removing kettle ... done
Removing network dataease_dataease-network
======================= 开始装置 =======================
[DATAEASE Log]: 拷贝配置文件模板文件 -> /opt/dataease/conf
[DATAEASE Log]: 依据装置配置参数调整配置文件
time: Wed Dec 22 10:59:39 CST 2021
/usr/sbin/getenforce
[DATAEASE Log]: 检测到 Docker 已装置,跳过装置步骤
[DATAEASE Log]: 启动 Docker
Redirecting to /bin/systemctl start docker.service
[DATAEASE Log]: 检测到 Docker Compose 已装置,跳过装置步骤
[DATAEASE Log]: 拉取镜像
Pulling doris-be ... done
Pulling kettle ... done
Pulling mysql-de ... done
Pulling dataease ... done
Pulling doris-fe ... done
... 省略若干日志
Name Command State Ports
-----------------------------------------------------------------------------------------------------
dataease /deployments/run-java.sh Up (health: starting) 0.0.0.0:8010->8081/tcp
doris-be /entrypoint.sh Up (healthy)
doris-fe /entrypoint.sh Up (health: starting)
kettle /opt/kettle/carte.sh kettl ... Up
mysql-de docker-entrypoint.sh mysqld Up (healthy) 0.0.0.0:3306->3306/tcp, 33060/tcp
[DATAEASE Log]: 服务启动中,请稍候 ...
[DATAEASE Log]: 服务启动中,请稍候 ...
[DATAEASE Log]:【正告】服务在等待时间内未齐全启动!请稍后应用 dectl status 查看服务运行状况。======================= 装置实现 =======================
请通过以下形式拜访:
URL: http://$LOCAL_IP:8010
用户名: admin
初始密码: dataease
- 因为咱们批改了 MySQL 的配置,还需批改装置目录
/opt
下的 MySQL 连贯配置,文件门路为/opt/dataease/conf/dataease.properties
,改为mysql-de
;
# 数据库配置
spring.datasource.url=jdbc:mysql://mysql-de:3306/dataease?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
- 而后重启
dataease
容器;
docker restart dataease
- 重启时应用
docker logs -f dataease
查看日志,当数据库导入实现后我的项目才算启动胜利;
- 因为 DateEase 装置胜利后会主动在零碎中注册
dataease
服务,所以咱们能够应用如下命令来操作它。
# 查看服务状态
systemctl status dataease
# 启动服务
systemctl start dataease
# 进行服务
systemctl stop dataease
应用
应用 DataEase 能够不便地实现数据可视化,接下来咱们以 Excel 和 MySQL 中的数据为例,来体验下它的性能。
基本概念
在应用 DataEase 之前,咱们得理解它的一些基本概念,这对应用它会很有帮忙。
- 数据源:是后续数据分析的数据起源,指的是各种数据库连贯信息,反对 MySQL、Elasticsearch、MongoDB 等罕用数据源;
- 数据集:数据的汇合,能够是 Excel 数据、数据库表数据、自定义 SQL 查问数据,是视图的数据起源;
- 视图:可视化展现的最小单元,是组成仪表板的根本元素,能够是折线图、柱状图、饼状图等;
- 仪表板:可视化大屏,视图组合界面;
- 模板:可用来疾速构建仪表板的数据及款式模板。
Excel 数据分析
上面咱们将从 Excel 中获取数据,实现仪表板,来体验下 DataEase 的数据可视化性能。
- DataEase 启动胜利后,应用账号
admin:dataease
即可登录,拜访地址:http://192.168.3.105:8010/
- 因为咱们之前批改了 MySQL 容器的名称,这里的
数据源
咱们也要批改下;
- 接下来咱们须要创立一个
数据集
,应用官网的示例 Excel 即可,下载实现后能够关上看下,一份商品销售报表,下载地址:https://dataease.io/docs/manu…
- 而后抉择增加
数据集
;
- 新建时上传 Excel,最初抉择确认进行导入;
- 因为之前批改了 Doris 的网段,导入 Excel 数据会呈现无奈显示的状况,并弹出如下谬误提醒;
- 进入
mysql-de
容器外部,输出如下命令即可解决;
# 进入内置 MySQL 容器内
docker exec -it mysql-de sh
# 进入 MySQL 容器后,连贯 doris-fe
mysql -uroot -h doris-fe -P 9030
# 因为批改了 doris 的网段,此处也要批改
ALTER SYSTEM ADD BACKEND "172.33.0.199:9050";
SET PASSWORD FOR 'root' = PASSWORD('Password123@doris');
CREATE DATABASE dataease;
- 数据导入胜利后,就能够开始创立
视图
了,抉择咱们刚刚导入的数据集;
- 再抉择
视图
的类型,这里抉择了示意散布的饼图;
- 拖动抉择维度和指标,再改改款式,最初再保留下,一张视图就实现了;
- 再多创立几个视图,而后就能够创立
仪表板
了,再通过拖拽编辑的模式,仪表板就实现了,是不是挺不便的!
数据库数据分析
当然 DataEase 也反对从数据库中导入数据,甚至能够自定义 SQL 查问,上面咱们来体验下它的这些性能。
- 首先咱们得新建一个数据源,能够抉择各种类型数据源,反对还挺多的,这里抉择 MySQL;
- 而后创立数据集,抉择从数据库增加数据集;
- 再创立视图,应用下面创立的数据集即可;
- 当然你也能够自定义 SQL 查问来增加数据集;
- DataEase 还有个比拟弱小的性能,能够设置各个视图间接依据某个字段进行
联动
,比方在官网示例中,咱们抉择了某个省份,其余视图的数据就变成了这个省份的了;
- 还有个比拟有意思的性能叫
下钻
,比方咱们抉择某个省份进行下钻,就能够查看该省份下的城市相干数据。
总结
总的来说,DataEase 是一款十分不错的数据可视化工具。它能够让咱们不写代码,就轻松实现一些数据可视化的需要,反对从各种数据源和 Excel 中剖析数据。并且它应用了当下风行的大数据分析技术 Apache Doris 和 Kettle,对这些技术感兴趣的敌人也能够尝试下它。
参考资料
- 我的项目地址:https://github.com/dataease/d…
- 官网文档:https://dataease.io/docs/
本文 GitHub https://github.com/macrozheng/mall-learning 曾经收录,欢送大家 Star!