一种多行列维度数据透视表处理方法和系统技术方案

技术编号:33042896 阅读:12 留言:0更新日期:2022-04-15 09:24
本发明专利技术公开了一种多行列维度数据透视表处理方法和系统,所述方法包括如下步骤:在服务端对数据模型进行定义,其中所述定义包括:行维度定义、列维度定义和指标定义;选择查询模型定义,发送给服务端后生成标准查询sql语句;根据所述标准查询sql语句从数据库中检索到多个维度的数据;将所述多个维度的数据进行业务功能转化和业务数据转化,生成并返回数据透视表表头模型和数据行。所述方法和系统通过提前定义数据模型,通过定义包括但不仅限于行、列维度和指标的查询模型,通过所述查询模型生成标准sql查询语句,通过所述标准sql查询语句查找满足条件的二维数据,因此无需开放人员单独实现,减少人力和研发成本。减少人力和研发成本。减少人力和研发成本。

【技术实现步骤摘要】
一种多行列维度数据透视表处理方法和系统


[0001]专利技术涉及数据处理
,特别涉及一种多行列维度数据透视表处理方法和系统。

技术介绍

[0002]目前涉及到数据分析场景的开发过程中,需要多行列维度展示数据场景,现有技术中,每次同类的多行列维度数据场景的需求时,需要开发人员单独实现,从而增加了开发人员的工作量,增加项目整体开发周期,使得项目的人力成本较高。

技术实现思路

[0003]本专利技术其中一个专利技术目的在于提供一种多行列维度数据透视表处理方法和系统,所述方法和系统通过提前定义数据模型,通过定义包括但不仅限于行、列维度和指标的查询模型,通过所述查询模型生成标准sql查询语句,通过所述标准sql查询语句查找满足条件的二维数据,因此无需开放人员单独实现,减少人力和研发成本。
[0004]本专利技术另一个专利技术目的在于提供一种多行列维度数据透视表处理方法和系统,所述方法和系统通过多行列维度数据转换模块对查询到的数据进行预处理,可以返回特定结构的数据透视表表头模型和结构行,从而提高多行类维度数据透视表的处理效果。
[0005]本专利技术另一个专利技术目的在于提供一种多行列维度数据透视表处理方法和系统,所述方法和系统通过标准化的程序流程可以降低整体项目的研发周期,节省重复开发的成本。
[0006]为了实现至少一个上述专利技术目的,本专利技术进一步提供一种多行列维度数据透视表处理方法,所述方法包括如下步骤:
[0007]在服务端对数据模型进行定义,其中所述定义包括:行维度定义、列维度定义和指标定义;
[0008]选择查询模型定义,发送给服务端后生成标准查询sql语句;
[0009]根据所述标准查询sql语句从数据库中检索到至少一个维度的数据后;
[0010]将所述多个维度的数据进行业务功能转化和业务数据转化,生成并返回数据透视表表头模型和数据行。
[0011]根据本发其中一个较佳实施例,所述标准查询sql语句的生成方法包括:
[0012]在服务端接收到所述查询模型定义后,在所述服务端实例化一个表格查询上下文ChartQueryContext对象,解析所述查询模型定义后获取行维度、列维度、指标、过滤条件并存入到所述表格查询上下文ChartQueryContext对象对应的属性中,进一步采用表格查询sql引擎将所述表格查询上下文对象生成标准查询sql语句。
[0013]根据本专利技术另一个较佳实施例,通过所述标准查询sql语句检索到多个维度的数据后,分别实例化两个内存集合对象nodeHeaderMap、linkedRowMap,所述两个内存集合对象分别用于存储透视表表头数据元素和行数据元素。
[0014]根据本发其中一个较佳实施例,通过所述标准查询sql语句检索到行数据后,对每行数据ResultRow进行映射解析,其中所述映射解析方法包括数据映射、业务转化和数据组装,并将组装后的数据保存于内存集合对象linkedRowMap中。
[0015]根据本专利技术另一个较佳实施例,所述数据映射方法包括:预先定义动态返回列类型DynamicColumnType对象,所述动态返回列类型DynamicColumnType对象容纳一个原子数据,所述原子数据包括数据类型、是否为null、是否成功、错误信息属性字段,再定义一个行数据ResultRow对象,所述行数据ResultRow对象包括DynamicColumnType对象的数组属性,生成一个自定义的DynamicColumnTypeHandler对数据库返回的结果数据集的数据表resultSet解析转换为DynamicColumnType对象。
[0016]根据本发其中一个较佳实施例,所述业务转化包括业务功能转化和业务数据转化,将转化后的数据通过结果单元ResultCell接收,所述结果单元包括三个属性,分别为key表示数据库中的真实值;tye表示数据类型和value表示转化后的数据格式。
[0017]根据本专利技术另一个较佳实施例,所述数据组装方法包括如下步骤:采用尺寸字段colDimension和指标字段colMetrics定义的key作为内存集合对象linkedRowMap的key,并将结果单元ResultCell的map作为value。
[0018]根据本发其中一个较佳实施例,在数据组装完毕后,进一步将列维度数据保存到内存集合对象nodeHeaderMap中,判断业务转化后的结果单元ResultCell和预先配置的列维度定义是否相同,若相同则将所述结果单元ResultCell转化为结果头ResultHeader,并根据所述结果头ResultHeader中key的属性进行存储或拼接,并将保存在所述内存集合对象nodeHeaderMap中的数据进行结构化处理。
[0019]为了实现至少一个上述专利技术目的,本专利技术进一步提供一种多行列维度数据透视表处理系统,所述系统执行所述一种多行列维度数据透视表处理方法。
[0020]本专利技术进一步提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可被处理器执行所述一种多行列维度数据透视表处理方法。
附图说明
[0021]图1显示是本专利技术一种多行列维度数据透视表处理方法示意图。
具体实施方式
[0022]以下描述用于揭露本专利技术以使本领域技术人员能够实现本专利技术。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本专利技术的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本专利技术的精神和范围的其他技术方案。
[0023]可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。
[0024]请参考图1,本专利技术公开了一种多行列维度数据透视表处理方法和系统,其中所述方法包括如下步骤:首先需要在服务端预先定义数据模型,所述定义的数据模型包括但不仅限于行维度、列维度和指标维度。将所述预先定义的数据的模型保存在服务端的数据库
中。客户端选择需要的行维度、列维度和指标维度,在服务端查询模型定义,其中通过客户端选择模型定义的维度后,在服务端解析生成标准查询sql语句,通过所述标准查询sql语句查询数据库中对应维度的数据,并通过行列数据转换模块将查询到的对应维度数据转化为特定数据结构的数据透视表表头模型和数据行返回给客户端。
[0025]具体而言,所述数据模型可以是包括但不仅限于账单数据模型reimburse_data,数据维度的字段包括但不仅限于部门department,费用类型feeType,职位status等,指标字段包括但不仅限于求和指标approvedAmount。客户端根据需要可以选择不同维度定义和指标定义作为选定的数据模型查询服务端。比如选定的维度定义可以是:行维度为部门department,费用类型fee本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多行列维度数据透视表处理方法,其特征在于,所述方法包括如下步骤:在服务端对数据模型进行定义,其中所述定义包括:行维度定义、列维度定义和指标定义;选择查询模型定义,发送给服务端后生成标准查询sql语句;根据所述标准查询sql语句从数据库中检索到至少一个维度的数据;将所述多个维度的数据进行业务功能转化和业务数据转化,生成并返回数据透视表表头模型和数据行。2.根据权利要求1所述的一种多行列维度数据透视表处理方法,其特征在于,所述标准查询sql语句的生成方法包括:在服务端接收到所述查询模型定义后,在所述服务端实例化一个表格查询上下文ChartQueryContext对象,解析所述查询模型定义后获取行维度、列维度、指标、过滤条件并存入到所述表格查询上下文对象ChartQueryContext对应的属性中,进一步采用表格查询sql引擎将所述表格查询上下文对象生成标准查询sql语句。3.根据权利要求1所述的一种多行列维度数据透视表处理方法,其特征在于,通过所述标准查询sql语句检索到多个维度和指标的数据后,分别实例化两个内存集合对象nodeHeaderMap、linkedRowMap,所述两个内存集合对象分别用于存储透视表表头数据元素和行数据元素。4.根据权利要求1所述的一种多行列维度数据透视表处理方法,其特征在于,通过所述标准查询sql语句检索到行数据后,对每行数据ResultRow进行映射解析,其中所述映射解析方法包括数据映射、业务转化和数据组装,并将组装后的数据保存于内存集合对象linkedRowMap中。5.根据权利要求1所述的一种多行列维度数据透视表处理方法,其特征在于,所述数据映射方法包括:预先定义动态返回列类型DynamicColumnType对象,所述动态返回列类型DynamicColumnType对象容纳一个原子数据,所述原子数据包括数据类型、是否为null、是否成...

【专利技术属性】
技术研发人员:赵文朋王森元孙勤魏美钟
申请(专利权)人:杭州每刻科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1