1 项目结构

  1. .
  2. ├── Dockerfile # 构建容器镜像使用的 dockerfile
  3. ├── LICENSE # License 申明
  4. ├── README.md
  5. ├── backend # 后端项目主目录
  6. ├── frontend # 前端项目主目录
  7. └── pom.xml # 整体 maven 项目使用的 pom 文件

2 配置开发环境

2.1 环境准备

  1. **后端:**
  2. DataEase 后端使用了 Java 语言的 Spring Boot 框架,并使用 Maven 作为项目管理工具。开发者需要先在开发环境中安装 JDK 1.8 Maven
  3. **前端:**
  4. DataEase 前端使用了 Vue.js 作为前端框架,ElementUI 作为 UI 框架,并使用 npm 作为包管理工具。开发者请先下载 Node.js 作为运行环境,IDEA 用户建议安装 Vue.js 插件,便于开发。
  5. **安装 npm:**
  6. 进入网站 https://nodejs.org/en/download/, 选择相应的安装包进行安装即可。

2.2 初始化配置

  1. **数据库初始化:**
  2. DataEase 使用 MySQL 数据库,推荐使用 MySQL 5.7 版本。同时 DataEase 对数据库部分配置项有要求,请参考下附的数据库配置,修改开发环境中的数据库配置文件(以下配置有部分参数可能并不适用 MySQL 8.x 版本)
  3. ```
  4. [mysqld]
  5. datadir=/var/lib/mysql
  6. default-storage-engine=INNODB
  7. character_set_server=utf8
  8. lower_case_table_names=1
  9. table_open_cache=128
  10. max_connections=2000
  11. max_connect_errors=6000
  12. innodb_file_per_table=1
  13. innodb_buffer_pool_size=1G
  14. max_allowed_packet=64M
  15. transaction_isolation=READ-COMMITTED
  16. innodb_flush_method=O_DIRECT
  17. innodb_lock_wait_timeout=1800
  18. innodb_flush_log_at_trx_commit=0
  19. sync_binlog=0
  20. group_concat_max_len=1024000
  21. sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  22. skip-name-resolve
  23. ```
  24. 请参考文档中的建库语句创建 DataEase 使用的数据库,**DataEase 后端服务启动时会自动在配置的库中创建所需的表结构及初始化数据。**
  25. ```mysql
  26. CREATE DATABASE `dataease` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  27. ```
  28. **配置文件:**
  29. DataEase 会默认加载该路径下的配置文件 /opt/dataease/conf/dataease.properties,请参考下列配置创建对应目录及配置文件。
  30. ```properties
  31. # 数据库配置
  32. spring.datasource.url=jdbc:mysql://mysql:3306/dataease?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
  33. spring.datasource.username=root
  34. spring.datasource.password=Password123@mysql
  35. carte.host=kettle
  36. carte.port=18080
  37. carte.user=cluster
  38. carte.passwd=cluster
  39. doris.db=dataease
  40. doris.user=root
  41. doris.password=Password123@doris
  42. doris.host=doris-fe
  43. doris.port=9030
  44. doris.httpPort=8030
  45. #新建用户初始密码
  46. dataease.init_password=DataEase123456
  47. #登录超时时间单位min 如果不设置 默认8小时也就是480
  48. dataease.login_timeout=480
  49. logger.level=INFO
  50. #DE运行模式,可选值有 local、simple、cluster,分别对应本地模式、精简模式、集群模式
  51. engine_mode=simple
  52. ```
  53. **地图文件:**
  54. DataEase 1.2 版本开始支持地图组件。在 DataEase 源码工程的目录下有一个地图文件目录 mapFiles/full,需要将该目录下的文件放置到 /opt/dataease/data/feature/full 目录下。如果是 Windows 的话,可以在工程目录所在盘的根目录下,创建 opt/dataease/data/feature/full 目录。

3 代码运行

3.1 IDEA 方式运行

  1. **Windows 下环境配置(可选):**
  2. Windows 环境下对配置文件的路径会有所要求,一般可以采用下面两种配置方案里的一种,非 Windows 环境以下方案可跳过。
  3. **方案一(推荐):**
  4. 将配置文件放置到工程源码的所在盘的指定路径下,以 dataease.properties 配置文件举例,如源码工程在 D 盘下,则配置文件存放路径为 d:\opt\dataease\conf\dataease.properties。其他配置文件类似。
  5. 此方案中不需要对 DataEase 的源码进行任何修改。

方案一{width=”900px”}

  1. **方案二:**
  2. 配置文件可以随意放置在任意路径下,但需要修改工程源码中配置文件的路径信息。以 dataease.properties 配置文件举例,如该配置文件存放在 D 盘根目录下,则需要按下图修改三个地方的配置路径:

方案二{width=”900px”}

  1. **运行后端服务:**
  2. 新建一个 git 项目 输入主工程 git 地址: git@github.com:dataease/dataease.git

新建工程{width=”900px”}

  1. **配置 maven 并引入 pom.xml:**

引入pom-1{width=”900px”}

引入pom-2{width=”900px”}

  1. **启动后端,两种启动方式:**
  2. - 可以使用 io.dataease.Application 入口方法直接启动
  3. - 可以使用 maven 插件中的 backend>spring-boot>spring-boot:start 启动

启动后端{width=”900px”}

  1. **运行前端:**
  2. 进入工程目录下的子目录 frontend, npm i 安装前端依赖包
  3. 安装完成后,使用 npm run serve 命名启动前端,前端启动后即可通过 http://localhost:9528/ 地址访问

安装前端{width=”900px”}

3.2 本地 jar 包方式运行

  1. 1.下载 DataEase 工程源码(工程地址:https://github.com/dataease/dataease.git) ;
  2. 2.进入工程目录后,执行 mvn clean package 进行编译;
  3. 3.编译完成后,在工程目录的 backend/target 目录下,会生成一个 backend-x.y.z.jar xyz代表版本号,xyz具体值视具体版本而定) 的可运行 jar 包。可以通过 java -jar backend-x.y.z.jar 来运行 DataEase
  4. 4.服务完全启动后,可以在本地浏览器访问 http://localhost:8081 来访问 DataEase 服务。

4 本地运行 Kettle 和 Doris (可选)

  1. **注意:** 若需要调试 Excel 和定时同步模式数据集的话,需要此支持。

4.1 准备运行环境

  1. **下载 installer 工程:**
  2. ```shell
  3. git clone https://github.com/dataease/installer.git
  4. ```
  5. **初始化目录:**
  6. ```shell
  7. mkdir -p /opt/dataease/conf
  8. mkdir -p /opt/dataease/data/kettle
  9. mkdir -p /opt/dataease/data/fe
  10. mkdir -p /opt/dataease/data/be
  11. mkdir -p /opt/dataease/logs
  12. ```
  13. **准备配置文件:**
  14. ```shell
  15. cd installer/dataease/templates && cp -rp fe.conf be.conf dataease.properties .kettle /opt/dataease/conf && cd -
  16. # v1.4.0 及以前版本执行以下命令
  17. cd installer/dataease && cp docker-compose-kettle-doris.yml /opt/dataease/ && cd -
  18. # v1.5.0 及以后版本可以手动把 installer/dataease 目录下的 docker-compose-kettle.yml docker-compose-doris.yml 内容合并起来(去掉重复的 version 和 services 定义),命名为 docker-compose-kettle-doris.yml,放置到 /opt/dataease 目录下
  19. ```
  20. **按实际情况修改配置文件:
  21. fe.confbe.conf、.kettle 一般情况下不需要修改,其他配置文件的修改可以参考下面示例:
  22. 修改 dataease.properties 文件,设置 MySQLKettle Doris 的连接信息,以本机IP192.168.1.9)为例:**
  23. ```properties
  24. # 数据库配置
  25. spring.datasource.url=jdbc:mysql://192.168.1.9:3306/dataease?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
  26. spring.datasource.username=root
  27. spring.datasource.password=Password123@mysql
  28. carte.host=192.168.1.9
  29. carte.port=18080
  30. carte.user=cluster
  31. carte.passwd=cluster
  32. doris.db=dataease
  33. doris.user=root
  34. doris.password=Password123@doris
  35. doris.host=192.168.1.9
  36. doris.port=9030
  37. doris.httpPort=8030
  38. #新建用户初始密码
  39. dataease.init_password=DataEase123456
  40. #登录超时时间单位min 如果不设置 默认8小时也就是480
  41. dataease.login_timeout=480
  42. logger.level=INFO
  43. ```
  44. **修改 docker-compose-kettle-doris.yml,将 ${DE_BASE} 替换为 /opt,将 doris-fe kettle 的运行端口暴露出来,增加网络定义部分:**
  45. ```yml
  46. version: '2.1'
  47. services:
  48. doris-fe:
  49. image: registry.cn-qingdao.aliyuncs.com/dataease/doris:0.15
  50. container_name: doris-fe
  51. ports:
  52. - 8030:8030
  53. - 9030:9030
  54. environment:
  55. - DORIS_ROLE=fe-leader
  56. volumes:
  57. - /opt/dataease/data/fe:/opt/doris/fe/doris-meta
  58. - /opt/dataease/logs/fe:/opt/doris/fe/log
  59. - /opt/dataease/conf/fe.conf:/opt/doris/fe/conf/fe.conf
  60. networks:
  61. dataease-network :
  62. ipv4_address: 172.19.0.198
  63. restart: always
  64. doris-be:
  65. image: registry.cn-qingdao.aliyuncs.com/dataease/doris:0.15
  66. container_name: doris-be
  67. environment:
  68. - DORIS_ROLE=be
  69. volumes:
  70. - /opt/dataease/data/be:/opt/doris/be/storage
  71. - /opt/dataease/logs/be:/opt/doris/be/log
  72. - /opt/dataease/conf/be.conf:/opt/doris/be/conf/be.conf
  73. networks:
  74. dataease-network :
  75. ipv4_address: 172.19.0.199
  76. restart: always
  77. kettle:
  78. image: registry.cn-qingdao.aliyuncs.com/dataease/kettle:8.3-v1.2
  79. container_name: kettle
  80. ports:
  81. - 18080:18080
  82. volumes:
  83. - /opt/dataease/conf/:/opt/dataease/conf
  84. - /opt/dataease/data/kettle:/opt/dataease/data/kettle
  85. networks:
  86. - dataease-network
  87. restart: always
  88. networks:
  89. dataease-network:
  90. driver: bridge
  91. ipam:
  92. driver: default
  93. config:
  94. - subnet: 172.19.0.0/16
  95. gateway: 172.19.0.1
  96. ```

4.2 运行 Kettle 和 Doris 组件

  1. **执行命令运行组件:**
  2. ```shell
  3. cd /opt/dataease
  4. docker-compose -f docker-compose-kettle-doris.yml up -d
  5. ```

5 其他注意事项

  1. 内置示例数据以 flyway 的形式在 DataEase 启动时自动插入到了 MySQL 数据库中,在源码运行的情况下,需要登录到 DataEase 控制台,进入到【数据源】页面,选择 "demo" 数据源,将 "demo" 数据源的相关连接信息修改正确,保存后即可正常使用内置示例数据。

modify-demo-dataset{width=”900px”}