当前位置: 首页 > 后端技术 > Java

无需写代码轻松实现数据可视化,这款基于SpringBoot的神器简直神了!

时间:2023-04-01 19:25:45 Java

之前有读者问我有没有好用的BI(商业智能)工具?BI工具只是一种数据可视化工具。今天给大家推荐一款开源的数据可视化工具DataEase,它基于SpringBoot,集成ApacheDoris+Kettle,支持大数据量秒级查询。希望对大家有所帮助!SpringBoot实战电商项目商城(50k+star)地址:https://github.com/macrozheng/mall简介DataEase是一款开源的数据可视化分析工具,据说人人可用,已经有4.1了Github上的K+星。致力于帮助用户快速分析数据,洞察业务趋势,从而实现业务改进和优化。DataEase支持丰富的数据源连接,可以通过拖拽快速创建图表,并可以分享给其他人。下面是数易生成的可视化大屏,相当炫酷。架构DataEase作为数据可视化工具,使用了流行的大数据技术ApacheDoris和Kettle。如果你想学习这两种技术,这个项目是一个不错的选择。系统架构DataEase使用的技术栈如下:技术说明SpringBoot后端基础框架MySQL数据存储ApacheDoris是一款现代MPP分析型数据库产品。亚秒级响应即可获得查询结果,有效支持实时数据分析。Kettle是一个开源的ETL(即数据抽取、转换、加载过程)工具,纯Java编写,可以实现高效稳定的数据抽取。Docker容器化部署Vue前端基础框架Element前端UI框架数易各种技术的使用场景如下:功能架构下面是数易的功能架构图,从中我们可以很容易的看出数易能做什么.安装数易提供安装包,下载安装包,使用安装脚本install.sh完成安装。如果您的服务器已经安装了MySQL,则需要进行一些额外的配置。首先我们需要下载安装包,这里是v1.5.2版本,下载地址:https://github.com/dataease/d...下载完成后上传到linux服务器,并使用如下命令解压到指定目录;tar-zxvfdataease-v1.5.2-online.tar.gz解压完成后目录结构如下。注意dataease文件夹下有docker-compose部署脚本;然后修改安装配置install.conf,主要修改服务运行端口DE_PORT和MySQL配置;#基础配置##安装目录DE_BASE=/opt##服务端口(默认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依赖名称和网络配置,默认网络配置可能会造成冲突;服务:dataease:图像:注册表.cn-qingdao.aliyuncs.com/dataease/dataease:v1.5.2container_name:dataease端口:-${DE_PORT}:8081mem_limit:4096m卷:-${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/kettledepends_on:#如果之前用Docker安装过mysql,修改mysql-名称de:condition:service_healthynetworks:-dataease-networknetworks:dataease-network:driver:bridgeipam:driver:default#默认网段配置可能冲突,建议修改config:-subnet:172.33.0.0/16gateway:172.33.0.1修改Dorisdocker-compose文件,路径为dataease/docker-compose-kettle-doris.yml,主要修改网络配置;version:'2.1'services:doris-fe:image:registry.cn-qingdao.aliyuncs.com/dataease/doris:0.15container_name:doris-fenetworks:#修改为33个网段,防止冲突dataease-network:ipv4_address:172.33.0.198restart:alwaysdoris-be:image:registry.cn-qingdao.aliyuncs.com/dataease/doris:0.15networks:#修改为33网段,防止冲突dataease-network:ipv4_address:172.33.0.199restart:always修改mysqldocker-compose文件,路径为dataease/docker-compose-mysql.yml,修改容器名称即可;version:'2.1'services:mysql-de:image:registry.cn-qingdao.aliyuncs.com/dataease/mysql:5.7.36#mysql之前用Docker安装,需要修改容器名container_name:mysql-deenv_file:-${DE_BASE}/dataease/conf/mysql.env端口:-${DE_MYSQL_PORT}:3306卷:-${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/mysqlnetworks:-dataease-network如果启用防火墙,必须开放8010端口;firewall-cmd--zone=public--add-port=8010/tcp--permanentfirewall-cmd--reloadeverythingready就绪,直接运行安装目录下的install.sh文件进行安装;./install.sh安装过程涉及下载镜像,需要耐心等待,时间较长。最终安装成功后,显示如下;?dataease-v1.5.2-online./install.sh停止doris-fe...完成停止doris-be...完成停止kettle...doneRemovingdoris-fe...doneRemovingdoris-be...doneRemovingkettle...doneRemoving网络数据ease_dataease-network========================开始安装==========================【DATAEASE日志】:复制配置文件模板文件->/opt/dataease/conf[DATAEASELog]:根据安装配置参数调整配置文件时间:WedDec2210:59:39CST2021/usr/sbin/getenforce[DATAEASELog]:检测到Docker已经安装,跳过安装步骤[DATAEASELog]:StartDockerRedirectingto/bin/systemctlstartdocker.service[DATAEASELog]:检测到DockerCompose已安装,跳过安装步骤[DATAEASELog]:PullingtheimagePullingdoris-be...donePullingkettle...donePullingmysql-de...donePullingdataease...donePullingdoris-fe...done...省略一些日志NameCommandStatePorts----------------------------------------------------------------------------------------------------dataease/deployments/run-java.shUp(health:starting)0.0.0.0:8010->8081/tcpdoris-be/entrypoint.shUp(healthy)doris-fe/entrypoint.shUp(health:starting)kettle/opt/kettle/carte.shketl...Upmysql-dedocker-entrypoint.shmysqldUp(healthy)0.0.0.0:3306->3306/tcp,33060/tcp[DATAEASELog]:服务启动Pleasewait...[DATAEASELog]:服务正在启动,请稍等...[DATAEASELog]:[Warning]在等待时间内服务没有完全启动!稍后请使用dectlstatus查看服务状态========请通过以下方式访问: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容器;dockerrestartdataease重启时,使用dockerlogs-fdataease查看日志,数据库导入完成即认为项目成功;因为安装成功后会自动安装DateEase在系统中注册dataease服务,所以我们可以使用下面的命令来操作它。#查看服务状态systemctlstatusdataease#启动服务systemctlstartdataease#停止服务systemctlstopdataease使用DataEase可以轻松实现数据可视化。下面我们以Excel和MySQL中的数据为例,来体验一下它的功能。基本概念在使用DataEase之前,我们必须了解它的一些基本概念,这对使用它会有很大的帮助。数据源:后续数据分析的数据源,参考各种数据库连接信息,支持MySQL、Elasticsearch、MongoDB等常用数据源;数据集:数据的集合,可以是Excel数据,数据库表数据,自定义SQL查询数据是视图的数据源;view:视觉显示的最小单位,是仪表盘的基本元素,可以是折线图、直方图、饼图等;dashboard:可视化大屏,视图组合界面;template:可用于快速构建仪表板的数据和样式模板。Excel数据分析接下来我们将从Excel中获取数据并实现仪表盘,体验数易的数据可视化功能。DataEase启动成功后,可以使用admin:dataease账号登录,访问地址:http://192.168.3.105:8010/因为之前我们修改了MySQL容器的名称,这里也需要修改数据源;接下来我们需要创建一个数据集,使用官方的示例Excel即可。下载完成后打开可以看到,一个产品销售报表,下载地址:https://dataease.io/docs/manu...然后选择添加数据集;新建时上传Excel一、最后选择确认导入;因为之前修改了Doris的网段,导致导入的Excel数据显示不出来,会弹出如下错误信息;进入mysql-de容器,输入以下命令解决问题;#进入内置MySQL容器dockerexec-itmysql-desh#进入MySQL容器后,连接doris-femysql-uroot-hdoris-fe-P9030#由于修改了doris的网段,这里也要修改ALTERSYSTEMADDBACKEND"172.33.0.199:9050";SETPASSWORDFOR'root'=PASSWORD('Password123@doris');创建数据库数据库;数据导入成功后,就可以开始创建视图了,选择我们刚刚导入的数据集;再次选择视图类型,这里是一个代表分布的饼图;拖动选择维度和索引,然后改变样式,最后保存,一个视图就完成了;多创建几个view,然后就可以创建dashboard了,拖拽编辑dashboard就完成了,是不是很方便!数据库数据分析当然,DataEase也支持从数据库中导入数据,甚至可以自定义SQL查询。下面就来体验一下它的功能吧。首先,我们必须创建一个新的数据源。我们可以选择各种类型的数据源,支持的也挺多的。这里我们选择MySQL;然后创建数据集,选择从数据库中添加数据集;然后创建一个视图并使用上面创建的数据集。;当然你也可以自定义SQL查询来添加数据集;DataEase还有一个比较强大的功能,可以设置各个视图直接根据某个字段进行链接,比如在官方的例子中,我们选择了某个省份,其他视图中该省份的数据就变成了该省份;还有一个比较有意思的功能叫做下钻,比如我们选择一个省下钻,可以查看到该省的城市相关数据。总结总的来说,DataEase是一款非常优秀的数据可视化工具。它可以让我们不用写代码就可以轻松实现一些数据可视化需求,支持各种数据源和Excel的数据分析。并且使用了当下流行的大数据分析技术ApacheDoris和Kettle,对这些技术感兴趣的朋友也可以尝试一下。参考项目地址:https://github.com/dataease/d...官方文档:https://dataease.io/docs/本文GitHubhttps://github.com/macrozheng/mall-learning已收录,欢迎大家Star!