之前有读者问我有没有什么好用的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!