12 KiB
一、DataEase
最新版本下载
https://community.fit2cloud.com/#/products/dataease/downloads
在线安装
curl -sSL https://dataease.oss-cn-hangzhou.aliyuncs.com/quick_start_v2.sh | sh
在线升级
dectl upgrade
二、DataEase
发布
1、80
端口发布
拉取
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/openresty/openresty:1.25.3.1-5-alpine-fat
打标
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
vi /root/nginx.conf
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;
}
}
}
运行
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/
发布
步骤1
vi /opt/dataease2.0/conf/application.yml
server:
servlet:
context-path: /dataease
步骤2
echo 'DE_CONTEXT_PATH=/dataease' >> /opt/dataease2.0/.env
三、访问方式
系统登录信息如下:
访问地址: https://www.edusoa.com/dataease
用户名: admin
初始密码: DataEase@123456
华为云部署主机的账号
117.78.60.214
52025
root
DsIdeal@123
四、异常记录
Centos
7.9
root
账号,输入reboot
不重新启动,怎么办?
答:
yum update -y
然后使用在线安装,注意:不要使用离线包,离线包问题多多!
curl -sSL https://dataease.oss-cn-hangzhou.aliyuncs.com/quick_start_v2.sh | sh
DataEase v2 设置动态访问路径,使用 Nginx 路径代理 - FIT2CLOUD 知识库
五、备份与还原
# 原版本机器上运行
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
:可以采用两个步骤来完成这个目标:
-
将
Mysql
数据库的3306
端口暴露出来,让JAVA
可以连接上修改
Mysql
可以使用局域网IP
访问
vi /opt/dataease2.0/docker-compose-mysql.yml
添加
ports:
- "0.0.0.0:3306:3306"
完整文件
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
来访问到了。
- 通过修改其中的数据集完成修改工作
查询数据表
-- 数据源表
-- 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
版本支持外部参数向仪表盘类组件传递参数,但对于地图是不支持的,地图是哪个地区,必然在页面上指定:
这样一来,上面的需求就无法满足了。
只好继续使用黑科技!
找到记录某个大屏使用了哪表记录上面的地区信息:
select * from data_visualization_info where name ='黄海测试的市州地图';
-- 1049327041104711680 黄海测试的市州地图
-- 配置值
select * from core_chart_view where scene_id=1049327041104711680 and type='map';
返回的字段custom\_attr
中有是哪个地区的配置信息:
"map":{"level":"city","id":"156532300"}
很明显
level:[province,city,district]
156530102:五华区
156530100:昆明市
上baidu
查找了一下,DataEase
中区划表执行的是:
由于本次项目只是云南省的市/州就可以了,所以我们只需要找出下面的数据即可:
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等
// 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);
}