数据集
# 一、什么数据集
数据集(Dataset)是在内存中存储数据的一种结构。它通常是由多个数据表组成,每个数据表包含了若干行数据和若干列字段。数据集可以被看作是一种对数据的缓存,它可以从数据库中加载数据并存储在内存中,然后在应用程序中对数据进行操作和处理。
# 二、数据集作用
数据集是整个数据源管理中的核心,也是最经常使用的一个功能,在我们平台的调度,SPC,KPI,中间件等模块中大量的使用,所以掌握它的使用还是比较重要的,它并非单纯的是展示数据的功能,还具备跨服务器跨数据库处理数据,同时有强大的自定义处理数据能力。
# 三、导包流程
非融合环境:无需打包
融合环境:
什么是融合环境?融合环境即跟supos系统做深度集成的环境,MES导包流程基本上都是一样的,公司有专门的导包流程视频可以借鉴,只要你有公司云盘账号即可,视频地址 查看 (opens new window),具体打包流程目前按以下流程步骤。
# 四、数据集列表
数据集列表展示的是系统中已经存在且配置成功后的所有数据集,如图;
数据集列表除了展示数据的能力外,还具备对数据的维护功能,如:添加,激活,删除,预览,弃用,修改等。
列表中并对每种数据集所关联的参数,数据源个数做了统计计算,方便使用者可以对自己所关心的数据集做针对性的维护操作,提高效率。
下面对数据集列表的基本功能做个简单介绍;
激活
删除后的数据集它将进入待激活状态,可以通过激活按钮让它重新被使用,数据集的删除并非是物理删除而是逻辑删除,当数据集一但被其它地方使用到,而你这里做了物理删除会引起相当严重的后果。
预览
数据集配置完成后,可以通过预览按钮查看数据集的执行结果是否达到你预期想要的结果。
# 1 数据集预览
数据集预览支持单个,多个结果集的视图模式,以上图为例,当数据集有多个返回结果时,左侧会依次显示以数据集名称为标题的列表,点击其中的某个列表展示对应的结果集列表数据。
执行预览时如果右上角没有报任意错误表示数据集配置一切正常,可以被正常调用,反则表示配置有误或者其它问题引起的异常,空集情况下会在页面中显示一个空白盒子(表示空的结果集)。
# 五、创建数据集
数据集不单纯是查询数据库的表,可以通过多种途径获取数据流做为数据集,将下来对每一种数据集类型做个详细说明。
# 1 数据集来源
数据集分为SQL,多数据源,文件导入,接口四种类型途径,每一种数据来源配置都各有不同
# 1.1 SQL数据集
带*号的为必填项,数据集标识编码就使用系统自动生成的即可,当然你也可以修改它,但是前提是必须是英文。
SQL配置
选择SQL做为数据来源,必须要求配置查询的sql语句,编写SQL语句时遵守T-Sql标准写法,另外我们平台支持动态参数匹配写法,如下;
/*动态参数必须使用$$包含,否则无法识别*/ select * from kpi_kpiitem_test where col_lesson = '$k1$' and col_type='$k2$' and col_time>='$k3$' and col_time<'$k4$'
1
2
3
4配置SQL的时候,脚本编辑器下方有个动态匹配开关,默认情况下是开启的,只要是开启状态时,当你在编辑器中输入动态参数会自动添加到参数配置中,且不会出现重复。
参数配置
后期很多模块都会用到数据集,包括参数传递,这时需要对参数提供一个可维护的界面方便识别,并且可以对参数设定指定的默认值和类型控制,如图;
# 1.1.1 预览数据集
每次配置完成之后需要在数据集列表中找到刚刚配置的数据集进行预览测试,配置无法检测你的数据集配置是否达到你想要的结果,需要使用者经过预览测试做进一步确认。
# 1.2 多数据源
当你需要进行跨库跨服务器进行查询时,必须选择多数据源类型的数据来源;
比刚刚介绍过的SQL来源多了一个选项连接配置,数据源支持三种(Mysql,Sqlserver,Oracle),除了Mysql配置有点特殊后,其它两种相对比较简单,下面讲解一下怎么操作;
当你首次进入连接配置时,这个界面是没有任何数据的,需要手动点击添加数据源按钮,在弹出的参照页面选择你要查询的目标数据源即可,其它不需要做任何操作,特别重要强调的是数据源编码,它做为系统查询目标数据库的唯一依据,当你在写SQL语句时会用到它。
可以对已经配置的数据源进行删除操作,删除之后的数据源将在数据库做物理删除,如果你的SQL语句中用到被删除的数据源编码必须进行修改,否则会引发SQL执行失败的异常,可能这样描述会让你误导会删除掉数据管理下面的数据源列表,其实这里的数据源跟它是分开的,这个数据源做跟数据集关联,与原始数据源互不影响,接下来重点讲解Mysql数据源。
Mysql数据源:
由于它比较轻量且开源,在SQL语句中无法直接进行联表查询,需要依赖自身的引擎支持做表映射才可以做到联表查询,所以当你配置为Mysql数据源且又想进行联表查询时,必须给它设定一个关联表,否则无法进行联表查询,怎么添加一个关联表呢?在操作栏中点编辑出现以下界面;
左边为mysql数据源中的所有表,右边为已经关联的表和主键字段,如果你想在SQL语句中做多张表的关联查询,这里你就选择多张表转到右边的列表中即可,后面就可以直接使用表的关联查询了,具体SQL中怎么写呢?如下;
/**发现没有,映射表前面多了一个federated_的前缀**/
Select a.SYSID,b.USER_Name from smart_userinfo a left join federated_smart_userinfo b on a.SYSID=b.SYSID
2
# 1.2.1 如何使用
多源sql语句脚本编写时必须使用数据源编码做为对象的方式去指定表,否则将做为调用MES平台默认连接数据库表,影响SQL语句正常执行,不存在的表肯定是无法通过的,具体使用如下;
select * from dataSource_RVXWNG183602.tentaidoc.oc_accounts
/**语句中的dataSource_RVXWNG183602是连接配置中某个数据源的编码,查询的是数据源编码数据源中的某张表**/
2
# 1.2.2 预览数据集
每次配置完成之后需要在数据集列表中找到刚刚配置的数据集进行预览测试,配置无法检测你的数据集配置是否达到你想要的结果,需要使用者经过预览测试做进一步确认。
# 1.3 文件导入
当你不需要对数据库做查询操作,只需要依赖外部excel,CSV,JSON文件导入的话就可以考虑用这种方式实现.
# 1.3.1 文件类型
选择文件导入的方式,那么你就只能选择文件上传的方式导入数据,系统不允许再通过SQL语句对数据库的操作,从图中可以看出文件导入支持(xls,csv,json)三种格式文件。
xls
xls表示是Excel文件,xls文件可以分为二进制格式(.xls)和开放XML格式(.xlsx),其中开放XML格式是较新的版本,具有更高的性能和功能;
- xls- 二进制格式(Binary Format):这是最早的XLS文件格式,使用二进制编码存储数据。它是Microsoft Excel 97-2003版本(即Excel 2003及更早版本)的默认文件格式。这种格式的xls文件在文件扩展名上通常以".xls"结尾。
- xlsx- 开放XML格式(Open XML Format):这是基于XML的xls文件格式,引入了一种新的文件扩展名".xlsx"。它是Microsoft Excel 2007及更高版本的默认文件格式。xlsx文件使用ZIP压缩算法进行存储,可以更高效地处理大量数据,并且支持更多的功能。
csv
csv文件(Comma-Separated Values,逗号分隔值)是一种常见的纯文本文件格式,用于存储和传输表格数据。在csv文件中,每行数据表示一个记录,每个记录由多个字段组成,字段之间通过逗号进行分隔,不包含任何格式或样式信息。
json
json文件(JavaScript Object Notation)是一种常见的数据交换格式,用于存储和传输结构化数据。它以纯文本的形式表示数据,易于阅读和编写,并且被广泛应用于Web应用程序、api接口、配置文件等领域。
在json文件中,数据以键值对的形式组织,使用大括号{}表示一个对象,对象中的每个键值对由冒号:分隔,键值对之间使用逗号,分隔。键是字符串,值可以是字符串、数字、布尔值、数组、嵌套的对象等。
# 1.3.2 显示数据
从配置中可以看到数据显示方式有两种,分别为【显示|不显示】,那么它到底起什么作用呢?
显示
当你修改数据集记录时,如果这种记录是文件导入类型的数据集,在文件导入选项卡中可以直接看到已经导入文件的数据内容。
不显示
当你修改数据集记录时,如果这种记录是文件导入类型的数据集,在文件导入选项卡中不可以看到已经导入文件的数据内容。
# 1.3.3 模板下载
模板分为三种(xls,csv,json),在你选择文件导入前必须下载模板,如果你上传的文件不符合模板规范会影响数据集响应结果,下载模板后你只需改改内容即可,然后再输入数据。
# 1.3.4 执行导入
如果你的模板已经下载,且数据已经整合完成,就可以使用上传文件的功能了,点击文件上传按钮选择你的文件后右侧会出现一个文件上传进度,不出意外的话进度达到100%表示成功。
导入成功后下方会把你导入的数据通过表格形式展现出来,同时把你上传的文件上传到服务器且把相对服务器的路径绑到数据集表中文件路径字段中.
# 1.3.5 预览数据集
每次配置完成之后需要在数据集列表中找到刚刚配置的数据集进行预览测试,配置无法检测你的数据集配置是否达到你想要的结果,需要使用者经过预览测试做进一步确认。
# 1.4 接口
有时你的数据源来自第三方应用接口返回,你就可以选择这种方式实现数据集获取,还有一种情况,当你想返回多个结果集时也可以考虑选择这种方式获取。
# 1.4.1 关联数据集
当你的接口需要其它数据集中的参数时,必须要做数据集关联,只有绑定了数据集的关联才能获取数据集的某些参数值,数据集关联只需要在数据集参照页面选择你想要的数据集即可,也可以对已经关联的数据集进行删除,只是删除依赖,并不是删除你关联的数据集。
# 1.4.2 请求方式
目标接口的请求类型,目前暂时支持【GET,POST】请求类型,其它不支持。
# 1.4.3 接口地址
接口地址必填,且必须为http开头有效的url地址,请严格按照规范填写。
# 1.4.4 参数表达式
参数表达式可以动态生成,也可以手动输入,为了发生意外情况,还是让它自动生成吧,怎么自动生成呢?后面的参数绑定中有提及到,这个参数表达式支持两种,第一种是JSON对象,第二种是JSON数组。
# 1.4.5 授权标识码
当你调用的接口需要鉴权时需要配置身份凭证的标识符号(即字段名称),比如我们平台接口使用tk做为标识,可能第三方应用系统采用很复杂的认证机制,那么这种情况下就不满足了,配置也就没有意义,一般情况下你最好使用中间件去调用第三方的接口,因为它已经对各种认证做了封装,而且中间件不需要进行授权直接调用,接口地址配置中间件的地址即可。
# 1.4.6 授权码
这个地方是写死授权码,当你已经知道第三方应用授权码时可以直接填写,授权码只适应调式使用,一般情况下你最好使用中间件去调用第三方的接口,因为它已经对各种认证做了封装,而且中间件不需要进行授权直接调用,接口地址配置中间件的地址即可。
# 1.4.7 参数绑定
当你的接口需要从其它数据集中获取值,那么就需要配置参数绑定,比如前面提到接口地址下面的参数表达式,如果你为了防呆发生以外,最好是在本页面进行配置,然后通过一键自动生成表达式。
进行参数绑定配置前,必须先做数据集的关联,然后通过添加按钮创建字段绑定关系,本页面工具栏分别有三个按钮【添加,批量删除,生成表达式】,下面将对他们的用途做个介绍。
添加
添加一个参数绑定关系,默认情况下直接可以编辑新增行的内容,参数名称必须是英文(这个名称是接口中需要的参数名称),数据集是下拉选择且只能选一个,关联字段是数据集中绑定参数值的字段,默认值是为空的情况下就取它,参数类型分为五种(字符串,数字,日期时间,数组,json),这几种参数类型填写时一定要遵守规范,比如;
数字:只能是数字类型,不能出现中文/英文
日期时间:只能是合格的日期时间类型(yyyy-MM-dd HH:mm:ss)
数组:必须是数组格式,如 ['a','b','c']
JSON:必须是有效的json格式,如 {'a':1,'b':'test'}
批量删除
删除已经选中的所有参数列表,批量删除是物理删除。
生成表达式.
参数配置完成之后点击生成表达式按钮,会在基本信息页面中的参数表达式生成json格式的表达式,值用**$字段名称$**表示。