业务表数据的生成方法、生成装置和可读存储介质与流程

文档序号:33637052发布日期:2023-03-29 00:57阅读:33来源:国知局
业务表数据的生成方法、生成装置和可读存储介质与流程

1.本发明涉及数据查询和处理的技术领域,具体而言,涉及一种业务表数据的生成方法、生成装置和可读存储介质。


背景技术:

2.自由业务表对存在单元格条件的设计场景,预先提取出单元格条件使用的字段,而后转换为查询描述器、分组描述器等描述器将信息传递到查询引擎,如此导致最终的执行sql(structured query language,结构化查询语言)被分组细化,影响查询结果,业务数据失准。
3.目前,自由业务表中基于单元格条件,常采用直接查询数据库明细数据,这种情况下需要在内存中遍历数据集,逐行匹配单元格上的条件,提取出符合条件的明细数据之后,再进行内存分组、聚合,得到符合业务的数据结果。但是,随着单元格数据量的增加,要查询的数据量也对应增加,导致应用服务器的内存、cpu(central processing unit,中央处理器)负载越来越高,使得服务器稳定性下降;如果通过限制数据量(如最多查询100万)作业务处理,则会导致业务数据结果不准确。
4.因此,如何提出一种对业务表数据的生成方法,以提高业务数据查询结果的准确性、服务器稳定性以及业务表执行效率,成为目前亟待解决的问题。


技术实现要素:

5.本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。
6.因此,本发明的第一个目的在于提供一种业务表数据的生成方法。
7.本发明的第二个目的在于提供一种业务表数据的生成装置。
8.本发明的第三个目的在于提供一种业务表数据的生成装置。
9.本发明的第四个目的在于提供一种可读存储介质。
10.为实现上述目的,本发明第一方面的技术方案提供了一种业务表数据的生成方法,其包括以下步骤:获取业务表中的设计单元格;将设计单元格转化成业务单元格,同时提取业务单元格上的条件信息;识别出业务单元格对应的设计模式;当设计模式为可下推数据库设计模式时,将条件信息转换为数据库过滤条件;当设计模式为不可下推数据库设计模式时,将条件信息转化为数据库能够识别的第一条件表达式;基于第一条件表达式或数据库过滤条件在数据库中搜索出符合条件信息的数据,并将获取的数据记录在对应的设计单元格中。
11.本发明所提供的业务表数据的生成方法,首先获取业务表中的设计单元格,设计单元格是指用户在报表设计器中进行设计时,形成的单元格模型,将其转化为业务单元格,业务单元格指服务器为了保证参数的统一性、完整性等,基于接收到的设计单元格造出的一个新的业务单元格,使得不需要改变业务表中的原始数据,同时需要提取业务单元格上的条件信息。然后识别业务单元格所对应的设计模式,业务表存在多种设计模式,例如明细
表、分组表、交叉表等,按照大类可划分成可下推数据库设计模式和不可下推数据库设计模式。可以理解为,可下推数据库设计模式属于能够将过多的搜索结果在有限的界面上分多页来显示,以能够显示全部搜索结果的模式;不可下推数据库设计模式属于在需要查询的数据量过大时,不能在有限的界面上搜索到全部的数据结果,只能够搜索出部分数据结果,这个时候就不能保证所要搜索的数据是完整的,导致需要进行多次搜索,而多次搜索时会出现数据重复、数据遗漏等问题,从而再次搜索的时候也不能保证搜索到的数据是完整的数据,导致搜索结果不准确。也即,当业务单元格属于可下推数据库设计模式时,则直接将条件信息转化为数据库过滤条件,以通过数据库过滤条件直接对数据库中的所有数据进行搜索,以获取准确的搜索结果。当业务单元格属于不可下推数据库设计模式时,这个时候需要对条件信息进行转化,转化为数据库能够识别的第一条件表达式,以通过第一条件表达式的方式对数据库中的数据进行搜索,以得到符合条件信息的数据,并将获取到的数据记录到相对应的设计单元格中。
12.本技术的技术方案充分考虑了在需要对业务表中的数据进行搜索查询时,当业务表属于不可下推数据库设计模式时,则可能会触发明细查询,而服务器无法承受过多的条件搜索数据时,导致服务器的稳定性下降,例如:相关技术中,基于查询结果集生成业务数据后在进行内存过滤,从而生成了不必要的数据导致服务器的内存占用率高、业务表执行效率低;遍历数据做数据过滤处理增加cpu的使用,导致cpu负载高,使服务器稳定性下降;服务器无法承受过多的搜索数据结果导致业务失准等问题。本技术通过将基于条件信息不能搜索出全部数据的条件进行转化,形成相应表达式的方式,以能够根据表达式进行搜索,这个时候服务器就不会搜索到不必要的数据信息,而是直接搜索到准确的业务数据,从而提升了业务数据查询结果的准确性,减少服务器中不必要信息的内存占用,降低cpu的使用从而提升服务器的稳定性,并且取消了搜索到不必要的数据后再进行过滤的过程,提高了业务表的执行效率。从而为了满足用户愈加复杂多变的数据查询需求,使得表格数据处理产品能够实现在多个或多维度条件下的复杂数据查询筛选功能,由此简单而灵活地向用户展示其所需的数据,帮助用户提高效率,节约时间。
13.另外,本发明提供的上述技术方案中业务表数据的生成方法,还可以具有如下附加技术特征:
14.在上述技术方案中,第一条件表达式为能够对数据库进行流程控制、逻辑比较的条件表达式。
15.在该技术方案中,第一条件表达式为能够通过表达式的方式对数据库中的数据进行搜索查询的一种程序语言。具体地,可以将条件信息转化为case when函数(程序设计中的流程控制语句)、if函数(程序设计中的条件语句)、and/or规则(程序设计中的肯定/否定语句)等方式的一种表达式形式,基于这种表达式的方式对数据库中的业务数据进行搜索查询,使得查询结果即为需要的业务数据,从而可以提高业务表的查询效率。
16.在上述技术方案中,将条件信息转化为数据库能够识别的第一条件表达式,具体包括:基于条件信息生成预设设计字段信息;将预设设计字段信息进行拼接,以生成拼接字段信息;将拼接字段信息拼接形成第一条件表达式。
17.在该技术方案中,将业务单元格上的条件信息生成预设设计字段信息并进行拼接,生成拼接字段,然后对生成的拼接字段进行再次拼接,从而形成具有多条件信息的表达
式形式,从而能够根据条件信息生成满足该条件的表达式,以对数据库中的数据进行准确的搜索,直接查询出想要的数据信息,而不需要在进行多条件信息查找时,单独查找每个条件后在进行过滤、汇总处理的步骤,提高业务表查找数据的执行效率并能够使得查找出的数据信息更加准确。
18.在上述技术方案中,基于条件信息生成预设设计字段信息,具体包括:从条件信息中提取设计字段,从设计字段中确定出一个或多个预设设计字段;确定业务单元格的设计字段的类型;根据一个或多个预设设计字段的类型构造至少一个第二条件表达式;基于至少一个第二条件表达式对业务单元格中所有字段进行搜索,获取业务单元格中预设设计字段信息。
19.在该技术方案中,从业务单元格的条件信息中提取并确认一个或多个预设设计字段,并根据预设设计字段确认业务单元格中设计字段的类型,设计字段的类型即为不同的条件类型,然后根据设计字段的类型构造第二表达式,第二表达式具体地可以为case when表达式等程序语言。然后根据第二表达式遍历业务单元格中的所有字段信息,以得到满足第二表达式中的条件类型的预设设计字段信息。本技术中通过获取多个条件构造表达式的模板信息,可满足复杂条件下生成数据条件的模板,为后续对表达式的替换、拼接过程做准备。
20.进一步地,设计字段包括值字段、显示字段、辅助字段中的一种或多种组合。
21.在上述技术方案中,将拼接字段信息拼接形成第一条件表达式的步骤,具体包括:判断拼接字段信息是否属于已有定义字段;若判断结果为否,则使用统一函数进行拼接;若判断结果为是,则使用数据库函数进行拼接;基于拼接结果形成第一条件表达式。
22.在该技术方案中,根据第二条件表达式遍历所有字段后的结果,对满足条件信息的字段进行拼接,基于拼接后的字段信息判断是否属于业务表中已有定义字段,已有定义字段表示用户已经设计过的带有条件表达式的字段,这种已有定义字段能够直通数据库,已有定义字段包括与要进行搜索的数据具有相同的搜索条件或相似的搜索条件的字段。例如:用户要进行搜索的数据(拼接字段信息)为满足地区是a、性别是男这种条件的姓名和年龄,这个时候如果已有定义字段中已经出现了满足地区是a、性别是男这种条件的姓名和年龄的字段或者出现了类似的字段,例如:满足地区是b、性别是女这种条件的姓名和年龄的字段,这个时候都可以认为是已有定义字段。然后,如果拼接后的字段数据信息不属于业务表中已有定义字段,则使用统一函数的方式进行拼接,以得到满足该字段数据信息的第一条件表达式。如果拼接后的字段数据信息属于业务表中已有定义字段,则使用数据库函数的方式进行拼接,得到第一条件表达式,以通过第一条件表达式对数据库中的数据信息进行搜索。这样就能够兼容老业务表正常业务信息,使得老业务表也可以正常使用本发明中的业务表数据的生成方法。
23.在上述技术方案中,业务表数据的生成方法还包括根据第一条件表达式生成条件字段;记录条件字段与条件信息中的字段之间的关系;在获取到条件字段后,根据条件字段搜索出符合条件信息的数据。
24.在该技术方案中,根据第一条件表达式生成条件字段,该条件字段中包含了一个或多个条件信息的表达式,并记录条件字段与条件信息中的一个或多个字段之间的关系,以便后续在需要对该条件信息进行查找时,可以直接将该条件字段作为查询条件,以便数
据库能够根据该条件字段直接对满足该条件字段的条件信息进行搜索,从而提高查询搜索数据的执行效率。
25.本发明第二方面的技术方案提供了一种用于业务表数据的生成装置,包括:获取单元,用于确定业务表中的设计单元格;转化单元,用于将设计单元格转化成业务单元格;提取单元,用于提取业务单元格上的条件信息;识别单元,用于识别业务单元格对应的设计模式;生成单元,用于根据设计模式生成不同的条件;执行单元,用于根据不同的条件在数据库中搜索符合条件信息的数据;记录单元,用于将获取的数据记录在对应的设计单元格中。
26.根据本发明提供的用于业务表数据的生成装置,包括:获取单元,用于确定业务表中的设计单元格;转化单元,用于将设计单元格转化成业务单元格;提取单元,用于提取业务单元格上的条件信息;识别单元,用于识别业务单元格对应的设计模式;生成单元,用于根据设计模式生成不同的条件;执行单元,用于根据不同的条件在数据库中搜索符合条件信息的数据;记录单元,用于将获取的数据记录在对应的设计单元格中。同时,根据本发明的技术方案提供的用于业务表数据的生成装置,由于其用于实现本发明的第一方面提供的业务表数据的生成方法的步骤,因而该业务表数据的生成装置具备该业务表数据的生成方法的全部技术效果,在此不再赘述。
27.进一步地,本发明提供的用于业务表数据的生成装置还包括搜索单元,搜索单元用于根据第一条件表达式生成条件字段,记录条件字段与条件信息中的字段之间的关系,在获取到条件字段后,根据条件字段搜索出符合条件信息的数据。
28.本发明第三方面的技术方案提供了一种用于业务表数据的生成装置,包括:存储器,存储有程序;处理器,执行程序;其中,处理器在执行程序时,实现如第一方面任一项技术方案中的业务表数据的生成方法的步骤。
29.根据本发明提供的用于业务表数据的生成装置,包括:存储器和处理器,存储器储存有程序或指令,程序或指令被处理器执行时,实现如第一方面任一项技术方案中的业务表数据的生成方法的步骤。由于该装置能够实现如第一方面任一项技术方案中的用于业务表数据的生成方法的步骤,因此,该装置还具有上述第一方面任一项技术方案中业务表数据的生成方法的全部有益效果,在此不再赘述。
30.本发明第四方面的技术方案提供了一种可读存储介质,其上存储有程序,在程序被执行时,实现如第一方面任一项技术方案中的用于业务表数据的生成方法的步骤。
31.根据本发明提供的可读存储介质,其上存储有程序或指令,程序或指令被执行时,实现如第一方面任一项技术方案中的用于业务表数据的生成方法的步骤。由于该可读存储介质能够实现如第一方面任一项技术方案中的用于业务表数据的生成方法的步骤。因此,该可读存储介质还具有上述第一方面任一项技术方案中的用于业务表数据的生成方法的全部有益效果,在此不再赘述。
32.本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
33.图1是根据本发明的第一个实施例的用于业务表数据的生成方法的流程示意图;
34.图2是根据本发明的第一个实施例的用于单元格条件处理的流程示意图;
35.图3是根据本发明的第一个实施例的用于单元格条件处理的又一流程示意图;
36.图4是根据本发明的第二个实施例的用于业务表数据的生成方法的流程示意图;
37.图5是根据本发明的第三个实施例的用于业务表数据的生成方法的流程示意图;
38.图6是根据本发明的第四个实施例的用于单元格条件与表达式之间转化方法的流程示意图;
39.图7是根据本发明的第四个实施例的用于验证数据准确度实验方法的流程示意图;
40.图8是根据本发明的第四个实施例的用于验证数据准确度实验方法的示意图;
41.图9是根据本发明的第二个实施例的用于业务表数据的生成装置的第一个方框图;
42.图10是根据本发明的第二个实施例的用于业务表数据的生成装置的第二个方框图。
43.其中,图9和图10中的附图标记与部件名称之间的对应关系为:
44.1生成装置,11获取单元,12转化单元,13提取单元,14识别单元,15生成单元,16执行单元,17记录单元,2生成装置,21存储器,22处理器。
具体实施方式
45.为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本技术的实施例及实施例中的特征可以相互组合。
46.在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
47.下面参照图1至图10描述本发明一些实施例中的业务表数据的生成方法、生成装置和可读存储介质。
48.如图1至图3所示,根据本技术中的一个实施例,提供了一种业务表数据的生成方法,包括:
49.s102,获取业务表中的设计单元格;
50.s104,将设计单元格转化成业务单元格,同时提取业务单元格上的条件信息;
51.s106,识别出业务单元格对应的设计模式,当设计模式为可下推数据库设计模式时,执行s108;当设计模式为不可下推数据库设计模式时,执行s110;
52.s108,将条件信息转换为数据库过滤条件,执行s112;
53.s110,将条件信息转化为数据库能够识别的第一条件表达式,执行s112;
54.s112,基于第一条件表达式或数据库过滤条件在数据库中搜索出符合条件信息的数据,并将获取的数据记录在对应的设计单元格中。
55.在该实施例中,如图1所示,本发明所提供的业务表数据的生成方法,首先获取业务表中的设计单元格,设计单元格是指用户在报表设计器中进行设计时,形成的单元格模型,将其转化为业务单元格,业务单元格指服务器为了保证参数的统一性、完整性等,基于
接收到的设计单元格造出的一个新的业务单元格,使得不需要改变业务表中的原始数据,同时需要提取业务单元格上的条件信息。然后识别业务单元格所对应的设计模式,业务表存在多种设计模式,例如明细表、分组表、交叉表等,按照大类可划分成可下推数据库设计模式和不可下推数据库设计模式。可以理解为,可下推数据库设计模式属于能够将过多的搜索结果在有限的界面上分多页来显示,以能够显示全部搜索结果的模式;不可下推数据库设计模式属于在需要查询的数据量过大时,不能在有限的界面上搜索到全部的数据结果,只能够搜索出部分数据结果,这个时候就不能保证所要搜索的数据是完整的,导致需要进行多次搜索,而多次搜索时会出现数据重复、数据遗漏等问题,从而再次搜索的时候也不能保证数据是完整的数据,导致搜索结果不准确。也即,当业务单元格属于可下推数据库设计模式时,则直接将条件信息转化为数据库过滤条件,以通过数据库过滤条件直接对数据库中的所有数据进行搜索,以获取准确的搜索结果。当业务单元格属于不可下推数据库设计模式时,这个时候需要对条件信息进行转化,转化为数据库能够识别的第一条件表达式,以通过第一条件表达式的方式对数据库中的数据进行搜索,以得到符合条件信息的数据,并将获取到的数据记录到相对应的设计单元格中。
56.本技术的技术方案充分考虑了在需要对业务表中的数据进行搜索查询时,当业务表属于不可下推数据库设计模式时,则可能会触发明细查询,而服务器无法承受过多的条件搜索数据时,导致服务器的稳定性下降,例如:相关技术中,基于查询结果集生成业务数据后在进行内存过滤,从而生成了不必要的数据导致服务器的内存占用率高、业务表执行效率低;遍历数据做数据过滤处理增加cpu的使用,导致cpu负载高,使服务器稳定性下降,服务器无法承受过多的搜索数据结果导致业务失准等问题。
57.具体地,如图2所示,相关技术中对于单元格条件处理的老逻辑,该方法包括:
58.s202,收集设计单元格上的条件信息;
59.s204,提取条件字段;
60.s206,构造查询描述器,分组描述器;
61.s208,基于内存运算比较,过滤符合条件的数据。
62.具体地,基于提取设计单元格上的条件字段,构造查询描述器、分组描述器,导致条件字段被分组细化,例如:
63.group by(程序设计中的分组设计语句)
64.设计字段1,设计字段2,

设计字段n,
65.条件字段1,条件字段2,

条件字段n。
66.然后基于内存运算比较,过滤出符合条件的数据。
67.而本技术的方案,如图3所示,对于单元格条件处理的新逻辑,该方法包括:
68.s302,收集设计单元格上的条件信息;
69.s304,提取条件字段;
70.s306,转换为表达式并构造自定义字段;
71.s308,基于sql查询符合条件的数据。
72.具体地,基于提取设计单元格上的条件字段,转化为表达式并构造自定义字段,例如:
73.将条件字段转化为case when表达式,group by(程序设计中的执行语句)
74.case when条件字段1=

xxx’then设计字段1else null end,
75.case when条件字段2=

xxx’then设计字段2else null end,
76.case when条件字段



xxx’then设计字段

else null end,
77.case when条件字段n=

xxx’then设计字段n else null end。
78.本技术通过将基于条件信息不能搜索出全部数据的条件进行转化,形成相应表达式的方式,以能够根据表达式进行搜索,这个时候服务器就不会搜索到不必要的数据信息,而是直接搜索到准确的业务数据,从而提升了业务数据查询结果的准确性,减少服务器中不必要信息的内存占用,降低cpu的使用从而提升服务器的稳定性,并且取消了搜索到不必要的数据后再进行过滤的过程,提高了业务表的执行效率。从而为了满足用户愈加复杂多变的数据查询需求,使得表格数据处理产品能够实现在多个或多维度条件下的复杂数据查询筛选功能,由此简单而灵活地向用户展示其所需的数据,帮助用户提高效率,节约时间。
79.在根据本技术的一个实施例中,如图4所示,业务表数据的生成方法,还包括:
80.s402,获取业务表中的设计单元格;
81.s404,将设计单元格转化成业务单元格,同时提取业务单元格上的条件信息;
82.s406,识别出业务单元格对应的设计模式,当设计模式为可下推数据库设计模式时,执行s408;当设计模式为不可下推数据库设计模式时,执行s410;
83.s408,将条件信息转换为数据库过滤条件,执行s428;
84.s410,从条件信息中提取设计字段,从设计字段中确定出一个或多个设计字段;
85.s412,确定业务单元格的设计字段的类型;
86.s414,根据一个或多个预设设计字段的类型构造至少一个第二条件表达式;
87.s416,基于至少一个第二条件表达式对业务单元格中所有字段进行搜索,获取业务单元格中预设设计字段信息;
88.s418,将预设设计字段信息进行拼接,以生成拼接字段信息;
89.s420,判断拼接字段信息是否属于已有定义字段,若判断结果为是,则执行s422,否则执行s424;
90.s422,使用数据库函数进行拼接,执行s426;
91.s424,使用统一函数进行拼接,执行s426;
92.s426,基于拼接结果形成第一条件表达式;
93.s428,基于第一条件表达式或数据库过滤条件在数据库中搜索出符合条件信息的数据,并将获取的数据记录在对应的设计单元格中。
94.在该实施例中,获取业务表中的设计单元格,设计单元格是指用户在报表设计器中进行设计时,形成的单元格模型,将其转化为业务单元格,业务单元格指服务器为了保证参数的统一性、完整性等,基于接收到的设计单元格造出的一个新的业务单元格,使得不需要改变业务表中的原始数据,同时需要提取业务单元格上的条件信息。然后识别业务单元格所对应的设计模式,业务表存在多种设计模式,例如明细表、分组表、交叉表等,按照大类可划分成可下推数据库设计模式和不可下推数据库设计模式。可以理解为,可下推数据库设计模式属于能够将过多的搜索结果在有限的界面上分多页来显示,以能够显示全部搜索结果的模式;不可下推数据库设计模式属于在需要查询的数据量过大时,不能在有限的界面上搜索到全部的数据结果,只能够搜索出部分数据结果,这个时候就不能保证所要搜索
的数据是完整的,导致需要进行多次搜索,而多次搜索时会出现数据重复、数据遗漏等问题,从而再次搜索的时候也不能保证数据是完整的数据,导致搜索结果不准确。也即,当业务单元格属于可下推数据库设计模式时,则直接将条件信息转化为数据库过滤条件,以通过数据库过滤条件直接对数据库中的所有数据进行搜索,以获取准确的搜索结果。当业务单元格属于不可下推数据库设计模式时,这个时候需要对条件信息进行转化,转化为数据库能够识别的第一条件表达式,以通过第一条件表达式的方式对数据库中的数据进行搜索,以得到符合条件信息的数据,并将获取到的数据记录到相对应的设计单元格中。
95.在上述实施例中,第一条件表达式为能够对数据库进行流程控制、逻辑比较的条件表达式。
96.在该实施例中,第一条件表达式为能够通过表达式的方式对数据库中的数据进行搜索查询的一种程序语言。具体地,可以将条件信息转化为case when函数、if函数、and/or规则等方式的一种表达式形式,基于这种表达式的方式对数据库中的业务数据进行搜索查询,使得查询结果即为需要的业务数据,从而可以提高业务表的查询效率。
97.在上述实施例中,将条件信息转化为数据库能够识别的第一条件表达式,具体包括:基于条件信息生成预设设计字段信息;将预设设计字段信息进行拼接,以生成拼接字段信息;将拼接字段信息拼接形成第一条件表达式。
98.在该实施例中,将业务单元格上的条件信息生成预设设计字段信息并进行拼接,生成拼接字段,然后对生成的拼接字段进行再次拼接,从而形成具有多条件信息的表达式形式,从而能够根据条件信息生成满足该条件的表达式,以对数据库中的数据进行准确的搜索,直接查询出想要的数据信息,而不需要在进行多条件信息时,单独查找后在进行过滤处理的步骤,提高业务表查找数据的执行效率并能够使得查找出的数据信息更加准确。
99.在上述实施例中,基于条件信息生成预设设计字段信息,具体包括:从条件信息中提取设计字段,从设计字段中确定出一个或多个预设设计字段;确定业务单元格的设计字段的类型;根据一个或多个预设设计字段的类型构造至少一个第二条件表达式;基于至少一个第二条件表达式对业务单元格中所有字段进行搜索,获取业务单元格中预设设计字段信息。
100.在该实施例中,从业务单元格的条件信息中提取并确认一个或多个预设设计字段,并根据预设设计字段确认业务单元格中设计字段的类型,设计字段的类型即为不同的条件类型,然后根据设计字段的类型构造第二表达式,第二表达式具体地可以为case when表达式等程序语言。然后根据第二表达式中的条件类型去遍历业务单元格中的所有字段信息,以得到满足第二表达式中的条件类型的预设设计字段信息。本技术中通过获取多个条件构造表达式的模板信息,可满足复杂条件下生成数据条件的模板,为后续对表达式的替换、拼接过程做准备。
101.进一步地,设计字段包括值字段、显示字段、辅助字段中的一种或多种组合。
102.在上述实施例中,将拼接字段信息拼接形成第一条件表达式的步骤,具体包括:判断拼接字段信息是否属于已有定义字段;若判断结果为否,则使用统一函数进行拼接;若判断结果为是,则使用数据库函数进行拼接;基于拼接结果形成第一条件表达式。
103.在该实施例中,根据第二条件表达式遍历所有字段后的结果,对满足条件信息的字段进行拼接,基于拼接后的字段信息判断是否属于业务表中已有的自定义字段,已有定
义字段表示用户已经设计过的带有条件表达式的字段,这种已有定义字段能够直通数据库,已有定义字段包括与要进行搜索的数据具有相同的搜索条件或相似的搜索条件的字段。例如:用户要进行搜索的数据(拼接字段信息)为满足地区是a、性别是男这种条件的姓名和年龄,这个时候如果已有定义字段中已经出现了满足地区是a、性别是男这种条件的姓名和年龄的字段或者出现了类似的字段,例如:满足地区是b、性别是女这种条件的姓名和年龄的字段,这个时候都可以认为是已有定义字段。然后,如果拼接后的字段数据信息不属于业务表中已有的自定义字段,则使用统一函数的方式进行拼接,以得到满足该字段数据信息的第一条件表达式。如果拼接后的字段数据信息属于业务表中已有的自定义字段,则使用数据库函数的方式进行拼接,以得到第一条件表达式,以通过第一条件表达式对数据库中的数据信息进行搜索。这样就能够兼容老业务表正常业务信息,使得老业务表也可以正常使用本发明中的业务表数据的生成方法。
104.本发明的第二方面的实施例提供了业务表数据的生成装置1。其中,该装置包括:获取单元11、转化单元12、提取单元13、识别单元14、生成单元15、执行单元16、记录单元17。
105.如图9所示,根据本发明提供的用于业务表数据的生成装置1,包括:获取单元11,用于确定业务表中的设计单元格;转化单元12,用于将设计单元格转化成业务单元格;提取单元13,用于提取业务单元格上的条件信息;识别单元14,用于识别业务单元格对应的设计模式;生成单元15,用于根据设计模式生成不同的条件;执行单元16,用于根据不同的条件在数据库中搜索符合条件信息的数据;记录单元17,用于将获取的数据记录在对应的设计单元格中。
106.本发明第三方面的技术方案提供了业务表数据的生成装置2,包括:存储器21,存储有程序;处理器22,执行程序;其中,处理器22在执行程序时,实现如第一方面任一项技术方案中的业务表数据的生成方法的步骤。
107.如图10所示,根据本发明提供的用于业务表数据的生成装置2,包括:存储器21和处理器22,存储器21储存有程序或指令,程序或指令被处理器22执行时,实现如第一方面任一项技术方案中的业务表数据的生成方法的步骤。由于该装置能够实现如第一方面任一项技术方案中的用于业务表数据的生成方法的步骤,因此,该装置还具有上述第一方面任一项技术方案中业务表数据的生成方法的全部有益效果,在此不再赘述。
108.本发明第四方面的技术方案提供了一种可读存储介质,其上存储有程序,在程序被执行时,实现如第一方面任一项技术方案中的用于业务表数据的生成方法的步骤。
109.根据本发明提供的可读存储介质,其上存储有程序或指令,程序或指令被执行时,实现如第一方面任一项技术方案中的用于业务表数据的生成方法的步骤。由于该可读存储介质能够实现如第一方面任一项技术方案中的用于业务表数据的生成方法的步骤。因此,该可读存储介质还具有上述第一方面任一项技术方案中的用于业务表数据的生成方法的全部有益效果,在此不再赘述。
110.在根据本技术的一个实施例中,如图5所示,业务表数据的生成方法,还包括:
111.s502,获取业务表中的设计单元格;
112.s504,将设计单元格转化成业务单元格,同时提取业务单元格上的条件信息;
113.s506,识别出业务单元格对应的设计模式,当设计模式为可下推数据库设计模式时,执行s508;当设计模式为不可下推数据库设计模式时,执行s510;
114.s508,将条件信息转换为数据库过滤条件,执行s528;
115.s510,从条件信息中提取设计字段,从设计字段中确定出一个或多个设计字段;
116.s512,确定业务单元格的设计字段的类型;
117.s514,根据一个或多个预设设计字段的类型构造至少一个第二条件表达式;
118.s516,基于至少一个第二条件表达式对业务单元格中所有字段进行搜索,获取业务单元格中预设设计字段信息;
119.s518,将预设设计字段信息进行拼接,以生成拼接字段信息;
120.s520,判断拼接字段信息是否属于已有定义字段,若判断结果为是,则执行s522,否则执行s524;
121.s522,使用数据库函数进行拼接,执行s526;
122.s524,使用统一函数进行拼接,执行s526;
123.s526,基于拼接结果形成第一条件表达式;
124.s528,基于第一条件表达式或数据库过滤条件在数据库中搜索出符合条件信息的数据,并将获取的数据记录在对应的设计单元格中;
125.s530,根据第一条件表达式生成条件字段;
126.s532,记录条件字段与条件信息中的字段之间的关系;
127.s534,在获取到条件字段后,根据条件字段搜索出符合条件信息的数据。
128.在该实施例中,获取业务表中的设计单元格,设计单元格是指用户在报表设计器中进行设计时,形成的单元格模型,将其转化为业务单元格,业务单元格指服务器为了保证参数的统一性、完整性等,基于接收到的设计单元格造出的一个新的业务单元格,使得不需要改变业务表中的原始数据,同时需要提取业务单元格上的条件信息。然后识别业务单元格所对应的设计模式,业务表存在多种设计模式,例如明细表、分组表、交叉表等,按照大类可划分成可下推数据库设计模式和不可下推数据库设计模式。可以理解为,可下推数据库设计模式属于能够将过多的搜索结果在有限的界面上分多页来显示,以能够显示全部搜索结果的模式;不可下推数据库设计模式属于在需要查询的数据量过大时,不能在有限的界面上搜索到全部的数据结果,只能够搜索出部分数据结果,这个时候就不能保证所要搜索的数据是完整的,导致需要进行多次搜索,而多次搜索时会出现数据重复、数据遗漏等问题,从而再次搜索的时候也不能保证数据是完整的数据,导致搜索结果不准确。也即,当业务单元格属于可下推数据库设计模式时,则直接将条件信息转化为数据库过滤条件,以通过数据库过滤条件直接对数据库中的所有数据进行搜索,以获取准确的搜索结果。当业务单元格属于不可下推数据库设计模式时,这个时候需要对条件信息进行转化,转化为数据库能够识别的第一条件表达式,以通过第一条件表达式的方式对数据库中的数据进行搜索,以得到符合条件信息的数据,并将获取到的数据记录到相对应的设计单元格中。
129.进一步地,根据第一条件表达式生成条件字段,该条件字段中包含了一个或多个条件信息的表达式,并记录条件字段与条件信息中的一个或多个字段之间的关系,以便后续在需要对该条件信息进行查找时,可以直接将该条件字段作为查询条件,以便数据库能够根据该条件字段直接对满足该条件字段的条件信息进行搜索,从而提高查询搜索数据的执行效率。
130.在根据本技术的一个实施例中,如图6所示,业务表数据的生成方法,还包括:
131.s602,判断单元格是否存在条件,在判断结果为是时,执行s604,否则执行s606;
132.s604,返回null并退出;
133.s606,判断是否属于维度单元格且sql分页,在判断结果为是时,执行s604,否则执行s608;
134.s608,判断宽表原始数据是否记录,在判断结果为是时,执行s612,否则执行s610;
135.s610,记录当前宽表的原始数据;
136.s612,提取业务单元格上的设计字段;
137.s614,获取当前单元格自定义字段的类型;
138.s616,构造第二条件表达式;
139.s618,遍历所有字段;
140.s620,拼接字段信息;
141.s622,判断字段信息是否属于报表老自定义字段,在判断结果为是时,执行s624,否则执行s626;
142.s624,使用数据库函数拼接,执行s628;
143.s626,使用统一函数拼接;
144.s628,生成第一条件表达式,根据第一条件表达式生成自定义字段;
145.s630,记录字段与自定义字段之间的关系;
146.s632,判断遍历是否结束,在判断结果为是时,执行s634,否则执行s618;
147.s634,返回字段与函数的映射关系。
148.具体地,服务端接收到单元格列表后,进行业务单元格转换,在转换过程中提前收集单元格上的条件信息。随后对业务单元格作结构化处理,识别出报表模式;基于报表模式选择不同的模式处理过程,如直接拼接where条件,转换case when表达式。服务端接收到设计单元格列表参数后,将其转换为业务单元格列表。随后遍历业务单元格列表,提取业务单元格上的条件信息,根据上下文已经识别出的报表设计模式,进行不同的条件业务处理。对可以下推数据库设计模式,则直接将所有条件转换为数据库过滤条件表达;对不能下推数据库的设计模式,则需要将单元格条件转换为对应数据库流程控制、逻辑比较等的维度表达式模型。如将条件转换为case when函数、if函数、and/or规则等表达模型。所有单元格处理完成后,基于业务单元格列表构造数据来源描述,随后进行业务处理。其中,设计单元格指用户在报表设计器中进行设计时,形成的单元格模型。业务单元格指服务端为了保障参数的一致性、完整性、隔离性,基于接收到的单元格模型,构造出一个新的业务对象模型,这个业务单元格封装了原始设计单元格的完全信息。报表设计模式自由报表存在多种模式,如明细表、分组表、交叉表,按大类可分为可下推数据库设计模式和不可下推数据库设计模式。下推数据库设计模式表示报表设计可直通数据库进行分页处理的一种设计模式。维度表达式模型:对单元格设计字段(维度)及单元格条件(表达式)作封装,统一对外提供服务的模型。数据来源描述:设计器中的设计字段归集处理,形成查询必需的查询描述信息,如查询描述器、过滤描述器、排序描述器等,并记录、存储基于这些查询描述信息执行查询后的结果。是自由报表对查询过程从查询准备到执行结果的一次封装。统一函数:统一的公式处理引擎。描述器:对数据库查询信息、分组信息、过滤信息等的封装。如查询描述器、分组描述器、过滤描述器等查询计算引擎:屏蔽多种数据库的差异性,对上层应用统一描述的面
向数据库查询、计算的sdk(software development kit,软件开发工具包)。
149.单元格【条件-表达式】转化、收集过程具体包括:
150.1)判断当前单元格是否存在条件,如果不存在,则无须处理;
151.2)根据报表设计模式判断,如果是可下推数据库设计模式,则将单元格条件直接处理为数据库条件;
152.3)不可下推数据库设计模式依赖宽表模型、查询计算引擎,需要提前记录宽表的原始字段;
153.4)提取单元格上的所有设计字段信息,为后续处理做准备;
154.5)构造维度表达式模型的模板信息,为后续维度表达式替换、拼接做准备;
155.6)遍历单元格所有设计字段信息,为了兼容老报表正常业务,则需要考虑使用数据库流程控制函数如case when、if等转换,否则直接接入统一函数作处理;
156.7)根据维度表达式模型生成自定义字段并记录原始字段和自定义字段的映射关系。
157.本技术的方案相对于现有技术来说,具有如下有益效果:
158.1.整理优化描述器构造过程。老算法仅构造、记录查询描述器、分组描述器;新算法将条件转换为维度表达式模型,仅构造包含表达式的查询描述器,增强后续业务扩展性。
159.2.优化处理过程。老算法基于查询结果集在内存中作单元格条件过滤处理;新算法直接使用查询结果,无须内存过滤处理。
160.3.提高准确度。老算法对(数据库)原始数据的覆盖率小于等于新算法,因此新算法计算结果准确度大于等于老算法。
161.4.降低内存开销。老算法基于查询结果集生成业务数据后再进行内存过滤,即生成了不必要的业务数据,增加了内存使用;新算法查询结果就是需要的业务数据,无须过滤处理。
162.5.降低cpu使用率。老算法基于查询结果级生成业务数据时,遍历数据做内存过滤处理,增加cpu使用;新算法查询结果就是需要的业务数据,无须过滤处理。
163.在一个可能地实施例中,如图7所示,提供了一种基于自由报表测试用于验证数据准确度的实验,其步骤具体包括:
164.s702,构造一个具有业务单元格的业务表;
165.s704,对业务表执行sql程序;
166.s706,得到满足条件的数据信息。
167.具体地,如图8所示,构造一个具有业务单元格的业务表;然后对业务表执行sql程序,其中,sql程序包括新逻辑程序和老逻辑程序。其中,执行sql程序如下:
[0168][0169]
老逻辑执行sql,具体如下:
[0170]
[0171][0172]
其中,老逻辑执行sql时,qb588202311.`cussup_id`as`i2071917776_cussup_id`相当于直接将条件字段当作查询字段;`i2071917776_cussup_id`asc相当于将条件字段当作分组字段,最终的查询数据总量为25871条。
[0173]
新逻辑执行sql,具体如下:
[0174]
[0175][0176]
其中,新逻辑执行sql中,case when`cussup_id`!=”then`so_audit_dt`else null end as`ia174eb15eaf07469560342540f9e5`相当于将老逻辑中的条件字段转换为case when表达式的形式进行数据查询。同时,group by qb588202231.`cyearname`,casewhen`cussup_id`!=”then`so_audit_dt`else null end相当于将老逻辑中的条件字段转换为case when分组,从而使得最终的查询数据总量为1800条。
[0177]
由此可见,新逻辑下在数据库中对数据进行查询,其查询结果的数量明显少于老逻辑的查询结果。对比而言,新逻辑和老逻辑相比,查询总数相差1个量级,新逻辑查询结果就是业务结果,老逻辑则不是,从而可以确定出新逻辑能够减少cpu的使用,提升服务器的稳定性。
[0178]
在本说明书的描述中,术语“连接”、“安装”、“固定”等均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0179]
在本说明书的描述中,需要理解的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或单元必须具有特定的方向、以特定的方位构造和操作,因此,不能理解为对本发明的限制。
[0180]
在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0181]
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、
等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1