|
@@ -1,12 +1,13 @@
|
|
|
## 介绍
|
|
|
|
|
|
+根据选中的数据源+查询 sql 或请求体完成数据的查询。<br>
|
|
|
 <br>
|
|
|
|
|
|
[数据源数据集用法总结](https://my.oschina.net/u/4517014/blog/5270828) <br>
|
|
|
|
|
|
## SQL数据集
|
|
|
|
|
|
-尽量不要使用 “select *”,以及展示很大的数据量,图表不一定能展示、页面可能会卡死 <br>
|
|
|
+尽量不要使用 “select *”,以及展示很大的数据量,图表不一定能展示、页面可能会卡死。 <br>
|
|
|
|
|
|
### Mysql数据集
|
|
|
|
|
@@ -15,7 +16,7 @@
|
|
|
|
|
|
### ES数据集
|
|
|
|
|
|
-**注**:es是通过调用xpack-sql,注意写法 <br>
|
|
|
+**注**:es是通过调用xpack-sql,注意写法,数据源亦有说明。 <br>
|
|
|
 <br>
|
|
|
|
|
|
### Kudu数据集
|
|
@@ -24,7 +25,8 @@
|
|
|
|
|
|
## HTTP数据集
|
|
|
|
|
|
-即原有Http数据源的功能,请注意:Http接口返回类型必须是Json、不能是text,text无法解析 <br>
|
|
|
+即原有Http数据源的功能,请注意:Http接口返回类型必须是Json、不能是text,text无法解析。 <br>
|
|
|
+支持请求路径和请求头中存在动态数据,采用 ${} 方式进行动态替换,具体看下面查询参数的相关说明。 <br>
|
|
|
 <br>
|
|
|
|
|
|
## 功能栏
|
|
@@ -35,8 +37,11 @@
|
|
|
|
|
|
[数据源数据集用法总结](https://my.oschina.net/u/4517014/blog/5270828) <br>
|
|
|
|
|
|
+注意参数名要和sql(请求体)中变量名保持一致,sql(请求体)中的变量用 ${} 表示。 <br>
|
|
|
 <br>
|
|
|
-注意参数名要和sql(请求体)中变量名保持一致,sql(请求体)中的变量用 ${} 表示 <br>
|
|
|
+如图所示,查询 sql 中,定义了两个变量,startTime 和 endTime。那需要我们在查询参数中添加对应的两个参数。 参数名保持和查询 sql
|
|
|
+中 ${param} 保持一致。<br>
|
|
|
+数据类型可以不填,暂时未用到。
|
|
|
|
|
|
#### 数据类型
|
|
|
|
|
@@ -49,21 +54,74 @@
|
|
|
返回 String,代表通过一段 js 脚本生成你所需要的参数。<br>
|
|
|
返回其他类型报错!!!<br>
|
|
|
|
|
|
+```
|
|
|
+//返回yyyyy-MM-dd类型的当前时间
|
|
|
+function verification(data){
|
|
|
+ //自定义脚本内容
|
|
|
+ //获取当前时间
|
|
|
+ var date = new Date();
|
|
|
+ var year = date.getFullYear();
|
|
|
+ var month = date.getMonth() + 1;
|
|
|
+ var day = date.getDate();
|
|
|
+ if (month < 10) {
|
|
|
+ month = "0" + month;
|
|
|
+ }
|
|
|
+ if (day < 10) {
|
|
|
+ day = "0" + day;
|
|
|
+ }
|
|
|
+ var nowDate = year + "-" + month + "-" + day;
|
|
|
+ return nowDate;
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
### 数据转换
|
|
|
|
|
|
+数据转换是在执行完 sql 之后进行的数据清洗操作。
|
|
|
+
|
|
|
#### js脚本
|
|
|
|
|
|
-**注**:这里的JS是java的scriptengine执行的,很多ES6的语法不支持 <br>
|
|
|
+**注**:这里的JS是java的scriptengine执行的,很多ES6的语法不支持。 <br>
|
|
|
 <br>
|
|
|
-入参是data,返回值也必须是data,中间是JS的处理过程,注意入参返回都是List<JSONObject>,记得保存。 <br>
|
|
|
+入参是data,返回值也必须是data,中间是JS的处理过程,注意入参返回都是``List<JSONObject>``
|
|
|
+
|
|
|
+```
|
|
|
+// 根据sql查询出的结果进行数据清洗
|
|
|
+function dataTransform(data){
|
|
|
+ //自定义脚本内容
|
|
|
+
|
|
|
+ //1.遍历测试预览中的java.util.ArrayList<java.lang.Object>
|
|
|
+ for(j = 0, len = data.length; j < len; j++){
|
|
|
+ //获取一行数据
|
|
|
+ var row = data[j]
|
|
|
+ //比如对brand字段进行拆分,例如A-100,B-50
|
|
|
+ var brand = row['brand']
|
|
|
+ var split = brand.split('-')
|
|
|
+ //新增两个字段
|
|
|
+ var model = split[0]
|
|
|
+ var series = split[1]
|
|
|
+
|
|
|
+ //对原始对象赋值
|
|
|
+ data[j]['model'] = model
|
|
|
+ data[j]['series'] = series
|
|
|
+
|
|
|
+ }
|
|
|
+ return data;
|
|
|
+}
|
|
|
+```
|
|
|
|
|
|
#### java脚本
|
|
|
|
|
|
-通过Groovy来进行实现的 <br>
|
|
|
-[Groovy用法参考](https://my.oschina.net/u/4517014/blog/5526324) <br>
|
|
|
+通过Groovy来进行实现的,[Groovy用法参考](https://my.oschina.net/u/4517014/blog/5526324) <br>
|
|
|
+如下图所示: <br>
|
|
|
+建议在 idea 写好复制整个类到此处,位置 report-core/src/test/java/com/DemoGroovyHandler.java <br>
|
|
|
+出入参皆为 ``List<JSONObject>`` data
|
|
|
+ <br>
|
|
|
|
|
|
#### 字典项
|
|
|
|
|
|
+针对查询结果某一项 key 值,做一个翻译。<br>
|
|
|
 <br>
|
|
|
-记得保存
|
|
|
|
|
|
+### 数据预览
|
|
|
+
|
|
|
+针对此次数据集,进行数据预览,尽量不要使用 select * from table,可能数据量过大,超过数据库字段长度限制,保存不了。<br>
|