一种反应式气动数据多维分析平台

文档序号:25721991发布日期:2021-07-02 21:06阅读:115来源:国知局
一种反应式气动数据多维分析平台

本发明属于气动数据分析技术领域,具体涉及一种反应式气动数据多维分析平台。



背景技术:

气动数据指高速交通工具模型在地面风洞试验、数值软件cfd仿真模拟、空中试飞中各种设定条件下的各种测量和计算数据,这些数据具有较多字段,从多种维度记录试验或仿真对象的测量数据,因此具有数据体量大的特点,一个试验模型的气动力数据在不同试验条件(马赫数、静温和静压等)与不同姿态(攻角和侧滑角等)下往往达数万条信息。气动数据的第二个特点是数据格式和规范多样化,比如试验或仿真过程中的测量使用的坐标体系和不同标准也不尽相同,如坐标体系在国内会用到nasa的坐标体系和中国航空的坐标体系,在这些坐标体系下,试验对象的坐标轴又分多种,包括地面惯性坐标系、机体坐标系、气流坐标系、航迹坐标系和稳定坐标轴系。除了在试验环境设定方面情况多样以外,形成的风洞试验输出数据上也会有些不同,比如气动力数据一般可以是升力、阻力、侧力这样分解力和俯仰力矩、方向力矩和滚转力矩,很多情况下试验中的试验对象往往是缩比模型,采集到的气动力数据也可能是具体模型的几何外形尺寸下相关系数。



技术实现要素:

本发明的目的是为了解决气动数据多维分析中异构数据统一分析难和大尺寸数据分析交互缓慢的问题,提出了一种反应式气动数据多维分析平台。

本发明的技术方案是:一种反应式气动数据多维分析平台包括通信连接的前端人机交互模块和后端流式并行高速数据处理模块;

前端人机交互模块包括分析前置操作单元、分析交互操作单元和分析后置操作单元;

分析前置操作单元用于采集用户选择的分析方法和用户确定的气动数据集id列表,并向后端流式并行高速数据处理模块提交,完成分析初始化;

分析交互操作单元用于根据分析初始化结果进行前端人机交互模块和后端流式并行高速数据处理模块的交互响应,形成ui部件;

分析后置操作单元用于保存和下载分析交互操作的结果;

后端流式并行高速数据处理模块用于根据分析前置操作单元提交的用户选择的分析方法和用户确定的气动数据集id列表,进行map化并行流式操作,并用于和用户选择的分析方法和用户确定的气动数据集id列表实现交互响应。

本发明的有益效果是:本发明的反应式气动数据多维分析平台map化并缓存化气动数据多表领域模型,为后续并行流式高速操作提供数据基础设施基础,解决了性能较低的频繁多表查询需求。并利用并行流式操作提供数据筛选域的可选项多条件化及时查询,提高了中间数据的可观察性,辅助了分析人员分析任务的顺利进行和及时调整。

进一步地,反应式气动数据多维分析平台包括初始数据查询单元、数据库与有效域和初始数据响应单元;

分析前置操作单元包括会话记录单元和ui部件构建单元;

后端流式并行高速数据处理模块包括数据预处理单元、分析会话空间和map化数据缓存单元与领域对象数据缓存单元;

前端人机交互模块和后端流式并行高速数据处理模块通过初始数据查询单元与有效域和初始数据响应单元实现通信;

数据预处理单元与分析会话空间和map化数据缓存单元通过会话空间创建和领域对象map化操作实现通信;

会话记录单元用于记录用户选择的分析方法和用户确定的气动数据集id列表;

初始数据查询单元用于向数据预处理单元提交气动数据查询请求;

数据预处理单元用于从领域对象数据缓存单元中获取每个气动数据集id列表对应的具体气动数据,若领域对象数据缓存单元中无对应气动数据,则向数据库查询并保存在领域对象数据缓存单元中;

分析会话空间和map化数据缓存单元用于根据初始数据查询单元的提交结果创建内存空间,并对气动数据进行形式转换;

有效域和初始数据响应单元用于提取有效域名称和初始数据分页;

ui部件构建单元根据会话记录单元中记录的分析方法、有效域名称和初始数据分页,构建前端人机交互模块中用户分析界面的ui部件。

上述进一步方案的有益效果是:在本发明中,分析前置操作中,通过会话记录单元采集用户选择的分析方法和用户确定的气动数据集id列表,并通过初始数据查询单元向后端流式并行高速数据处理模块的数据预处理单元提交请求,利用数据预处理单元从领域对象数据缓存单元中获取每个气动数据集id列表对应的具体气动数据,当领域对象数据缓存中没命中对应数据集时,将进一步向数据库查询并保存在缓存中,提高下次获取数据的速度。

进一步地,初始数据查询单元包括三个参数,分别为{session:x,type:y,datasets[a,b,...]};

其中,session为会话记录单元随机生成不重复字串来标识分析会话,用于前端人机交互模块和后端流式并行高速数据处理模块中相同分析会话的数据暂存和同步协调,当用户重新选择分析类型和用户保存分析时,session值会重新生成并传到后端流式并行高速数据处理模块进行更新;

type为用户选定的分析方法,分析法包含单分量分析、多分量分析、误差分析、统计分析、二元分析、多元分析和包络线分析,用于传到后端流式并行高速数据处理模块中确定特定分析函数的选择;

datasets[a,b,...]为气动数据集id列表的id集合[a,b,...]。

进一步地,分析会话空间和map化数据缓存单元的操作包括会话空间创建和气动领域数据map化;

会话空间创建用于创建内存空间,并利用初始数据查询单元提交的session值进行空间标定,并记录初始数据查询单元提交的type值;

气动领域数据map化用于把不同类型的气动数据或不同域值的气动数据统一转化成键值形式。

上述进一步方案的有益效果是:在本发明中,会话空间创建和领域对象map化操作的第一个工作是创建内存空间,并使用初始数据查询操作提交的session值进行空间标定,同时记录初始数据查询操作提交的type值作为分析方法以便后续使用。第二个工作是进行气动领域数据map化,map化把不同类型气动数据或具有不同域值的气动数据统一转化成简单的键值形式统一看待,方便后续操作。

进一步地,有效域和初始数据响应单元的操作包括依次进行的有效域提取和初始数据分页提取;

有效域提取包括以下子步骤:

a1:通过并行流化机制将map化的气动数据转变为若干个并行流;

a2:对每个并行流进行flatmap,将气动数据的数据域扁平化到流中;

a3:对所有数据域进行过滤,并利用map映射取出域名称,形成域名称流;

a4:利用distinct去除多余值的域名称流,并进行若干个流的合并形成域名称集合,完成有效域名称提取;

初始数据分页提取包括以下子步骤:

b1:将map化的气动数据通流化形成map结构的气动数据流;

b2:对气动数据流依次进行skip&limit过程和map过程;

b3:基于skip&limit过程和map过程后的气动数据,收集redundancedaerodatastream,并与分页信息组合得到分页载荷数据,完成初始数据分页;

步骤b2中,进行map过程的方法为:流化map结构的单个aerodata,并根据提取的有效域名称进行过滤,得到有效域数据,将有效域数据重新组装,取出多余域的气动数据。

进一步地,ui部件构建单元中,根据用户选择的分析方法生成分析维度选择部件、分析基准选择部件和视图部件,并决定是否需要分组和是否有额外参数输入部件;

其中,分析维度选择部件包括分析维度部件的个数和种类以及各个分析域种类包含域值类型验证;

若人为设定需要分组,分组类型包括直接分组和基准分组,若分析方法选择基准分组时,则根据基准分组的基准值选择ui部件;

若有额外参数输入部件,则用户提供输入计算阶的部件;

视图部件包括数据视图子部件和图形视图子部件,数据视图子部件用于展示分析过程中的数据,包括过滤结果数据、直接分组结果数据或基准分组结果数据;图形视图子部件所展示的数据包括对过滤数据或分组数据进行特定分析算法处理后的分析数据和符合echarts或hicharts引擎的图数据。

上述进一步方案的有益效果是:在本发明中,ui部件构建单元中,根据有效域名称和初始数据分页决定填充各个分组域部件或分析基准选择部件的域候选值列表、填充各个分析域部件的域候选值列表和过滤域选择部件个数。

分析维度选择部件中分析维度部件的个数和种类,各个分析域种类包含域值类型验证。直观来说比如类型为“单分量分析”在数量上需要两个维度,需要的种类为x轴维度和y轴维度。是否有额外参数输入部件:比如当分析类型为“二元分析”和“多元分析”时,需要提供用户输入计算阶的部件。

有效域和初始数据响应操作中的有效域数据决定:填充各个分析域部件的域候选值列表(在填充过程中需要过滤掉不满足目标分析域部件的阈值数据类型要求)、填充各个分组域部件或基准分组域部件的域候选值列表与决定“过滤域选择部件”个数和具体生成。数据过滤部件组在形式上可独立于数据视图部件中过滤结果数据视图部件,也可作为过滤结果数据视图的表头部件而存在。当第一次构建系统时,由于用户还未选择分析维度和分组维度的具体域值,过滤域部件的个数和有效域一一对应。在初始交互部件生成后,用户会交互选择分析维度选择部件、分组维度选择部件具体域值,这时,分析维度选择部件之间会发生选择了同一个域的互斥问题,同样分析维度选择部件和分组维度选择部件也存在互斥,分析维度选择部件和过滤域选择部件也存在互斥,让发生某域被分析维度选择”或放弃时,对应域所在的过滤域选择部件将被消灭和重建。这些工作由图中的域互斥处理器进行探测和处理。

进一步地,反应式气动数据多维分析平台包括可筛请求封装单元和域条件列值响应单元;

分析交互操作单元包括可筛查询单元和分析请求单元;可筛查询单元包括可筛参数封装子单元和筛选域部件更新子单元;分析请求单元包括域变换处理子单元和ui视图更新子单元;

后端流式并行高速数据处理模块包括目标域可选项提取单元;

前端人机交互模块通过可筛请求封装单元和域条件列值响应单元与后端流式并行高速数据处理模块的目标域可选项提取单元实现通信;

可筛请求封装单元用于利用可筛参数封装子单元组装可筛查询的查询参数;

目标域可选项提取单元用于根据查询参数进行数据筛选和目标域可选项提取,并在分析会话空间和map化数据缓存单元中进行筛选,得到结果数据;

域条件列值响应单元用于将结果数据返回至筛选域部件更新子单元;

筛选域部件更新子单元用于对结果数据进行更新。

上述进一步方案的有益效果是:在本发明中,分析交互过程是分析初始化后用户进行分析的主要过程,为达到分析目的,用户可能会改变分析维度、改变数据过滤条件等相关操作,这些操作会自动进行分析的各个环节,最后生成出图数据。但由于待分析的气动数据量往往特别大,本气动数据分析维度可任意制定、分析筛选条件需要动态改变,因此进行维度设置、修改、多过滤字段选值时需要不断查询整个数据集已获取条件设置下的新结果。

可筛查询是数据筛选前的准备工作,筛选前需要知道其它气动数据域筛选项确定下某域可候选项有哪些,并提供这些候选值给用户,该步骤是数据筛选前必须工作,该工作在查询完将更新某筛选域选择器部件的可选列表。

进一步地,反应式气动数据多维分析平台包括分析请求封装单元和分析响应单元;

分析请求单元包括域用变换处理子单元和ui视图更新子单元;

后端流式并行高速数据处理模块包括分析处理单元;

域用变换处理子单元通过分析请求封装单元和分析处理单元实现通信;ui视图更新子单元通过分析响应单元和分析处理单元实现通信;

分析请求封装单元用于根据域用变换处理子单元的域用变换情况向分析处理单元提交分析请求;

分析处理单元用于根据分析请求单元进行并行处理,依次完成多域多值数据筛选、域投影和排序、直接分组和基准分组与分析处理,得到分析图数据并通过分析响应操作返回至ui视图更新子单元;

ui视图更新子单元根据分析图数据进行ui视图更新。

上述进一步方案的有益效果是:在本发明中,用户通过前端人机交互模块进行域用变换和筛选操作均会引导分析请求流程启动。

进一步地,域用变换处理子单元中,域用变换的情况包括用户选择分析维度部件的候选域、用户选择分组维度部件的候选域和用户选择基准值分组的部件。

上述进一步方案的有益效果是:在本发明中,在三个域用变换情况中任一一个发生后,系统均可进行分析请求封装操作,并向后端流式并行高速数据处理模块提交分析请求。

进一步地,多域多值数据筛选用于对分析会话空间和map化数据缓存单元中的map化气动缓存数据进行筛选;

域投影和排序用于对筛选后的map化气动缓存数据做投影,并对投影域名列表做赋值和排序操作;

直接分组和基准分组用于将投影数据使用流式函数进行分组;

特定分析处理用于对投影数据或分组后的投影数据进行特定分析,形成分析数据;

ui视图更新子单元用于根据分析数据进行前端人机交互模块的视图更新;ui视图更新子单元包括分析参数ui模组和数据和图ui模组;

分析参数ui模组为提供分析参数的可视化控件,由分析类型决定和数据预处理单元和ui部件构建单元动态控制;数据和图ui模组为分析过程和分析结果显示的数据表部分和数据图部分,由ui视图更新子单元动态控制。

附图说明

图1为气动数据分析总体结构图;

图2为气动数据领域对象模型图;

图3为有效域提取图;

图4为有效域初始数据提取图;

图5为有效域和初始数据响应数据结构图;

图6为ui部件构建图;

图7为请求参数封装过程和结构图;

图8为域条件列值提取过程图;

图9为其它域选定情况下查询攻角域候选返回界面更新图;

图10为分析请求参数封装和参数结构图;

图11为分析处理器核心流程概览图;

图12为筛选predicate类型λ函数算法过程图;

图13为投影和排序的流处理图;

图14为数值类型、字符串类型、对象类型及空值可排序算法图;

图15为分组指定分组域名称图;

图16为特定分析计算处理流程图;

图17为分析结果驱动的ui视图更新图。

具体实施方式

下面结合附图对本发明的实施例作进一步的说明。

在描述本发明的具体实施例之前,为使本发明的方案更加清楚完整,首先对本发明中出现的缩略语和关键术语定义进行说明:

flatmap:扁平化映射操作。在流处理过程中,把流中遇到的每个气动数据对象中的二级以上深层次领域对象提取到外层成为气动数据对象的直接孩子。

skip&limit:略过(skip)并取有限个(limit)数据对象的操作。从一个数据对象列表(比如list)从第skip加1个位置开始,最多取limit个数据对象,主要用于数据分页。

redundancedaerodatastream:冗余气动数据流。表示气动数据对象流中存在重复气动数据对象(重复泛化时时指)。

aerodata:气动数据对象的统一称呼。

echarts:apacheecharts,一个基于javascript的开源可视化图表库,按规则给出数据后在web上下文中进行绘图。

hicharts:一种javascript的可视化图表库。

有效域:气动数据字段域在目标气动数据中的每条(或称数据对象)中不同时为空值(null)。

多域多值:主要用户提交筛选请求时所用,可同时提交气动数据多字段域(多域)筛选请求,且每个字段域的筛选条件可为多相等条件(多值)。

如图1所示,本发明提供了一种反应式气动数据多维分析平台,包括通信连接的前端人机交互模块和后端流式并行高速数据处理模块;

前端人机交互模块包括分析前置操作单元、分析交互操作单元和分析后置操作单元;

分析前置操作单元用于采集用户选择的分析方法和用户确定的气动数据集id列表,并向后端流式并行高速数据处理模块提交,完成分析初始化;

分析交互操作单元用于根据分析初始化结果进行前端人机交互模块和后端流式并行高速数据处理模块的交互响应,形成ui部件;

分析后置操作单元用于保存和下载分析交互操作的结果;

后端流式并行高速数据处理模块用于根据分析前置操作单元提交的用户选择的分析方法和用户确定的气动数据集id列表,进行map化并行流式操作,并用于和用户选择的分析方法和用户确定的气动数据集id列表实现交互响应。

在本发明实施例中,如图1所示,反应式气动数据多维分析平台包括初始数据查询单元、数据库与有效域和初始数据响应单元;

分析前置操作单元包括会话记录单元和ui部件构建单元;

后端流式并行高速数据处理模块包括数据预处理单元、分析会话空间和map化数据缓存单元与领域对象数据缓存单元;

前端人机交互模块和后端流式并行高速数据处理模块通过初始数据查询单元与有效域和初始数据响应单元实现通信;

数据预处理单元与分析会话空间和map化数据缓存单元通过会话空间创建和领域对象map化操作实现通信;

会话记录单元用于记录用户选择的分析方法和用户确定的气动数据集id列表;

初始数据查询单元用于向数据预处理单元提交气动数据查询请求;

数据预处理单元用于从领域对象数据缓存单元中获取每个气动数据集id列表对应的具体气动数据,若领域对象数据缓存单元中无对应气动数据,则向数据库查询并保存在领域对象数据缓存单元中;

分析会话空间和map化数据缓存单元用于根据初始数据查询单元的提交结果创建内存空间,并对气动数据进行形式转换;

有效域和初始数据响应单元用于提取有效域名称和初始数据分页;

ui部件构建单元根据会话记录单元中记录的分析方法、有效域名称和初始数据分页,构建前端人机交互模块中用户分析界面的ui部件。

在本发明中,分析前置操作中,通过会话记录单元采集用户选择的分析方法和用户确定的气动数据集id列表,并通过初始数据查询单元向后端流式并行高速数据处理模块的数据预处理单元提交请求,利用数据预处理单元从领域对象数据缓存单元中获取每个气动数据集id列表对应的具体气动数据,当领域对象数据缓存中没命中对应数据集时,将进一步向数据库查询并保存在缓存中,提高下次获取数据的速度。

在本发明实施例中,如图1所示,初始数据查询单元包括三个参数,分别为{session:x,type:y,datasets[a,b,...]};

其中,session为会话记录单元随机生成不重复字串来标识分析会话,用于前端人机交互模块和后端流式并行高速数据处理模块中相同分析会话的数据暂存和同步协调,当用户重新选择分析类型和用户保存分析时,session值会重新生成并传到后端流式并行高速数据处理模块进行更新;

type为用户选定的分析方法,分析法包含单分量分析、多分量分析、误差分析、统计分析、二元分析、多元分析和包络线分析,用于传到后端流式并行高速数据处理模块中确定特定分析函数的选择;

datasets[a,b,...]为气动数据集id列表的id集合[a,b,...]。

在本发明实施例中,如图2所示,以数据集和核心进行组织,每个数据集可以属于某个飞行器模型、来源(具体的试验风动或软件)、坐标系统(坐标系统和坐标系:比如坐标系统可以是nasa也可以中国航天系统,坐标系可以是不同坐标系统下的体轴或风轴)和用户(生成该数据集的用户)等关联领域对象;一个数据集可以有一条至数十万条“气动数据”。其中气动数据是“气动力数据”、“气动压数据”和“气动热”数据的领域对象,主要包含“马赫数”、“雷诺数”、“攻角”和“舵偏角”等包含试验条件和试验姿态等设定共性属性,而继承的“气动力数据”、“气动压数据”和“气动热”数据则包含有各自的测量数据和部分设定数据。这样气动力、热、压数据可以统一用数据id进行检索。提供了数据集id就可以获取到对应的气动数据。

在本发明实施例中,如图1所示,分析会话空间和map化数据缓存单元的操作包括会话空间创建和气动领域数据map化;

会话空间创建用于创建内存空间,并利用初始数据查询单元提交的session值进行空间标定,并记录初始数据查询单元提交的type值;

气动领域数据map化用于把不同类型的气动数据或不同域值的气动数据统一转化成键值形式。

在本发明中,会话空间创建和领域对象map化操作的第一个工作是创建内存空间,并使用初始数据查询操作提交的session值进行空间标定,同时记录初始数据查询操作提交的type值作为分析方法以便后续使用。第二个工作是进行气动领域数据map化,map化把不同类型气动数据或具有不同域值的气动数据统一转化成简单的键值形式统一看待,方便后续操作。

该工作首先将获取的多个数据集关联的数据合并成一个数据集,并把关联领域对象转化到气动数据中。在高级语言中,如java语言,查询的数据结果result在orm框架的处理下会返回具有对象数据对象集合(比如list),其中每个对象中的各个属性又分别具备不同的数据类型:简单数值类型、布尔类型、字符串类型、负责对象类型和空值。本分析方法中分析数据量大,其中最大的运算主要是筛选和分组。筛选和分组从根本上需要比对表字段和提供值的对比,而空值在数据库查询的wehere从句中不是简单的“=”运算,而是“isnull”运算,造成这类值和其它值的筛选不能一视同仁,故采用传统的sql的where筛选方法使sql拼接极为困难;对于复杂对象筛选比对,则需要多表级联查询并筛选,也较为复杂。因此本过程首先查出气动数据领域对象集合,其中每行数据包含多项,每项除了对应到如图2中具体气动数据(气动力、热、压)的各个字段外,还包括继承下来的超类气动数据领域对象的各个字段,同时包含数据集本身的字段和数据集中关联领域对象如模型mdl的各个字段。

在map化的过程中,将获取的n条具体气动力数据形成形如[aerodata1,aerodata2,....,aerodatan]的n个aerodata对象组成的一维化列表,如表1所示。为避免高级语言对象中成员属性的不易访问性(如java语言在仅仅提供属性名情况下,还需要通过复杂的反射才能访问成员),上述的n个成员被成为n个域,用map类对象所取代,这样存取单个数据中的成员数据(可对应到数据库表的列值)直接用前端传递的字段名或字段名的值就可以了。aerodata的map类具体类型如map<string,object>所示,也就是其键为字符串类型,对应数据库表的字段名;其中的值为object类型,可为基础类型的包装类,如气动数据大量用到的双精度类型double,另外还有string代表的字符串型,还有气动数据实体关联的各个领域对象为object,但当其值为具体对象时,object会被具体的嵌套的map类型代替,这时aerodata的具体类型将为map<string,map<string,object>>,为降低系统复杂性,此时嵌套map中的object类型将提升到上一级,在避免键冲突下,其键为aerodata关联领域对象的键将直接成为aerodata的键。这样二级结构可用下面框中json代码形式加以阐述,代码中标识多行数据,每行数据为一个map对象,每个map对象中包含多个域,每个域分为键(双引号包围的字串)和值(此处用x表示),键和值用冒号隔开,每个域用逗号隔开。其中类似于mdl(模型)域为气动数据对象关联的领域对象,具有二级map结构。

表1

这样map化后的数据将会缓存在先前会话session空间中,支持按键值名称操作、支持高速流式stream或高速并行流式paralleltream操作下λ函数编程(此处主要用于传入筛选对比predict函数,排序comparing函数,分组classifier函数,以及其它reducing类聚合函数),这些操作都在内存中进行,速度会比冲dbms中快速较多(访问dbms会有较多的i/o操作,速度较慢)。

在本发明实施例中,如图1所示,有效域和初始数据响应单元的操作包括依次进行的有效域提取和初始数据分页提取;

有效域提取包括以下子步骤:

a1:通过并行流化机制将map化的气动数据转变为若干个并行流;

a2:对每个并行流进行flatmap,将气动数据的数据域扁平化到流中;

a3:对所有数据域进行过滤,并利用map映射取出域名称,形成域名称流;

a4:利用distinct去除多余值的域名称流,并进行若干个流的合并形成域名称集合,完成有效域名称提取;

初始数据分页提取包括以下子步骤:

b1:将map化的气动数据通流化形成map结构的气动数据流;

b2:对气动数据流依次进行skip&limit过程和map过程;

b3:基于skip&limit过程和map过程后的气动数据,收集redundancedaerodatastream,并与分页信息组合得到分页载荷数据,完成初始数据分页;

步骤b2中,进行map过程的方法为:流化map结构的单个aerodata,并根据提取的有效域名称进行过滤,得到有效域数据,将有效域数据重新组装,取出多余域的气动数据。

在本发明实施例中,如图3所示,有效域和初始数据响应操作包含有效域提取和初始数据分页提取两个部分工作。有效域提取是因为气动数据字段众多,按目前统计超过100多个,但在选择了某些目标数据集后其有效字段一般在20个左右,通过有效字段指导前端数据表显示和数据域处理将大大降低前端人机界面的复杂性。有效数据域提取针对map化数据缓存,使用并行流式parallelstream方式处理,并行流的每个单位为一个map结构的气动数据,可快速获取有效字段。如图3所示,在对所有进行过滤时,过滤规则为域的值为空,这样就可去掉大量的空数据域去。

初始数据分页提取在有效域提取完成之后进行,为防止空数据冗余,需要按照有效域组装数据,并结合前端显示提供的分页数据量进行有效域对应数据的获取。如图4所示,首先,map化的气动数据通流化形成map结构的气动数据流;再skip&limit过程,该过程略过(skip)数据个数(此处初始略过次数为0,后续分页查看前端传递页码后为0),限制(limit)取部分数据,该参数由前端页面初始大小决定;然后流结构进入map过程,该过程提取每个气动数据的有效域;最后对redundancedaerodatastream进行收集(collect),加上分页信息成为组合成分页载荷(pagedpayload)数据。

在本发明实施例中,如图1所示,ui部件构建单元中,根据用户选择的分析方法生成分析维度选择部件、分析基准选择部件和视图部件,并决定是否需要分组和是否有额外参数输入部件;

其中,分析维度选择部件包括分析维度部件的个数和种类以及各个分析域种类包含域值类型验证;

若需要分组,分组类型包括直接分组和基准分组,若分析方法选择基准分组时,则根据基准分组的基准值选择ui部件;

若有额外参数输入部件,则用户提供输入计算阶的部件;

视图部件包括数据视图子部件和图形视图子部件,数据视图子部件用于展示分析过程中的数据,包括过滤结果数据、直接分组结果数据或基准分组结果数据;图形视图子部件包括对过滤数据或分组数据进行特定分析算法处理后的分析数据和符合echarts或hicharts引擎的图数据。

在本发明中,ui部件构建单元中,根据有效域名称和初始数据分页决定填充各个分组域部件或分析基准选择部件的域候选值列表、填充各个分析域部件的域候选值列表和过滤域选择部件个数。

分析维度选择部件中分析维度部件的个数和种类,各个分析域种类包含域值类型验证。直观来说比如类型为“单分量分析”在数量上需要两个维度,需要的种类为x轴维度和y轴维度。是否有额外参数输入部件:比如当分析类型为“二元分析”和“多元分析”时,需要提供用户输入计算阶的部件。

有效域和初始数据响应操作中的有效域数据决定:填充各个分析域部件的域候选值列表(在填充过程中需要过滤掉不满足目标分析域部件的阈值数据类型要求)、填充各个分组域部件或基准分组域部件的域候选值列表与决定“过滤域选择部件”个数和具体生成。数据过滤部件组在形式上可独立于数据视图部件中过滤结果数据视图部件,也可作为过滤结果数据视图的表头部件而存在。当第一次构建系统时,由于用户还未选择分析维度和分组维度的具体域值,过滤域部件的个数和有效域一一对应。在初始交互部件生成后,用户会交互选择分析维度选择部件、分组维度选择部件具体域值,这时,分析维度选择部件之间会发生选择了同一个域的互斥问题,同样分析维度选择部件和分组维度选择部件也存在互斥,分析维度选择部件和过滤域选择部件也存在互斥,让发生某域被分析维度选择”或放弃时,对应域所在的过滤域选择部件将被消灭和重建。这些工作由图中的域互斥处理器进行探测和处理。

在本发明实施例中,有效域提取和初始数据分页提取两个部分完成后,将组合数据返回到前端进行ui部件构建,完成用户分析界面关键部件的构建。此处返回数据包含两个部分,其中有效数据域元数据除了该步骤提取的有效域的名称信息外,根据实际需要可加上域名称的语言对等信息或域名城排序等信息。如图5所示,ui部件构建单元完成前端用户分析界面的关键部件构造。该部分工作需要结合两种数据完成,且由后一种数据触发。如图6所示,这些输入数据是来自会话记录单元的分析方法和来自有效域和初始数据响应操作中的有效域(validfieldmetadata)信息和初始数据或成分页载荷数据pagedpayload。

在本发明实施例中,如图1所示,反应式气动数据多维分析平台包括可筛请求封装单元和域条件列值响应单元;

分析交互操作单元包括可筛查询单元和分析请求单元;可筛查询单元包括可筛参数封装子单元和筛选域部件更新子单元;分析请求单元包括域变换处理子单元和ui视图更新子单元;

后端流式并行高速数据处理模块包括目标域可选项提取单元;

前端人机交互模块通过可筛请求封装单元和域条件列值响应单元与后端流式并行高速数据处理模块的目标域可选项提取单元实现通信;

可筛请求封装单元用于利用可筛参数封装子单元组装可筛查询的查询参数;

目标域可选项提取单元用于根据查询参数进行数据筛选和目标域可选项提取,并在分析会话空间和map化数据缓存单元中进行筛选,得到结果数据;

域条件列值响应单元用于将结果数据返回至筛选域部件更新子单元;

筛选域部件更新子单元用于对结果数据进行更新。

在本发明中,分析交互过程是分析初始化后用户进行分析的主要过程,为达到分析目的,用户可能会改变分析维度、改变数据过滤条件等相关操作,这些操作会自动进行分析的各个环节,最后生成出图数据。但由于待分析的气动数据量往往特别大,本气动数据分析维度可任意制定、分析筛选条件需要动态改变,因此进行维度设置、修改、多过滤字段选值时需要不断查询整个数据集已获取条件设置下的新结果。

可筛查询是数据筛选前的准备工作,筛选前需要知道其它气动数据域筛选项确定下某域可候选项有哪些,并提供这些候选值给用户,该步骤是数据筛选前必须工作,该工作在查询完将更新某筛选域选择器部件的可选列表。

在本发明中,如图7所示,不管是过滤域选择的某部件候选值查询还是在基准分组基准候选值查询,都需要遍历所有的过滤域选择部件,获取域名称ki和用户已选择值[vi1,vi2,...](vi1,vi2,...表用户在同一域多个选择条件);接下来需要进行过滤操作,当目标域属于过滤域选择部件时然后需要过滤掉目标域kx,当目标域是基准分组字段时,不需要过滤掉用户选择;最后封装并讲发送的数据如图7中所示,包括两个部分,一个部分是目标域部分,filter:[kx,’g/c’],其中kx为目标域名称,而’g/c’表示当目标域来自分组基准时用’g’表示,当来自过滤域时用‘c’表示,表条件,这个标识将随后端处理程序并原样返回,用于后续的界面更新。

域条件列值指的是气动数据中某些域值(筛选值)确定的条件下,目标域的候选值还有哪些。域条件列值响应操作过程具体实施如图8所示,对存于分析会话缓存中的气动数据(aerodatalist)进行并行流式化,然后筛选(filter)时使用传递到后端的可筛请求封装单元的部分结果数据(也是可筛请求封装操作步骤结果数据中的selections部分数据),该部分筛选也是调用的图1中多域多值数据筛选流程功能,需要强调的是,该部分筛选支持多域筛选、域内多值筛选和空值筛选、域不同数据类型筛选(简单类型和复杂类型)。筛选后的气动数据将是分析会话空间中map化数据的给定筛选条件域下的子集。接着下一步是使用map方法去除aerodata的目标域(此处用fx标识,kx表示该域的名称,vx表示该域的值),map方法就是取出该域的值,形成stream(targetfieldvaluestream),然后使用distinct去重;最后将多个并行流进行combine合并操作,得到值集合(fieldvalueset)。

得到的值集合在经过组装,最后返回到前端调用者,组装分为两个部分,一个是目标域的元数据信息,一个是目标域的值集合信息,如表2所示。

表2

接下来,前端人机交互模块将根据返回的上述数据,进行筛选域部件更新步骤。如图9所示,图中查询结果为除攻角以外其它域设定情况下,返回的攻角(alf)域候选值为[-2,0,2,4,8],这样在原来的“攻角域选择器”中添加多出的候选值[-2,4,8]。同时原来多选不变。如果用户在弹出框中多增加(或减少)了选择项,则进入气动数据筛选流程(图1中的域变换处理器处理筛选),否则在关闭掉域选择下拉列表后需要移除多余的候选值。

在本发明实施例中,如图1所示,反应式气动数据多维分析平台包括分析请求封装单元和分析响应单元;

分析请求单元包括域用变换处理子单元和ui视图更新子单元;

后端流式并行高速数据处理模块包括分析处理单元;

域用变换处理子单元通过分析请求封装单元和分析处理单元实现通信;ui视图更新子单元通过分析响应单元和分析处理单元实现通信;

分析请求封装单元用于根据域用变换处理子单元的域用变换情况向分析处理单元提交分析请求;

分析处理单元用于根据分析请求单元进行并行处理,依次完成多域多值数据筛选、域投影和排序、直接分组和基准分组与分析处理,得到分析图数据并通过分析响应操作返回至ui视图更新子单元;

ui视图更新子单元根据分析图数据进行ui视图更新。

分析请求封装操作具体实施如图10所示,在封装过程中,根据分析类型最多需要遍历四种部件,每种部件根据分析类型不同,个数也有变化。

分析维度选择部件参数获取。当用户没有操作这些部件时,该部分参数为空,参数对象为空。如果用户已经选择,则取出每个部件(这里为t1、t2、...)所代表的维度和值如“部件t1”的维度标识为axis1,而选中的值为[kt1](这里用k开头标识选中的是气动数据域的名称,“[kt1]表多值”),参数结果形式为:{axis1:[k11,k12,...],axis2:[k21,k22,...],...}。分组维度与基准部件具有“分组部件g1”和某些分析方法时的“基准值选择部件g2”。当用户没有选择分组类部件时,该部分参数可以为空对象,如果选择了,其参数结果形式为:{‘g’:kg,’ref’:vg},其中常亮字串‘g’表分组,kg表“分组字段部件g”取出的字段名称,vg表从“基准值部件g”取出的kg字段对应的值。

额外参数输入部件在二元分析和多元分析时存在,没有时或用户没有输入内容时参数结果为空,当用户操作有值时,其参数结果形式为[ve1,ve2,...]。

过滤域选择部件是所有分析都存在部分。该部分的多个部件中每个部件均支持多选,其参数结果形式为{kf1:[v1f1,v1f1,...],kf2:[v1f2,v1f2,...],...}。其中kf1为“部件f1”对应的气动数据域名称,而[v1f1,v1f2,...]为该“部件f1”对应域f1的多项选择值,用于后端数据过滤。

以上各部分完成后最后形成图10中最终的参数analyseparams,结构模式为map类方式,其中‘axes’为分析域参数名称参数,‘group’为分组域参数,‘extra’为额外输入参数,‘condition’为条件参数(也就是过滤参数)。

在本发明中,用户通过前端人机交互模块进行域用变换和筛选操作均会引导分析请求流程启动。

在本发明实施例中,如图1所示,域用变换处理子单元中,域用变换的情况包括用户选择分析维度部件的候选域、用户选择分组维度部件的候选域和用户选择基准值分组的部件。

在本发明中,在三个域用变换情况中任一一个发生后,系统均可进行分析请求封装操作,并向后端流式并行高速数据处理模块提交分析请求。

在本发明实施例中,如图1所示,多域多值数据筛选用于对分析会话空间和map化数据缓存单元中的map化气动缓存数据进行筛选;

域投影和排序用于对筛选后的map化气动缓存数据做投影,并对投影域名列表做赋值和排序操作;

直接分组和基准分组用于将投影数据使用流式函数进行分组;

特定分析处理用于对投影数据或分组后的投影数据进行特定分析,形成分析数据;

ui视图更新子单元用于根据分析数据进行前端人机交互模块的视图更新;ui视图更新子单元包括分析参数ui模组与数据和图ui模组;

分析参数ui模组为提供分析参数的可视化控件,由分析类型决定和数据预处理单元和ui部件构建单元动态控制;数据和图ui模组为分析过程和分析结果显示的数据表部分和数据图部分,由ui视图更新子单元动态控制。

如图11所示,首先对传进来的参数“analyseparams”进行解析和map化,对会话缓存中的map化气动数据集aerodatalist进行并行流式化(parallelstream),后续流程使用并行和流式进行高速处理。首先进行多域多值数据筛选,该步骤的结果进入下一步(同时也会进入最终结果返回前端人机交互模块);筛选完成后将判断传入参数是否包含分析域名称(分析参数analyseparams的axes值),如果没有则直接进入最后的结果组装并标记完成状态为false,如果有则对aerodata进行投影计算,得到部分域数据列表“[prjdata1,...]”;当参数中具备group分组时,将对投影后的数据进行流式并行化分组,组成分组形式数据对象{‘g1’:[prjdata,...],’g2’:[prjdata,...]};有些分析方法需要分组,但分组选择域没提交参数的,可直接进入下一步“可分析判断”。有些分析方法需要分组但没有分组参数时,将结束分析流程,进入最后的结果组装”并标记完成状态为false。图中可分析判断步骤根据到达的前一结果的气动数据和达到的参数数据结合当前分析类型判断是否可进行选择分析算法对数据进行进一步处理,以达到组成分析图数据的目的。当判断不能进行分析时,将直接进入最后的结果组装并标记完成状态为false;当能进行数据分析处理时,将调用分析方法对应的数据处理函数,产生的数据可标记为{anadata,...},并进入最后的数据组装步骤,该步骤结果数据的“complete”属性值为true。不管有没有最终完成分析,最后向前端响应的数据均如图12所示,包一个状态(complete)信息和filtered、projected、grouped、analysed四个部分组数据,当然在不同情况下,有些数据可能为空。

对于多域多值数据筛选处理,数据快速筛选是本发明的主要核心,在以提供用户辅助筛选为目的、可筛查询步骤也调用了本筛选处理过程中分析处理器接收以分析参数封装操作提交的参数,提取出condition参数部分,进入多域多值数据筛选,对分析会话空间中的map化气动缓存数据进行筛选,此处支持任意数据域的多值筛选和空值筛选,支持多数据域的筛选。过滤部分参数形式为{kf1:[v1f1,v1f1,...],kf2:[v1f2,v1f2,...],...},可以对应到类型map,其中键为“kf1”、“kf2”等,而值为“[v1f1,v1f2,...]”、“[v1f1,v1f2,...]”等,但是相对于aerodata的map结构来说,这里的值变成了一个数组(集合)。而整个筛选是并行流中的一个比对(filter)过程,该比对(filter)过程在函数式编程中需要定制predicate类型的λ函数,该函数把先前提到的condition参数转为map化对象(此处命名为obj1)作为第二参数,而对比的当前气动数据aerodata对象(此处命名为obj2)是该lambda函数的第一参数(也就是默认参数)。下面是predicate类型λ函数的过程。

对于域投影和排序处理,当用户进行了分析维度部件和分组域部件时,事实上是选择了气动数据中对应的域,此时只需要取出这些字段的部分数据,也就是投影这些目标字段的值。

如图13所示,根据传入的分析参数的“axes”和“group”参数部分可以解析出需要投影的域名列表“fieldnames”,根据分析类型和传入的“axes”参数,可以获取到排序域名称“ksort”,其中“ksort”是投影域名列表“fieldnames”的成员。在解析了参数后,并行流式化前面筛选后的“filteredaerodatastream”,然后利用stream类map函数对气动数据做投影,“投影”对应的操作框中,obj1为气动数据对象,obj2为投影指定数据域的新数据,其中对投影域名列表做赋值操作,得到流化的“投影数据流”projecteddatastream。对于排序操作,直接利用stream类filter函数做排序,其中排序时指定排序域为开始部分得出的“ksort”。

事实上ksort域对应的值可能时数值型、文本型和和对象型,因此需要实现域值类型的“可对比comparable”接口处理程序,其处理逻辑如下图14的伪代码所示,排序的基本计算单位为前后两个元素计算差值,返回负数前小后大,返回0是一样大,返回正数前大后小。图14中,当任何一个值为null时,该值将排在前面,然后分别判断其类型,当为数值型时直接返回插值,当为字符串时直接利用高级语言的字符串比较函数compareto(不同语言函数名称不一样),当为对象型时,取该域对象的名字属性(为字符串)进行比较即可。

对于分组与基准处理,当分析中需要进行数据分组时,往往使用流式函数即可处理。对前述投影数据(projecteddatastream)进行collect时带入groupingby操作,指定分组条件即可分成多个分组。如图15所示,在进行gruopingby操作时,使用分组条件取参数‘group’:{‘g’:kg,’ref’:vg}中的“kg”作为分组条件,该“kg”对应为气动数据中的其中一个域的名称。分组形成的数据形式为以该域中所有的值引领的多个projecteddatalist。

对于特定分析处理,如图1所示,分析处理器中最后一个重要步骤是特定分析处理,该分析对前述数据进行判断,在可继续处理下调用对应数据处理函数。如图16所示,分析处理根据情况可接收投影后端数据列表(projecteddatalist)或分组后的数据作为分析处理的主输入。分析处理过程在处理数据前,先根据会话空间的分析类型“analysetype”确定执行数据处理的函数,如果需要分组基准还会提取分组基准参考值‘vg’,有时还会提取额外参数参与计算,形成分析数据anadata。

形成分析数据anadata后,本步骤还需要根据分析数据进一步生成特定可视化部件(比如采用echarts或hicharts可视部件)的绘图数据。图16中的特定分析计算处理需要为多种方法准备绘图数据,这里根据不同的分析方法调用不同的图形类型,必要时接收用户交互获取改变模板局部配置信息,然后把分析数据填充到模板中形成绘图数据chartsdata。

对于分析结果渲染,当分析处理单元完成了特定分析处理后形成了分析数据后,由结果组装并响应分析请求组装成最终结果数据响应到前端分析交互模块进行ui视图更新

如图17所示,最终结果数据分5个部分返回数据,ui视图更新单元过程将根据这些数据进行交互界面中三个视区的更新。其中过滤数据(filtered:[aerodata,...])将直接影响主数据表格视区内容的改变,每次筛选条件发生改变时,数据内容行将发生变换,当“域用”发生变化时,将影响主数据表格列和行发生变化。投影数据(projected:[prjdata,...])和分组数据(grouped:{‘g’:[rpdata,...})驱动投影或分组数据表格视区的更新。当这两种数据均没有时,将不显示该视区;当有投影数据而没有分组数据时,表格按一般数据表格呈现;当既有投影数据又有分组数据时,将仅仅呈现分组数据,且表格切换到分组外观。分析数据(analyed:

{anadata,...}和绘图数据(charts:{chartsdata,...})将驱动图和分析数据视区的更新。其中绘图数据驱动类似echarts或hicharts绘制各图,而分析数据显示为最终表格数据呈现给用户。

本发明的工作原理及过程为:前端人机交互模块除了提供人机交互以外,会根据交互过程从后端反馈数据形成响应式界面。分析前置操作是交互分析工作前的必要环节。基于气动数据字段量大、有效字段稀疏和数据行数大的问题,本系统主要有下面措施:

(1)map化并缓存化气动数据多表领域模型,为后续并行流式高速操作提供数据基础设施基础。解决了性能较低的频繁多表查询需求(如分析中,研究人员频繁设置过滤条件一步解析数据)。

(2)在map化并行流式操作基础上,在具备不确定字段数量的大气动数据集中快速萃取“有效数据域”元数据信息,动态构建“气动数据分析中“人机交互”中的“分析维度选择部件”、“分组域选择部件”和“过滤维度选择部件”三个主要部分。并在辅助在有限可视空间的人机界面中呈现待分析数据和过滤数据。

(3)利用并行流式操作提供数据筛选域的可选项多条件化及时查询。

(4)利用并行流式操作提供数据快速筛选、投影与排序。支持的数据域类型涉及“基本类型”、“对象类型”和“空值”。

(5)设计的及时响应机制,使用户在改变数据筛选条件或设置分析维度数据域时将启动“数据过滤”、“分组”、“投影”、“特定计算”、“界面响应”整体流程,达到实时查看中间数据和分析结果目的,方便调整分析人员调整参数。

(6)分析结果返回支持多部数据驱动“总体数据观察”、“投影和分组数据观察”和“分析图和分析数据观察”多视区模式,提高了中间数据的可观察性,辅助了分析人员分析任务的顺利进行和及时调整。

本发明的有益效果为:本发明的反应式气动数据多维分析平台map化并缓存化气动数据多表领域模型,为后续并行流式高速操作提供数据基础设施基础,解决了性能较低的频繁多表查询需求。并利用并行流式操作提供数据筛选域的可选项多条件化及时查询,提高了中间数据的可观察性,辅助了分析人员分析任务的顺利进行和及时调整。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1