# 使用森数据DIX人员需要的知识背景
# 1. 操作系统基础知识:
Linux系统:需要入门级应用基础知识,如 PATH,JAVA_HOME环境变量配置,文件拷贝,tar包、gz包解压,文件执行权限修改等
Windows系统:PATH,JAVA_HOME环境变量配置,服务启停应用等
# 2. 数据库基础知识:
传统关系型数据库:具有简单SQL语句的编写能力,如 select
、from
、 where
、left join
的使用
# 3. 网络基础知识:
可以使用ping命令检查网络连通性,使用telnet命令检查端口是否开启
# 4. 数据格式基础知识:
了解JSON格式数据,理解如下数据格式含义:
[
{
"Summary": "CPU使用率高于86%,设备负载过高(来源于:BP2)",
"SourceAlertKey": "CPU使用率",
"SourceSeverity": "Critical",
"SourceIdentifier": "Identifier",
"SourceEventID": "1455867577750",
"Severity": "3",
"LastOccurrence": "2018-08-19 17:18:23",
"SourceCIName": "192.168.123.191",
"Status": "1",
"SourceID":"2"
}
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 5. 编程基础知识:
可以读懂以下样例代码的具体业务逻辑:
function run(args) {
var DbUtil = Java.type("com.uinnova.di.dicom.util.DbUtil");
var dbType = "MYSQL";
var username = "username";
var password = "password";
var url = "jdbc:mysql://0.0.0.0:3306/dix?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2b8";
var DbUtil_db = new DbUtil(dbType, username, password, url);
var sql = "select * from equipmonitor";
var data = DbUtil_db.query(sql);
var result_list = new java.util.ArrayList();
var mapObj = new java.util.HashMap();
var CommonUtil = Java.type("com.uinnova.di.dicom.util.CommonUtil");
for (var i = 0; i < data.size(); i++) {
var temp = data.get(i);
var object = new Object();
var mapKey = temp['objId'];
var objValue = mapObj.get(mapKey);
if (objValue != '' && objValue != null) {
var listData = objValue['data'];
object.kpiName = temp.get('kpi_name');
object.value = temp.get('value');
object.unit = temp.get('unit');
object.timeStamp = temp.get('time_stamp').toString();
listData.add(object);
objValue.data = listData;
mapObj.put(mapKey,objValue);
}else{
var newObject = new Object();
var newListData = new java.util.ArrayList();
newObject.objId = mapKey;
object.kpiName = temp.get('kpi_name');
object.value = temp.get('value');
object.unit = temp.get('unit');
object.timeStamp = temp.get('time_stamp').toString();
newListData.add(object);
newObject.data = newListData;
var nowTime = CommonUtil.conLong2Date(new Date().getTime(), 'yyyy-MM-dd HH:mm:ss');
newObject.time = nowTime;
mapObj.put(mapKey,newObject);
}
}
for (var key in mapObj) {
result_list.add(mapObj[key]);
}
return result_list;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
← 特性 Linux单机版安装说明 →