项目地址:https://gitee.com/anji-plus/report

数据源

配置数据源是获取数据的第一步,项目maven默认只集成了mysql驱动,
发行版lib文件夹中集成了oracle、kudu、mssql,若是其他jdbc类型,自行引入相关驱动即可。

  • 数据源类型:必填
  • 数据源编码:数据库唯一标识,必填。
  • 数据源名称:必填
通用jdbc数据源

驱动类、连接串、用户名、密码必须填写正确。

elasticsearch_sql数据源

目前只支持elasticsearch的x-pack sql。

固定写法:
  • 请求路径:http://127.0.0.1:9200/_xpack/sql?format=json
  • 请求方式:POST
  • 请求头:{“Content-Type”:“application/json”}
  • 请求体:{“query”:“select 1”}

HTTP

针对http,最好的返回结果是List<JSONObject>。目前而言,http数据源操作上可能过于繁琐了些。

支持请求路径和请求头中存在动态数据,采用${}方式进行动态替换,具体操作看下面的数据集说明。
ps:请求路径的动态数据可以在点击测试成功后,再改成${}这种形式,可以保存成功。


数据集

根据选中的数据源+查询sql或请求体完成数据的查询。如何写sql不多做介绍,主要介绍查询参数和数据转换。

查询参数

查询参数主要是针对sql中存在的动态参数,需要在后续的大屏使用时动态传入的时候做的操作。http类型数据源支持改请求路径。请求头,请求体内容。

如图所示,查询sql中,定义了两个变量,startTime和endTime。那需要我们在查询参数中添加对应的两个参数。
参数名保持和查询sql中${param}保持一致。
数据类型可以不填,暂时未用到。

查询参数高级规则

高级规则是针对当前行的参数示例值做一个校验。
返回true/false,代表校验字段是否符合要求的成功与失败
返回String,代表通过一段js脚本生成你所需要的参数。
返回其他类型报错!!!

//返回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脚本对sql执行的结果

// 根据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;
}
字典翻译

针对查询结果某一项key值,做一个翻译

ip转换(javaBean)

暂未用到,可忽略

数据预览

针对此次数据集,进行数据预览,尽量不要使用select * from table,可能数据量过大,超过数据库字段长度限制,保存不了。

大屏如何使用动态数据集,后续会持续更新。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐