之前有读者问我有没有什么好用的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-networknetworks: 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 --permanentfirewall-cmd --reload
- 所有准备就绪,间接运行装置目录下的
install.sh
文件进行装置;
./install.sh
- 装置过程波及下载镜像,工夫较长须要急躁期待,最终装置胜利后显示如下;
➜ dataease-v1.5.2-online ./install.sh Stopping doris-fe ... doneStopping doris-be ... doneStopping kettle ... doneRemoving doris-fe ... doneRemoving doris-be ... doneRemoving kettle ... doneRemoving 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 ... donePulling kettle ... donePulling mysql-de ... donePulling dataease ... donePulling 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-femysql -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!