dataease 部署

dataease部署简介

官方给的在线部署方式,看似非常简单,其实是写的bash脚本,通过安装

docker,docker-compose等一系列工具,执行脚本来操作的,屏蔽了很多细节,而且linux本身又分了很多发行版,所以,很容易有一些隐形的坑,而且在线安装非常耗时,所以,这里采用了直接下载源码,修改部分配置,改成使用可执行jar的方式启动,回归传统的方式,简单有效

本文档基于当时的最新版v1.2.2,不是该版本的时候,仅供参考

开始部署

1. 下载源码

  1. 下载源码
  2. checkout tag
1
2
git clone git@github.com:dataease/dataease.git
git checkout v1.2.2

2. 准备编译环境

因为dataease使用的pentaho-kettle相关系列的jar,不在maven中央仓库,所以需要设置额外的profile,来下载相关的jar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<profile>
<id>omni</id>
<repositories>
<repository>
<id>omniMaven</id>
<url>https://nexus.pentaho.org/content/groups/omni</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>

注意mvn使用的时候,不要忘记增加参数增加-P omni来使该profile起效

3. 编译代码

执行一下命令编译,第一次编译非常慢,下载下载node,并且执行npm install,还要下载大量的jar,非常耗时

1
mvn clean package -DskipTests

4. 需要修改的配置

4.1 获取dataease.properties文件

下载在线安装包,解压以后,在dataease/templates/目录找到dataease.properties文件,复制到项目的backend/src/main/resources下面,里面的spring.datasource相关的就是该应用使用的数据库配置,其余的可以暂时忽略

4.2 修改io.dataease.Application配置

修改valueclasspath:dataease.properties

1
@PropertySource(value = {"classpath:dataease.properties"}, encoding = "UTF-8", ignoreResourceNotFound = true)

4.3 修改io.dataease.config.WebMvcConfig配置

  1. 复制mapFiles文件夹到backend/src/main/resources目录

  2. 修改io.dataease.config.WebMvcConfig类,value改为classpath:mapFiles/full/.

1
2
@Value("${geo.rootpath:classpath:mapFiles/full/}")
private String geoPath;

4.4 修改ehcache.xml的引用位置

ehcache.xmldiskStore改成线上存在的位置,否则回报错,需要提前修改,因为打包成可执行jar以后,就不好修改了

4.5 generatorConfig.xml修改

1
<properties url="classpath:dataease.properties"/>

4.6 logback.xml修改

删除下面一行,直接使用application.properties的配置,

1
<property file="/opt/dataease/conf/dataease.properties"/>

总共有三个引用,其中只有${logger.level:INFO}有默认值,其余都没有,需要自己配置,直接配置到application.properties文件里面

  1. ${logging.file.path}
  2. ${logger.level:INFO}
  3. ${logger.sql.level}

5. 重新编译

重新编译即可,backend项目target目录会生成一个backend-1.2.0.jar,这个就是spring boot的可执行jar,可以直接部署

6. 配置专用数据库

因为dataease项目使用了一些额外的功能,所以数据库的配置必须满足一下要求,如果原来的数据库已经满足,可以忽略,不满足,建议docker新建一个数据库,专门给dataease使用

  1. lower_case_table_names=1不区分大小写
  2. group_concat_max_len=1024000尽可能的数值非常大
  3. sql_mode去掉only_full_group_by,以mysql8.0.26为例,去掉only_full_group_by以后,这样配置sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

7. 配置默认数据源

用户有两个,一个是admin,一个是demo,密码默认都是dataease,登陆以后,会发现默认的数据源配置不对,因为我们不是docker的方式部署,数据库用的是我们自己的配置,所以,可以新建一个数据源,填写我们数据库的配置,然后到数据库datasource表,把configuration字段,复制到’demo’记录那一行,这样,所有的预览就可以正常起效了