CN116340409A - 数据聚合方法和装置、计算机可读存储介质和电子设备 - Google Patents
数据聚合方法和装置、计算机可读存储介质和电子设备 Download PDFInfo
- Publication number
- CN116340409A CN116340409A CN202310373892.9A CN202310373892A CN116340409A CN 116340409 A CN116340409 A CN 116340409A CN 202310373892 A CN202310373892 A CN 202310373892A CN 116340409 A CN116340409 A CN 116340409A
- Authority
- CN
- China
- Prior art keywords
- aggregation
- aggregated
- field
- field values
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及数据处理技术领域,具体涉及一种数据聚合方法和装置、计算机可读存储介质和电子设备,解决了难以对待聚合表中的JSON格式的数据进行聚合的问题。该数据聚合方法,获取第一待聚合表,第一待聚合表中存储有级联字段值,级联字段值以JSON格式存储在第一待聚合表中的一个单元格中;对第一待聚合表中的级联字段值进行拆分,得到P个待聚合字段值,并将P个待聚合字段值分别存储在第二待聚合表中的P个单元格中,P为大于1的正整数;接收第一聚合参数;使用以所述第一聚合参数作为输入的预设聚合规则,针对第二待聚合表中的P个待聚合字段值进行聚合处理,得到第一聚合结果。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种数据聚合方法和装置、计算机可读存储介质和电子设备。
背景技术
在关系数据库系统中,为了减少范式存储导致的关联更新负担,一般采用JSON格式来存储数据。然而JSON格式的数据作为一个整体被存储在待聚合表的一个单元格中,导致难以对待聚合表中的JSON格式的数据进行聚合。
发明内容
有鉴于此,本申请实施例提供了一种数据聚合方法和装置、计算机可读存储介质和电子设备,解决了难以对待聚合表中的JSON格式的数据进行聚合的问题。
第一方面,本申请一实施例提供的一种数据聚合方法,包括:获取第一待聚合表,第一待聚合表中存储有级联字段值,级联字段值以JSON格式存储在第一待聚合表中的一个单元格中;对第一待聚合表中的级联字段值进行拆分,得到P个待聚合字段值,并将P个待聚合字段值分别存储在第二待聚合表中的P个单元格中,P为大于1的正整数;接收第一聚合参数;使用以第一聚合参数作为输入的预设聚合规则,针对第二待聚合表中的P个待聚合字段值进行聚合处理,得到第一聚合结果,其中,第一聚合结果用于表征符合以第一聚合参数作为输入的预设聚合规则的待聚合字段值的数量。
结合本申请的第一方面,在一些实施例中,预设聚合规则包括预设SQL聚合模板语句,使用以第一聚合参数作为输入的预设聚合规则,针对第二待聚合表中的P个待聚合字段值进行聚合处理,得到第一聚合结果,包括:利用第一聚合参数和预设SQL聚合模板语句,生成SQL聚合语句;利用SQL聚合语句,对第二待聚合表进行聚合处理,得到第一聚合结果。
结合本申请的第一方面,在一些实施例中,P个待聚合字段值存储在第二待聚合表中的M个待聚合字段所在列,第一聚合参数包括目标字段名,利用SQL聚合语句,对第二待聚合表进行聚合处理,得到第一聚合结果,包括:利用SQL聚合语句,确定M个待聚合字段中的字段名等于目标字段名的待聚合字段,并将字段名等于目标字段名的待聚合字段所在列中的待聚合字段值的数量确定为第一聚合结果。
结合本申请的第一方面,在一些实施例中,P个待聚合字段值存储在第二待聚合表中的M个待聚合字段所在列,第一聚合参数包括目标字段名和目标字段值,利用SQL聚合语句,对第二待聚合表进行聚合处理,得到第一聚合结果,包括:利用SQL聚合语句,确定M个待聚合字段中的字段名等于目标字段名的待聚合字段,并将字段名等于目标字段名的待聚合字段所在列中的待聚合字段值等于目标字段值的数量确定为第一聚合结果。
结合本申请的第一方面,在一些实施例中,预设SQL聚合模板语句包括on条件模板语句;利用第一聚合参数和预设SQL聚合模板语句,生成SQL聚合语句,包括:将第一聚合参数填充在on条件模板语句的预设位置,生成SQL聚合语句。
结合本申请的第一方面,在一些实施例中,在使用以第一聚合参数作为输入的预设聚合规则,针对第二待聚合表中的P个待聚合字段值进行聚合处理,得到第一聚合结果之后,还包括:接收第二聚合参数;使用以第二聚合参数作为输入的预设聚合规则,针对第二待聚合表中的P个待聚合字段值进行聚合处理,得到第二聚合结果,其中,第二聚合结果用于表征符合以第二聚合参数作为输入的预设聚合规则的待聚合字段值的数量;基于第一聚合结果和第二聚合结果,确定第三聚合结果,其中,第三聚合结果用于表征符合以第一聚合参数作为输入的预设聚合规则或符合以第二聚合参数作为输入的预设聚合规则的待聚合字段值的数量。
结合本申请的第一方面,在一些实施例中,第二待聚合表包括待聚合字段和层级编码字段,对第一待聚合表中的级联字段值进行拆分,得到P个待聚合字段值,并将P个待聚合字段值分别存储在第二待聚合表中的P个单元格中,包括:基于第一待聚合表中的级联字段值,确定级联字段值中的P个值和P个值各自的层级;将P个值确定为P个待聚合字段值,并将P个值各自的层级确定为与P个待聚合字段值一一对应的P个层级编码字段值;将P个待聚合字段值分别存储在待聚合字段所在列的P个单元格;将P个层级编码字段值分别存储在层级编码字段所在列,且P个待聚合字段值与P个层级编码字段值在行维度一一对应。
第二方面,本申请一实施例提供了一种数据聚合装置,包括:聚合表获取模块,配置为获取第一待聚合表,第一待聚合表中存储有级联字段值,级联字段值以JSON格式存储在第一待聚合表中的一个单元格中;拆分模块,配置为对第一待聚合表中的级联字段值进行拆分,得到P个待聚合字段值,并将P个待聚合字段值分别存储在第二待聚合表中的P个单元格中,P为大于1的正整数;聚合条件获取模块,配置为接收第一聚合参数;聚合模块,配置为使用以第一聚合参数作为输入的预设聚合规则,针对第二待聚合表中的P个待聚合字段值进行聚合处理,得到第一聚合结果,其中,第一聚合结果用于表征符合以第一聚合参数作为输入的预设聚合规则的待聚合字段值的数量。
第三方面,本申请一实施例提供了一种计算机可读存储介质,存储介质存储有指令,当指令由电子设备的处理器执行时,使得电子设备能够执行上述第一方面提及的数据聚合方法。
第四方面,本申请一实施例提供了一种电子设备,电子设备包括:处理器;用于存储计算机可执行指令的存储器;处理器,用于执行计算机可执行指令,以实现上述第一方面提及的数据聚合方法。
本申请实施例提供的数据聚合方法,获取第一待聚合表,第一待聚合表中存储有级联字段值,级联字段值以JSON格式存储在第一待聚合表中的一个单元格中;对第一待聚合表中的级联字段值进行拆分,得到P个待聚合字段值,并将P个待聚合字段值分别存储在第二待聚合表中的P个单元格中,P为大于1的正整数;接收第一聚合参数;使用以第一聚合参数作为输入的预设聚合规则,针对第二待聚合表中的P个待聚合字段值进行聚合处理,得到第一聚合结果,其中,第一聚合结果用于表征符合以第一聚合参数作为输入的预设聚合规则的待聚合字段值的数量。也就是说,本申请的数据聚合方法,通过将第一待聚合表中的级联字段值进行拆分,并将拆分得到的P个待聚合字段值分别存储在第二待聚合表中的P个单元格中,从而可以对第二待聚合表中的P个待聚合字段值进行聚合处理,避免了直接对第一待聚合表中的以JSON格式存储的级联字段值进行聚合,实现了间接对级联字段值进行聚合的目的。
附图说明
图1所示为本申请一实施例提供的数据聚合方法的应用场景示意图。
图2所示为本申请一实施例提供的数据聚合方法的流程示意图。
图3所示为本申请一实施例提供的第一待聚合表。
图4所示为本申请一实施例提供的第二待聚合表。
图5所示为本申请另一实施例提供的数据聚合方法的流程示意图。
图6所示为本申请另一实施例提供的数据聚合方法的流程示意图。
图7所示为本申请另一实施例提供的数据聚合方法的流程示意图。
图8所示为本申请另一实施例提供的数据聚合方法的流程示意图。
图9所示为本申请另一实施例提供的数据聚合方法的流程示意图。
图10所示为本申请另一实施例提供的数据聚合方法的流程示意图。
图11所示为本申请一实施例提供的数据聚合装置的结构示意图。
图12所示为本申请另一实施例提供的数据聚合装置的结构示意图。
图13所示为本申请一实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在关系数据库系统中,为了减少范式存储导致的关联更新负担,一般采用JSON格式来存储数据。然而JSON格式的数据作为一个整体被存储在待聚合表的一个单元格中,导致难以对待聚合表中的JSON格式的数据进行聚合。
示例性地,对于各种检查数据,业务系统会把各种检查的控件作为整体存储,如,用户在业务系统中选择“检查”、“实验室检查”、“血液检查”,数据库中的待聚合表的存储结果为:["check","lab_check","blood_check"]。一般数据库中的待聚合表中也会存储冗余字面值,例如,使用如下结构:{"formatted Value":["检查",”实验室检查",“血液检查”],"value":["check","lab_check","blood_check"]}。上述这类数据以JSON存储在Mysql或者Postgre等关系数据库的待聚合表中。由于级联字典表(即,待聚合表)中的存储的级联字段的位置信息很重要,例如,“check”在级联字段的第一位,对应级联字典的第一层,而“lab_check”在级联字段的第二位,对应级联字典的第二层,“blood_check”在级联字段的第三位,对应级联字典的第三层。在对级联字典表进行聚合时,如果需要筛选所有血液检查的数据,上述的JSON格式的存储方式,由于把多个层级的值都存储在了一个单元格中,无法只针对血液检查的数据进行聚合。
示例性场景
图1所示为本申请一实施例提供的数据聚合方法的应用场景示意图。图1所示的场景包括服务器110以及与服务器110通信连接的客户端120。具体而言,服务器110用于获取第一待聚合表,第一待聚合表中存储有级联字段值,级联字段值以JSON格式存储在第一待聚合表中的一个单元格中;对第一待聚合表中的级联字段值进行拆分,得到P个待聚合字段值,并将P个待聚合字段值分别存储在第二待聚合表中的P个单元格中,P为大于1的正整数;接收第一聚合参数;使用以第一聚合参数作为输入的预设聚合规则,针对第二待聚合表中的P个待聚合字段值进行聚合处理,得到第一聚合结果,其中,第一聚合结果用于表征符合以第一聚合参数作为输入的预设聚合规则的待聚合字段值的数量。服务器110得到第一聚合结果后,可以将第一聚合结果发送给客户端120。客户端120用于向服务器110发送聚合请求,以便服务器110执行上述操作。
在一些实施方式中,服务器110可以是计算机、服务器或云端。客户端120可以是计算机、平板或手机。
示例性方法
图2所示为本申请一实施例提供的数据聚合方法的流程示意图。具体地,如图2所示,该数据聚合方法包括如下步骤。
步骤210,获取第一待聚合表。
具体地,第一待聚合表中存储有级联字段值,级联字段值以JSON格式存储在第一待聚合表中的一个单元格中。第一待聚合表中可以存储有多个级联字段值,每个级联字段值以JSON格式存储在第一待聚合表中的一个单元格中。
图3所示为本申请一实施例提供的第一待聚合表。如图3所示,第一待聚合表可以包括标识字段、身份证号字段、检查项目字段和检查时间字段。标识字段的字段名为Id,身份证号字段的字段名为Person_identity_id,检查项目字段的字段名为Check_item,检查时间字段的字段名为Check_time。
检查项目字段所在列中的字段值即为级联字段值,即,{“formatted Value”:[“检查”,“实验室检查”,“血液检查”],"value":[“check”,“lab_check”,“blood_check”]}为级联字段值。
示例性地,级联字段值的层级结构如下所示。
--检查(check)
--实验室检查(Lab_check)
--血液检查(Blood_check)
--尿液检查(Urine_check)
--放射性检查(Radiographic_check)
--CT检查(CT_check)
步骤220,对第一待聚合表中的级联字段值进行拆分,得到P个待聚合字段值,并将P个待聚合字段值分别存储在第二待聚合表中的P个单元格中。
具体地,P为大于1的正整数。
图4所示为本申请一实施例提供的第二待聚合表。如图4所示,第二待聚合表可以包括第一待聚合表唯一键字段、元数据列唯一标识字段、级联字典拆分后的字典值字段、字典编码字段、字典字面值字段、级联顺序字段。第一待聚合表唯一键字段的字段名为Row_id,元数据列唯一标识字段的字段名为Column_id,级联字典拆分后的字典值字段的字段名为Column_split_id,字典编码字段的字段名为code,字典字面值字段的字段名为name,级联顺序字段的字段名为order。级联顺序字段用于表征字典值在级联字典中的顺序。
P个待聚合字段值可以是字典编码字段所在列的字段值,例如,check、lab_check、blood_check、urine_check。P个待聚合字段值也可以是字典字面值字段所在列的字段值,例如,检查、实验室检查、血液检查、尿液检查。
步骤230,接收第一聚合参数。
具体地,第一聚合参数可以是目标字段名或目标字段值。第一聚合参数可以是用户输入的参数。
步骤240,使用以第一聚合参数作为输入的预设聚合规则,针对第二待聚合表中的P个待聚合字段值进行聚合处理,得到第一聚合结果。
具体地,第一聚合结果用于表征符合以第一聚合参数作为输入的预设聚合规则的待聚合字段值的数量。以第一聚合参数作为输入的预设聚合规则可以是在P个待聚合字段值中匹配出与目标字段值相等的待聚合字段值。
示例性地,可以在P个待聚合字段值中匹配出与目标字段值相等的待聚合字段值,然后计算匹配出的待聚合字段值的数量,并将匹配出的待聚合字段值的数量确定为第一聚合结果。
本申请实施例提供的数据聚合方法,获取第一待聚合表,第一待聚合表中存储有级联字段值,级联字段值以JSON格式存储在第一待聚合表中的一个单元格中;对第一待聚合表中的级联字段值进行拆分,得到P个待聚合字段值,并将P个待聚合字段值分别存储在第二待聚合表中的P个单元格中,P为大于1的正整数;接收第一聚合参数;使用以第一聚合参数作为输入的预设聚合规则,针对第二待聚合表中的P个待聚合字段值进行聚合处理,得到第一聚合结果,其中,第一聚合结果用于表征符合以第一聚合参数作为输入的预设聚合规则的待聚合字段值的数量。也就是说,本申请的数据聚合方法,通过将第一待聚合表中的级联字段值进行拆分,并将拆分得到的P个待聚合字段值分别存储在第二待聚合表中的P个单元格中,从而可以对第二待聚合表中的P个待聚合字段值进行聚合处理,避免了直接对第一待聚合表中的以JSON格式存储的级联字段值进行聚合,实现了间接对级联字段值进行聚合的目的。
图5所示为本申请另一实施例提供的数据聚合方法的流程示意图。在图2所示实施例基础上延伸出图5所示实施例,下面着重叙述图5所示实施例与图2所示实施例的不同之处,相同之处不再赘述。
如图5所示,在本申请实施例中,使用以第一聚合参数作为输入的预设聚合规则,针对第二待聚合表中的P个待聚合字段值进行聚合处理,得到第一聚合结果的步骤,包括如下步骤。
步骤510,利用第一聚合参数和预设SQL聚合模板语句,生成SQL聚合语句。
示例性地,预设聚合规则包括预设SQL聚合模板语句。第一聚合参数可以是目标字段名,例如,图4所示表格中的目标字段名:code,SQL聚合语句可以是如下语句,该语句用于统计所有字典第二级检查项(即,级联顺序字段的字段值为2)的检查分布情况。
Select b.code,count(1)from person_check_info A join System_dict B onA.id=B.id and B.column_id=C2 and B.order=2
Group by b.code
其中,person_check_info A表示第一待聚合表,System_dict B表示第二待聚合表。
示例性地,第一聚合参数可以是目标字段名,例如,图4所示表格中的目标字段名:code,SQL聚合语句可以是如下语句,该语句用于统计所有父子类型检查项(即图4所示表格中的所有检查项目)分布情况。
Select b.code,count(1)from person_check_info A join System_dict B onA.id=B.id
Group by B.code
其中,person_check_info A表示第一待聚合表,System_dict B表示第二待聚合表。
示例性地,第一聚合参数可以是目标字段名和目标字段值,例如,图4所示表格中的目标字段名:code,目标字段值:尿液检查,SQL聚合语句可以是如下语句,该语句用于统计所有做过尿液检查的人员数量。
Select b.code,count(1)from person_check_info A join System_dict B onA.id=B.id and B.column_id=C2 and B.order=3
Where B.name=‘尿液检查’
Group by b.code
其中,person_check_info A表示第一待聚合表,System_dict B表示第二待聚合表。
在一些实施例中,可以对以上SQL语句进行逻辑层封装,以降低用户使用本申请提供的数据聚合方法的难度,提高用户的使用体验。
示例性地,对用于统计所有字典第二级检查项(即,级联顺序字段的字段值为2)的检查分布情况的语句进行封装,可以得到以下SQL语句。
Select a.check_item.2.code,count(1)from person_check_info A group bya.check_item.2.code
示例性地,对用于统计所有父子类型检查项(即图4所示表格中的所有检查项目)分布情况进行封装,可以得到以下SQL语句。
Select a.check_item.code,count(1)from person_check_info A group bya.check_item.code
示例性地,对用于统计所有做过尿液检查的人员数量进行封装,可以得到以下SQL语句。
Select a.check_item.3.code,count(1)from person_check_info A wherea.location.3.name=“尿液检查”group by b.code
步骤520,利用SQL聚合语句,对第二待聚合表进行聚合处理,得到第一聚合结果。
由于SQL聚合语句可以将第一待聚合表与第二待聚合表进行关联,因此,对第二待聚合表进行聚合处理,可以通过第一待聚合表与第二待聚合表的关联关系,间接实现对第一待聚合表的聚合处理。
图6所示为本申请另一实施例提供的数据聚合方法的流程示意图。在图5所示实施例基础上延伸出图6所示实施例,下面着重叙述图6所示实施例与图5所示实施例的不同之处,相同之处不再赘述。
如图6所示,在本申请实施例中,利用SQL聚合语句,对第二待聚合表进行聚合处理,得到第一聚合结果的步骤,包括如下步骤。
步骤610,利用SQL聚合语句,确定M个待聚合字段中的字段名等于目标字段名的待聚合字段。
具体地,P个待聚合字段值存储在第二待聚合表中的M个待聚合字段所在列,第一聚合参数包括目标字段名。
示例性地,M个待聚合字段可以包括图4所示的字典编码字段、字典字面值字段。
步骤620,将字段名等于目标字段名的待聚合字段所在列中的待聚合字段值的数量确定为第一聚合结果。
示例性地,目标字段名为name。如图4所示,M个待聚合字段中的字典字面值字段的字段名为name,因此,可以将字典字面值字段所在列中的待聚合字段值的数量确定为第一聚合结果,聚合方法简单,效率高。
图7所示为本申请另一实施例提供的数据聚合方法的流程示意图。在图5所示实施例基础上延伸出图7所示实施例,下面着重叙述图7所示实施例与图5所示实施例的不同之处,相同之处不再赘述。
如图7所示,在本申请实施例中,利用SQL聚合语句,对第二待聚合表进行聚合处理,得到第一聚合结果的步骤,包括如下步骤。
步骤710,利用SQL聚合语句,确定M个待聚合字段中的字段名等于目标字段名的待聚合字段。
具体地,P个待聚合字段值存储在第二待聚合表中的M个待聚合字段所在列,第一聚合参数包括目标字段名和目标字段值。
示例性地,M个待聚合字段可以包括图4所示的字典编码字段、字典字面值字段。
步骤720,将字段名等于目标字段名的待聚合字段所在列中的待聚合字段值等于目标字段值的数量确定为第一聚合结果。
示例性地,目标字段名为name,目标字段值为实验室检查。如图4所示,M个待聚合字段中的字典字面值字段的字段名为name,字典字面值字段所在列中的待聚合字段值为实验室检查的数量为两个,因此,第一聚合结果为两个。该数据聚合方法简单,效率高。
图8所示为本申请另一实施例提供的数据聚合方法的流程示意图。在图5所示实施例基础上延伸出图8所示实施例,下面着重叙述图8所示实施例与图5所示实施例的不同之处,相同之处不再赘述。
如图8所示,在本申请实施例中,利用第一聚合参数和预设SQL聚合模板语句,生成SQL聚合语句的步骤,包括如下步骤。
步骤810,将第一聚合参数填充在on条件模板语句的预设位置,生成SQL聚合语句。
具体地,预设SQL聚合模板语句包括on条件模板语句。利用第一聚合参数和预设SQL聚合模板语句,生成SQL聚合语句,可以是将第一聚合参数填充在on条件模板语句的预设位置,生成SQL聚合语句,SQL聚合语句生成简单,效率高。
图9所示为本申请另一实施例提供的数据聚合方法的流程示意图。在图2所示实施例基础上延伸出图9所示实施例,下面着重叙述图9所示实施例与图2所示实施例的不同之处,相同之处不再赘述。
如图9所示,在本申请实施例中,在使用以第一聚合参数作为输入的预设聚合规则,针对第二待聚合表中的P个待聚合字段值进行聚合处理,得到第一聚合结果的步骤之后,还包括如下步骤。
步骤910,接收第二聚合参数。
具体地,第二聚合参数也可以是目标字段名和目标字段值,但第二聚合参数对应的目标字段值,可以与第一聚合参数对应的目标字段值不同。
示例性地,第一聚合参数对应的目标字段名是code,目标字段值是blood_check,第二聚合参数对应的目标字段名是code,目标字段值是urine_check。
步骤920,使用以第二聚合参数作为输入的预设聚合规则,针对第二待聚合表中的P个待聚合字段值进行聚合处理,得到第二聚合结果。
具体地,第二聚合结果用于表征符合以第二聚合参数作为输入的预设聚合规则的待聚合字段值的数量。
示例性地,使用以第二聚合参数作为输入的预设聚合规则,针对第二待聚合表中的P个待聚合字段值进行聚合处理,得到第二聚合结果的具体执行过程,可以与使用以第一聚合参数作为输入的预设聚合规则,针对第二待聚合表中的P个待聚合字段值进行聚合处理,得到第一聚合结果的具体执行过程相同,在此不再赘述。
步骤930,基于第一聚合结果和第二聚合结果,确定第三聚合结果。
具体地,第三聚合结果用于表征符合以第一聚合参数作为输入的预设聚合规则或符合以第二聚合参数作为输入的预设聚合规则的待聚合字段值的数量。
通过两次聚合处理,可以得到更加丰富的聚合结果。
图10所示为本申请另一实施例提供的数据聚合方法的流程示意图。在图2所示实施例基础上延伸出图10所示实施例,下面着重叙述图10所示实施例与图2所示实施例的不同之处,相同之处不再赘述。
如图10所示,在本申请实施例中,对第一待聚合表中的级联字段值进行拆分,得到P个待聚合字段值,并将P个待聚合字段值分别存储在第二待聚合表中的P个单元格中的步骤,包括如下步骤。
步骤1010,基于第一待聚合表中的级联字段值,确定级联字段值中的P个值和P个值各自的层级。
具体地,第二待聚合表包括待聚合字段和层级编码字段。
示例性地,如图4所示,待聚合字段可以是字典编码字段或字典字面值字段。层级编码字段可以是级联顺序字段。
示例性地,层级编码字段也可以是待聚合字段。
步骤1020,将P个值确定为P个待聚合字段值,并将P个值各自的层级确定为与P个待聚合字段值一一对应的P个层级编码字段值。
示例性地,如图4所示,P个待聚合字段值可以是检查、实验室检查、血液检查。待聚合字段值“检查”在级联字段值{“formatted Value”:[“检查”,“实验室检查”,“血液检查”],"value":[“check”,“lab_check”,“blood_check”]}中的层级为第一层级,待聚合字段值“检查”对应的层级编码字段值即为1。待聚合字段值“实验室检查”在级联字段值{“formatted Value”:[“检查”,“实验室检查”,“血液检查”],"value":[“check”,“lab_check”,“blood_check”]}中的层级为第二层级,待聚合字段值“实验室检查”对应的层级编码字段值即为2。待聚合字段值“血液检查”在级联字段值{“formatted Value”:[“检查”,“实验室检查”,“血液检查”],"value":[“check”,“lab_check”,“blood_check”]}中的层级为第三层级,待聚合字段值“血液检查”对应的层级编码字段值即为3。
步骤1030,将P个待聚合字段值分别存储在待聚合字段所在列的P个单元格。
示例性地,如图4所示,检查、实验室检查、血液检查分别存储在字典字面值字段所在列的3个单元格。
步骤1040,将P个层级编码字段值分别存储在层级编码字段所在列,且P个待聚合字段值与P个层级编码字段值在行维度一一对应。
示例性地,如图4所示,1、2、3分别存储在级联顺序字段所在列的3个单元格,且检查、实验室检查、血液检查分别与1、2、3在行维度一一对应,便于后续对整行数据进行聚合处理。
上文结合图2至图10,详细描述了本申请的方法实施例,下面结合图11和图12,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
示例性装置
图11所示为本申请一实施例提供的数据聚合装置的结构示意图。如图11所示,本申请实施例的数据聚合装置1100包括:聚合表获取模块1110、拆分模块1120、聚合参数接收模块1130和聚合模块1140。
具体地,聚合表获取模块1110配置为,获取第一待聚合表,第一待聚合表中存储有级联字段值,级联字段值以JSON格式存储在第一待聚合表中的一个单元格中。拆分模块1120配置为,对第一待聚合表中的级联字段值进行拆分,得到P个待聚合字段值,并将P个待聚合字段值分别存储在第二待聚合表中的P个单元格中,P为大于1的正整数。聚合参数接收模块1130配置为,接收第一聚合参数。聚合模块1140配置为,使用以第一聚合参数作为输入的预设聚合规则,针对第二待聚合表中的P个待聚合字段值进行聚合处理,得到第一聚合结果,其中,第一聚合结果用于表征符合以第一聚合参数作为输入的预设聚合规则的待聚合字段值的数量。
在本申请一实施例中,预设聚合规则包括预设SQL聚合模板语句,聚合模块1140进一步配置为,利用第一聚合参数和预设SQL聚合模板语句,生成SQL聚合语句;利用SQL聚合语句,对第二待聚合表进行聚合处理,得到第一聚合结果。
在本申请一实施例中,P个待聚合字段值存储在第二待聚合表中的M个待聚合字段所在列,第一聚合参数包括目标字段名。聚合模块1140进一步配置为,利用SQL聚合语句,确定M个待聚合字段中的字段名等于目标字段名的待聚合字段,并将字段名等于目标字段名的待聚合字段所在列中的待聚合字段值的数量确定为第一聚合结果。
在本申请一实施例中,P个待聚合字段值存储在第二待聚合表中的M个待聚合字段所在列,第一聚合参数包括目标字段名和目标字段值。聚合模块1140进一步配置为,利用SQL聚合语句,确定M个待聚合字段中的字段名等于目标字段名的待聚合字段,并将字段名等于目标字段名的待聚合字段所在列中的待聚合字段值等于目标字段值的数量确定为第一聚合结果。
在本申请一实施例中,预设SQL聚合模板语句包括on条件模板语句。聚合模块1140进一步配置为,将第一聚合参数填充在on条件模板语句的预设位置,生成SQL聚合语句。
在本申请一实施例中,第二待聚合表包括待聚合字段和层级编码字段。拆分模块1120进一步配置为,基于第一待聚合表中的级联字段值,确定级联字段值中的P个值和P个值各自的层级;将P个值确定为P个待聚合字段值,并将P个值各自的层级确定为与P个待聚合字段值一一对应的P个层级编码字段值;将P个待聚合字段值分别存储在待聚合字段所在列的P个单元格;将P个层级编码字段值分别存储在层级编码字段所在列,且P个待聚合字段值与P个层级编码字段值在行维度一一对应。
图12所示为本申请另一实施例提供的数据聚合装置的结构示意图。在图11所示实施例基础上延伸出图12所示实施例,下面着重叙述图12所示实施例与图11所示实施例的不同之处,相同之处不再赘述。
如图12所示,在本申请实施例中,数据聚合装置1100还包括:第二聚合参数接收模块1150、第二聚合结果确定模块1160和第三聚合结果确定模块1170。
具体地,第二聚合参数接收模块1150配置为,接收第二聚合参数。第二聚合结果确定模块1160配置为,使用以第二聚合参数作为输入的预设聚合规则,针对第二待聚合表中的P个待聚合字段值进行聚合处理,得到第二聚合结果,其中,第二聚合结果用于表征符合第二聚合参数的待聚合字段值的数量。第三聚合结果确定模块1170配置为,基于第一聚合结果和第二聚合结果,确定第三聚合结果,其中,第三聚合结果用于表征符合第一聚合参数或第二聚合参数的待聚合字段值的数量。
示例性电子设备
图13所示为本申请一实施例提供的电子设备的结构示意图。如图13所示,该电子设备1300包括:一个或多个处理器1301和存储器1302;以及存储在存储器1302中的计算机程序指令,计算机程序指令在被处理器1301运行时使得处理器1301执行如上述任一实施例的数据聚合方法。
处理器1301可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。
存储器1302可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器1301可以运行程序指令,以实现上文的本申请的各个实施例的数据聚合方法中的步骤以及/或者其他期望的功能。
在一个示例中,电子设备1300还可以包括:输入装置1303和输出装置1304,这些组件通过总线系统和/或其他形式的连接机构(图13中未示出)互连。
此外,该输入装置1303还可以包括例如键盘、鼠标、麦克风等等。
该输出装置1304可以向外部输出各种信息。该输出装置1304可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图13中仅示出了该电子设备1300中与本申请有关的组件中的一些,省略了诸如总线、输入装置/输出接口等组件。除此之外,根据具体应用情况,电子设备1300还可以包括任何其他适当的组件。
示例性计算机可读存储介质
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,包括计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行如上述任一实施例的数据聚合方法中的步骤。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的数据聚合方法中的步骤。
计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器((RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
以上仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据聚合方法,其特征在于,包括:
获取第一待聚合表,所述第一待聚合表中存储有级联字段值,所述级联字段值以JSON格式存储在所述第一待聚合表中的一个单元格中;
对所述第一待聚合表中的级联字段值进行拆分,得到P个待聚合字段值,并将所述P个待聚合字段值分别存储在第二待聚合表中的P个单元格中,P为大于1的正整数;
接收第一聚合参数;
使用以所述第一聚合参数作为输入的预设聚合规则,针对所述第二待聚合表中的所述P个待聚合字段值进行聚合处理,得到第一聚合结果,其中,所述第一聚合结果用于表征符合以所述第一聚合参数作为输入的所述预设聚合规则的待聚合字段值的数量。
2.根据权利要求1所述的数据聚合方法,其特征在于,所述预设聚合规则包括预设SQL聚合模板语句,所述使用以所述第一聚合参数作为输入的预设聚合规则,针对所述第二待聚合表中的所述P个待聚合字段值进行聚合处理,得到第一聚合结果,包括:
利用所述第一聚合参数和所述预设SQL聚合模板语句,生成SQL聚合语句;
利用所述SQL聚合语句,对所述第二待聚合表进行聚合处理,得到所述第一聚合结果。
3.根据权利要求2所述的数据聚合方法,其特征在于,所述P个待聚合字段值存储在所述第二待聚合表中的M个待聚合字段所在列,所述第一聚合参数包括目标字段名,
所述利用所述SQL聚合语句,对所述第二待聚合表进行聚合处理,得到所述第一聚合结果,包括:
利用所述SQL聚合语句,确定所述M个待聚合字段中的字段名等于所述目标字段名的待聚合字段,并将所述字段名等于所述目标字段名的待聚合字段所在列中的待聚合字段值的数量确定为所述第一聚合结果。
4.根据权利要求2所述的数据聚合方法,其特征在于,所述P个待聚合字段值存储在所述第二待聚合表中的M个待聚合字段所在列,所述第一聚合参数包括目标字段名和目标字段值,
所述利用所述SQL聚合语句,对所述第二待聚合表进行聚合处理,得到所述第一聚合结果,包括:
利用所述SQL聚合语句,确定所述M个待聚合字段中的字段名等于所述目标字段名的待聚合字段,并将所述字段名等于所述目标字段名的待聚合字段所在列中的待聚合字段值等于所述目标字段值的数量确定为所述第一聚合结果。
5.根据权利要求2所述的数据聚合方法,其特征在于,所述预设SQL聚合模板语句包括on条件模板语句;所述利用所述第一聚合参数和所述预设SQL聚合模板语句,生成SQL聚合语句,包括:
将所述第一聚合参数填充在所述on条件模板语句的预设位置,生成所述SQL聚合语句。
6.根据权利要求1至5任一项所述的数据聚合方法,其特征在于,在所述使用以所述第一聚合参数作为输入的预设聚合规则,针对所述第二待聚合表中的所述P个待聚合字段值进行聚合处理,得到第一聚合结果之后,还包括:
接收第二聚合参数;
使用以所述第二聚合参数作为输入的所述预设聚合规则,针对所述第二待聚合表中的所述P个待聚合字段值进行聚合处理,得到第二聚合结果,其中,所述第二聚合结果用于表征符合以所述第二聚合参数作为输入的所述预设聚合规则的待聚合字段值的数量;
基于所述第一聚合结果和所述第二聚合结果,确定第三聚合结果,其中,所述第三聚合结果用于表征符合以所述第一聚合参数作为输入的所述预设聚合规则或符合以所述第二聚合参数作为输入的所述预设聚合规则的待聚合字段值的数量。
7.根据权利要求1或2所述的数据聚合方法,其特征在于,所述第二待聚合表包括待聚合字段和层级编码字段,所述对所述第一待聚合表中的级联字段值进行拆分,得到P个待聚合字段值,并将所述P个待聚合字段值分别存储在第二待聚合表中的P个单元格中,包括:
基于所述第一待聚合表中的级联字段值,确定所述级联字段值中的P个值和所述P个值各自的层级;
将所述P个值确定为所述P个待聚合字段值,并将所述P个值各自的层级确定为与所述P个待聚合字段值一一对应的P个层级编码字段值;
将所述P个待聚合字段值分别存储在所述待聚合字段所在列的P个单元格;
将所述P个层级编码字段值分别存储在所述层级编码字段所在列,且所述P个待聚合字段值与所述P个层级编码字段值在行维度一一对应。
8.一种数据聚合装置,其特征在于,包括:
聚合表获取模块,配置为获取第一待聚合表,所述第一待聚合表中存储有级联字段值,所述级联字段值以JSON格式存储在所述第一待聚合表中的一个单元格中;
拆分模块,配置为对所述第一待聚合表中的级联字段值进行拆分,得到P个待聚合字段值,并将所述P个待聚合字段值分别存储在第二待聚合表中的P个单元格中,P为大于1的正整数;
聚合条件获取模块,配置为接收第一聚合参数;
聚合模块,配置为使用以所述第一聚合参数作为输入的预设聚合规则,针对所述第二待聚合表中的所述P个待聚合字段值进行聚合处理,得到第一聚合结果,其中,所述第一聚合结果用于表征符合以所述第一聚合参数作为输入的所述预设聚合规则的待聚合字段值的数量。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有指令,当所述指令由电子设备的处理器执行时,使得所述电子设备能够执行上述权利要求1至7任一项所述的方法。
10.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储计算机可执行指令的存储器;
所述处理器,用于执行所述计算机可执行指令,以实现上述权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310373892.9A CN116340409A (zh) | 2023-04-06 | 2023-04-06 | 数据聚合方法和装置、计算机可读存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310373892.9A CN116340409A (zh) | 2023-04-06 | 2023-04-06 | 数据聚合方法和装置、计算机可读存储介质和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116340409A true CN116340409A (zh) | 2023-06-27 |
Family
ID=86885696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310373892.9A Pending CN116340409A (zh) | 2023-04-06 | 2023-04-06 | 数据聚合方法和装置、计算机可读存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116340409A (zh) |
-
2023
- 2023-04-06 CN CN202310373892.9A patent/CN116340409A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104391934B (zh) | 数据校验方法和装置 | |
CN104866426B (zh) | 软件测试综合控制方法及系统 | |
CN101021874B (zh) | 一种对查询sql请求进行优化的方法及装置 | |
KR101755365B1 (ko) | 레코드 포맷 정보의 관리 | |
US9037549B2 (en) | System and method for testing data at a data warehouse | |
CN109491989B (zh) | 数据处理方法及装置、电子设备、存储介质 | |
CN110597844B (zh) | 异构数据库数据统一访问方法及相关设备 | |
CN111679979B (zh) | 破坏性测试方法及装置 | |
GB2507095A (en) | Generating synthetic data from a decision tree model of a dataset | |
CN108140022B (zh) | 数据查询方法和数据库系统 | |
CN116483850A (zh) | 数据处理方法、装置、设备以及介质 | |
CN110660395B (zh) | 一种基于语音识别的安全报告生成方法和装置 | |
CN115617888A (zh) | 数据导入方法、装置、设备、存储介质及产品 | |
CN115114146A (zh) | 接口测试方法、装置、设备及存储介质 | |
CN113157671A (zh) | 一种数据监控方法及装置 | |
CN110728118B (zh) | 跨数据平台的数据处理方法、装置、设备及存储介质 | |
CN107844490A (zh) | 一种数据库的分库方法及装置 | |
CN116340409A (zh) | 数据聚合方法和装置、计算机可读存储介质和电子设备 | |
CN113901094B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN115525660A (zh) | 一种数据表的校验方法、装置、设备及介质 | |
CN115470861A (zh) | 数据处理方法、装置和电子设备 | |
CN105245380B (zh) | 一种消息的传播方式识别方法及装置 | |
CN114416776A (zh) | 一种数据自定义查询统计方法 | |
CN113377801A (zh) | 数据检验方法、装置、电子设备及计算机存储介质 | |
CN116010349B (zh) | 基于元数据的数据检核方法和装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |