### 一、$DataEase$最新版本下载 ```apl https://community.fit2cloud.com/#/products/dataease/downloads ``` **在线安装** ```shell curl -sSL https://dataease.oss-cn-hangzhou.aliyuncs.com/quick_start_v2.sh | sh ``` **在线升级** ```shell dectl upgrade ``` ### 二、$DataEase$发布 #### 1、$80$端口发布 ##### 拉取 ```shell docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/openresty/openresty:1.25.3.1-5-alpine-fat ``` ##### 打标 ```shell docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/openresty/openresty:1.25.3.1-5-alpine-fat docker.io/openresty/openresty:1.25.3.1-5-alpine-fat ``` ##### 编辑 $nginx.conf$ ```shell vi /root/nginx.conf ``` ```apl worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; # DataEase 所在机器的IP upstream dataease { server 10.10.14.203:8100; } # 配置日志位置 access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; server { # 监听端口 listen 80; # 监听域名(修改为你自己的域名,且域名与nginx所在服务器的IP绑定) #server_name dataease.test.com; location / { client_max_body_size 600m; client_body_buffer_size 128k; proxy_connect_timeout 600; proxy_read_timeout 600; proxy_send_timeout 600; proxy_buffer_size 64k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_pass http://dataease; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } } ``` ##### 运行 ```shell mkdir /root/nginx_logs docker run --name openresty -d -v /root/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf -v /root/nginx_logs:/var/log/nginx -p 80:80 openresty/openresty:1.25.3.1-5-alpine-fat ``` #### 2、用$/dataease/$发布 > 参考:[DataEase v2 设置动态访问路径,使用 Nginx 路径代理 - FIT2CLOUD 知识库](https://kb.fit2cloud.com/?p=57a47d64-4eda-4ae8-a0b0-4329e57b13ff) **步骤1** ```shell vi /opt/dataease2.0/conf/application.yml ``` ```yaml server: servlet: context-path: /dataease ``` **步骤2** ```shell echo 'DE_CONTEXT_PATH=/dataease' >> /opt/dataease2.0/.env ``` ### 三、访问方式 ```xml 系统登录信息如下: 访问地址: https://www.edusoa.com/dataease 用户名: admin 初始密码: DataEase@123456 ``` ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202410240933597.png) **华为云部署主机的账号** ``` 117.78.60.214 52025 root DsIdeal@123 ``` ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202410171024499.png) ### 四、异常记录 #### $Centos$ $7.9$ $root$账号,输入$reboot$不重新启动,怎么办? 答: ```shell yum update -y ``` 然后使用在线安装,注意:不要使用离线包,离线包问题多多! ``` curl -sSL https://dataease.oss-cn-hangzhou.aliyuncs.com/quick_start_v2.sh | sh ``` [DataEase v2 设置动态访问路径,使用 Nginx 路径代理 - FIT2CLOUD 知识库](https://kb.fit2cloud.com/?p=57a47d64-4eda-4ae8-a0b0-4329e57b13ff) ### 五、备份与还原 ``` # 原版本机器上运行 dectl upgrade # 两个机器都要执行 service dataease stop # 在备份的机器上执行 tar -jcv -f dataease.tar.bz2 /opt/dataease2.0 # 备份机器上启动服务 service dataease start # 下载 dataease.tar.bz2 并在还原的机器上传 # 还原 mv /opt/dataease2.0 /opt/dataease2.0.bak mkdir /opt/dataease2.0 -p tar -xjf dataease.tar.bz2 -C / # 在还原机上执行 service dataease start ``` ### 六、运维 ##### 数据库用户名和密码 ``` username: root password: Password123@mysql ``` ##### 停止 ``` dectl stop ``` ##### 启动 ``` dectl start ``` ### 七、黑科技 > $Q$、如果在线修改数据库中的表,以达到大屏数据直接修改的目的,而且最初的大屏是产品经理使用$Excel$进行模拟数据进行设计的,并不是真正的$Mysql$数据源,能不迁移到$Mysql$数据源就达到这个修改的目标吗,全部迁移到$Mysql$的数据源还有好多工作要做,太麻烦~ $A$:可以采用两个步骤来完成这个目标: 1. **将$Mysql$数据库的$3306$端口暴露出来,让$JAVA$可以连接上** 修改$Mysql$可以使用局域网$IP$访问 ```shell vi /opt/dataease2.0/docker-compose-mysql.yml ``` ​ 添加 ``` ports: - "0.0.0.0:3306:3306" ``` ​ 完整文件 ```yaml version: '3' services: mysql-de: image: registry.cn-qingdao.aliyuncs.com/dataease/mysql:8.4.0 container_name: ${DE_MYSQL_HOST} ports: - "0.0.0.0:3306:3306" althcheck: test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost", "-u${DE_MYSQL_USER}", "-p${DE_MYSQL_PASSWORD}", "--protocol","tcp"] interval: 5s timeout: 3s retries: 10 env_file: - ${DE_BASE}/dataease2.0/conf/mysql.env lumes: - ${DE_BASE}/dataease2.0/conf/my.cnf:/etc/mysql/conf.d/my.cnf ${DE_BASE}/dataease2.0/bin/mysql:/docker-entrypoint-initdb.d/ - ${DE_BASE}/dataease2.0/data/mysql:/var/lib/mysql tworks: - dataease-network ``` 启动,这样才能按$mysql->dataease$ 顺序去启动 ​ 启动 ``` dectl start ``` 这样,$DataEase$自己带的$Mysql$数据库就可以通过宿主机$IP$+$3306$来访问到了。 2. **通过修改其中的数据集完成修改工作** **查询数据表** ```sql -- 数据源表 -- core_datasource select * from core_datasource where name like '%岐山%'; -- 数据集组 select * from core_dataset_group where name like '全省人口变化总体趋势预测'; -- id=1033797259734683648 -- 数据集表 select table_name from core_dataset_table where dataset_group_id='1034544942506184704'; -- 查询或者修改 select * from `excel_人口变化趋势_e1c9395feb` ``` 更详细的见项目代码。 > **$Q$:我想在主页面显示云南省的地图,然后点击地图中某个城市,比如昆明市,进打开一个新的页面,里面是昆明市的地图,如果点击的是楚雄州,打开的新的页面就是楚雄州的地图,并且,要求不能开发16个市州的页面,那样太麻烦了,我只想开发一个市州的页面,让第一页省地图将参数传递到市州的页面,完成类似于钻取的工作,可以吗?** $A$: 目前的$DataEase$ $V2$版本支持外部参数向仪表盘类组件传递参数,但对于地图是不支持的,地图是哪个地区,必然在页面上指定: ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202411010759402.png) 这样一来,上面的需求就无法满足了。 只好继续使用黑科技! 找到记录某个大屏使用了哪表记录上面的地区信息: ```sql select * from data_visualization_info where name ='黄海测试的市州地图'; -- 1049327041104711680 黄海测试的市州地图 -- 配置值 select * from core_chart_view where scene_id=1049327041104711680 and type='map'; ``` ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202411010801598.png) 返回的字段$custom\_attr$中有是哪个地区的配置信息: ```json "map":{"level":"city","id":"156532300"} ``` 很明显 ```json level:[province,city,district] 156530102:五华区 156530100:昆明市 ``` 上$baidu$查找了一下,$DataEase$中区划表执行的是: **[2023年,省市县行政区划名称及编码对照表、最新省市区表](https://blog.csdn.net/isworking/article/details/128630487)** 由于本次项目只是云南省的市/州就可以了,所以我们只需要找出下面的数据即可: ```sql DROP TABLE IF EXISTS `t_city_code`; CREATE TABLE `t_city_code` ( `area_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '地区行政区划码', `area_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '地区名' ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of t_city_code -- ---------------------------- INSERT INTO `t_city_code` VALUES ('156530100', '昆明市'); INSERT INTO `t_city_code` VALUES ('156530300', '曲靖市'); INSERT INTO `t_city_code` VALUES ('156530400', '玉溪市'); INSERT INTO `t_city_code` VALUES ('156530500', '保山市'); INSERT INTO `t_city_code` VALUES ('156530600', '昭通市'); INSERT INTO `t_city_code` VALUES ('156530700', '丽江市'); INSERT INTO `t_city_code` VALUES ('156530800', '普洱市'); INSERT INTO `t_city_code` VALUES ('156530900', '临沧市'); INSERT INTO `t_city_code` VALUES ('156532300', '楚雄彝族自治州'); INSERT INTO `t_city_code` VALUES ('156532500', '红河哈尼族彝族自治州'); INSERT INTO `t_city_code` VALUES ('156532600', '文山壮族苗族自治州'); INSERT INTO `t_city_code` VALUES ('156532800', '西双版纳傣族自治州'); INSERT INTO `t_city_code` VALUES ('156532900', '大理白族自治州'); INSERT INTO `t_city_code` VALUES ('156533100', '德宏傣族景颇族自治州'); INSERT INTO `t_city_code` VALUES ('156533300', '怒江傈僳族自治州'); INSERT INTO `t_city_code` VALUES ('156533400', '迪庆藏族自治州'); ``` #### 外部参数的处理办法 https://www.jianshu.com/p/cc9982e986f5 1、省通过跳转设备 转到JAVA接口,填写如下: http://10.10.21.20:9000/dsBase/dataease/route?city_name=[city_name] 其中[city_name]是在省地图上显示的热力数据,比如GDP=10000等 ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202411010919859.png) ```java // http://10.10.21.20:9000/dsBase/dataease/route?city_name=昆明市 // http://10.10.21.20:9000/dsBase/dataease/route?city_name=楚雄彝族自治州 // http://10.10.21.20:9000/dsBase/dataease/route?city_name=西双版纳傣族自治州 // !!!必须发布后访问才能做到进入此接口,否则浏览器就走缓存,不进来这个接口了!!! /** * 路由跳转 * * @param city_name 城市名称 */ @Before({GET.class}) @EmptyInterface({"city_name"}) public void route(String city_name) { //大屏名称 String dataVisualizationName = BaseApplication.PropKit.get("dataEase.dataVisualizationName"); //发布的地址 String publish_url = BaseApplication.PropKit.get("dataEase.publish_url"); //先更新一下数据表 dm.updateCity(dataVisualizationName, city_name); //再拼接一下URL的最终地址 JSONObject jo = new JSONObject(); jo.put("city_name", city_name); String base64Str = Base64.encode(jo.toString()); //跳转 redirect(publish_url + "/#/de-link/zud8IQ8J?attachParams=" + base64Str); } ``` ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202411010921229.png) ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202411010921376.png)