CN113204602B - 数据处理方法、装置、设备及存储介质 - Google Patents
数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113204602B CN113204602B CN202110496553.0A CN202110496553A CN113204602B CN 113204602 B CN113204602 B CN 113204602B CN 202110496553 A CN202110496553 A CN 202110496553A CN 113204602 B CN113204602 B CN 113204602B
- Authority
- CN
- China
- Prior art keywords
- target
- data
- window
- field
- hash value
- 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.)
- Active
Links
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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据处理方法、装置、设备及存储介质,该方法包括:响应于窗口函数调用指令,获取窗口函数调用指令包含的目标字段;根据目标字段的哈希值确定逻辑表单;对逻辑表单进行窗口函数处理。本发明根据窗口函数调用指令携带的分组字段,计算分组字段的内容的哈希值,进而将不同内容的分组字段分配到不同的逻辑表单中,使得逻辑表单保存有具有相同哈希值的分组字段的内容。一个逻辑表单能够包含多个具有相同哈希值的分组字段的内容,因此无需为每个分组字段的内容分别建立物理窗口,进而更加合理的划分窗口,提高窗口函数处理效率。
Description
技术领域
本发明实施例涉及大数据的数据库数据处理技术,尤其涉及一种数据处理方法、装置、设备及存储介质。
背景技术
窗口函数也称为OLAP(online analytical processing)函数,用于对数据库数据进行实时分析处理。窗口函数是分析型业务中经常使用的数据库功能。窗口函数在保留原表格数据的基础上,将原表格数据的属性,如某个字段的排序等数据处理结果在窗口中展示。
目前,在对窗口函数进行响应时,根据窗口函数针对的分组字段中每一个种字段内容建立一个物理窗口。例如,分组字段中包含N种内容,则建立N个物理窗口,并为每个物理窗口配置计算资源。
然而,在大数据环境下,若单个窗口内部数据少,但窗口数量多,则会导致***内存资源占用量大。若单个窗口数据量大,会导致窗口处理过程较慢。可见,如何合理划分窗口,提高窗口函数处理效率,称为亟待解决的问题。
发明内容
本发明提供一种数据处理方法、装置、设备及存储介质,以实现合理划分逻辑窗口,提高窗口函数处理效率。
第一方面,本发明实施例提供了一种数据处理方法,包括:
响应于窗口函数调用指令,获取窗口函数调用指令包含的目标字段;
根据目标字段的哈希值确定逻辑表单;
对逻辑表单进行窗口函数处理。
第二方面,本发明实施例还提供了一种服务器,包括处理器和存储器,存储器用于存储指令,当指令执行时使得处理器执行以下操作:
响应于窗口函数调用指令,获取窗口函数调用指令包含的目标字段;
根据目标字段的哈希值确定逻辑表单;
对逻辑表单进行窗口函数处理。
第三方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行如本申请实施例所示的数据处理方法。
本发明提供的数据处理方法,响应于窗口函数调用指令,获取窗口函数调用指令包含的目标字段;根据目标字段的哈希值确定逻辑表单;对逻辑表单进行窗口函数处理。相对于目前为每个字段内容配置一个物理窗口,窗口分配不合理,窗口函数处理效率差,本发明根据窗口函数调用指令携带的目标字段,计算目标字段的内容的哈希值,进而将不同内容的目标字段分配到不同的逻辑表单中,使得逻辑表单保存有具有相同哈希值的目标字段的内容。一个逻辑表单能够包含多个具有相同哈希值的目标字段的内容,因此无需为每个目标字段的内容分别建立物理窗口,进而更加合理的划分窗口,提高窗口函数处理效率。
附图说明
图1是本发明实施例一中的数据处理方法的流程图;
图2是本发明实施例二中的数据处理方法的流程图;
图3是本发明实施例三中的数据处理装置的结构示意图;
图4是本发明实施例四中的服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
数据库建立于服务器中,客户端通过向服务器发送窗口函数调用指令,以请求服务器将执行窗口函数调用指令,对数据库中的原数据进行处理,客户端接收服务器反馈的处理结果。
客户端向服务器发送的窗口函数调用指令后,服务器根据窗口函数调用指令携带的分组字段,获取分组字段的内容。为每种分组字段设置一物理窗口表格,每个物理窗口表格中存储一种分组字段内容的数据,假设分组字段中包含N种内容,则分配N个物理窗口表格分别记载N种分组字段内容的数据,并为每个物理窗口表格分配***资源。
示例性的,假设窗口函数调用指令为select rank()over(partition by colororder by price)from items,其含义为从原数据(items)中选择(select)颜色字段为分组字段(partition by)进行分组,在分组中以价值字段为排序字段(order by)进行排序(rank),并输出(over)。原数据(items)为图1所示表格。
表1
序号ID | 颜色color | 价值price |
1 | 红色red | 10 |
2 | 绿色green | 11 |
3 | 蓝色blue | 6 |
4 | 红色red | 9 |
5 | 灰色grey | 9 |
6 | 蓝色blue | 7 |
7 | 红色red | 7 |
8 | 红色red | 10 |
9 | 粉色pink | 12 |
目前的方式为,分别为红色、绿色、蓝色、灰色和粉色建立物理窗口表格,然后在物理窗口表格中根据价值进行排序。在大数据场景下,实际数据的分布并不标准,且分组字段的内容种类繁杂。在执行窗口函数调用指令之前无法获知物理窗口表格的数量,因此在配置的物理窗口表格的缓存大小时,会有不确定性。当物理窗口表格数量过多时,占用资源会超出预期,导致物理窗口表格的数量无法响应。此外,每种分组字段的内容对应的记录数量差别很大。容易出现个别物理窗口表格因包含的记录数量过大,导致预先分配的缓存无法支持表格计算,降低窗口函数调用指令的响应速度。
基于此,本发明实施例提供了一种能够控制窗口数量的窗口函数调用指令响应方式,以实现合理划分逻辑窗口,提高窗口函数处理效率,具体实现方式如下所示。
实施例一
图1为本发明实施例一提供的数据处理方法的流程图,本实施例可适用于响应窗口函数对原数据进行处理的情况,该方法可以由服务器来执行,具体包括如下步骤:
步骤110、响应于窗口函数调用指令,获取窗口函数调用指令包含的目标字段。
可以通过结构化查询语言(Structured Query Language,SQL)对窗口函数调用指令进行解析,得到窗口函数调用指令包含的目标字段。
窗口函数调用指令可以基于原数据的目标字段进行排序、基于原数据的目标字段求取平均值、基于原数据的目标字段计算最大值、基于原数据的目标字段求取最小值等。进一步的,窗口函数调用指令可以基于对原数据的多个目标字段进行不同操作,例如对一个目标字段进行分组操作,基于该目标字段对另一个目标字段进行排序操作等。
窗口函数调用指令其作用在于进行原数据的分析,分析对象可以为原数据中的一个或多个目标字段。在上述实例中,通过配置分组字段(partition by)确定需要进行分组的字段,进而将原数据按照分组字段的内容进行分组,此时分组字段配置的字段可以为目标字段。在此基础上,通过配置排序字段(order by)确定需要各逻辑表单中作为排序依据的字段,此时分组字段配置的字段可以为另一个目标字段。
步骤120、根据目标字段的哈希值确定逻辑表单。
原数据为数据库中包含的数据,原数据包含目标字段。原数据由多条记录组成,每条记录可以由用行表示。每条记录包含多个字段的内容,该多个字段的内容中包括目标字段的内容。数据库表头包括多个字段,每个记录中包含字段的内容。
在上述实例中,表1的表头包括序号、颜色和价值三个字段。表1中每一行表示一条记录,记录包括字段的内容,例如第一条记录中,序号字段的内容为“1”、颜色字段的内容为“红色red”、价值字段的内容为“10”。
依次遍历原数据中每条记录的目标字段。根据目标字段的内容确定哈希值。将具有相同哈希值的记录作为一个逻辑表单。遍历原始数据后,得到的逻辑表单的数量小于等于哈希值数量。
步骤130、对逻辑表单进行窗口函数处理。
分别在每个逻辑表单中根据窗口函数调用指令进行窗口函数处理,得到各逻辑表单的处理结果。将处理结果进行合并后,得到窗口函数调用指令的处理结果。
可选的,可以通过服务器中的计算引擎对逻辑表单进行处理。可以由计算引擎对多个逻辑表单进行处理,无需为每个逻辑表单单独配置处理资源。
可选的,由于逻辑表单的数量是固定的,因此可以根据服务器中可分配的资源,为逻辑表单配置计算资源。使用分配的计算资源分别执行各逻辑表单的窗口函数处理。
本发明提供的数据处理方法,响应于窗口函数调用指令,获取窗口函数调用指令包含的目标字段;根据目标字段的哈希值确定逻辑表单;对逻辑表单进行窗口函数处理。相对于目前为每个字段内容配置一个物理窗口,窗口分配不合理,窗口函数处理效率差,本发明根据窗口函数调用指令携带的目标字段,计算目标字段的内容的哈希值,进而将不同内容的目标字段分配到不同的逻辑表单中,使得逻辑表单保存有具有相同哈希值的目标字段的内容。一个逻辑表单能够包含多个具有相同哈希值的目标字段的内容,因此无需为每个目标字段的内容分别建立物理窗口,进而更加合理的划分窗口,提高窗口函数处理效率。
实施例二
图2为本发明实施例二提供的数据处理方法的流程图,作为对上述实施例的进一步说明,包括:
步骤210、响应于窗口函数调用指令,获取窗口函数调用指令包含的目标字段。
在本申请实施例中,目标字段可以为分组字段。
步骤220、根据原数据和分组字段获取目标分组数据,目标分组数据为原数据中任意一个记录的分组字段的内容。
原数据由多条记录组成,根据原数据逐条读取记录。获取记录中分组字段的内容,即目标分组数据。在上述实例中,若分组字段为颜色字段,目标分组数据为记录中颜色字段的内容。例如序号为“1”的记录,其颜色字段的内容,即目标分组数据为“红色red”。序号为“2”的记录,其颜色字段的内容,即目标分组数据为“绿色green”。
步骤230、根据哈希函数确定目标分组数据的哈希值。
步骤220获取的目标分组数据作为哈希函数的入参,使用哈希函数计算目标分组数据的哈希值。哈希函数用于得到入参对应的哈希值。
进一步的,在步骤230、根据哈希函数确定目标分组数据的哈希值之前,还包括:根据预设的逻辑表单数量确定哈希函数的哈希值;配置目标分组数据与哈希值的映射关系。相应的,步骤230、根据哈希函数确定目标分组数据的哈希值,可通过下述方式实施:根据映射关系确定目标分组数据的哈希值。
在步骤230之前,预先获取目标字段包含的目标分组数据。在原数据中同一种目标分组数据可以多次出现。分别为每种目标分组数据配置哈希值。可以根据预设的逻辑表单数量确定哈希函数的哈希值。预设的逻辑表单数量可以为用户预期的逻辑表单数量。预设的逻辑表单数量小于目标分组数据的类型数量。为每中目标分子数据配置一个哈希值,建立目标分组数据与哈希值的映射关系,并存储该映射关系。在执行步骤230时,根据存储的映射关系确定目标分组数据所映射的哈希值。
在上述实例中,可以通过下述方式配置哈希函数:
myhash(‘红色red’)=1
myhash(‘绿色green’)=2
myhash(‘蓝色blue’)=3
myhash(‘灰色grey’)=1
myhash(‘粉色pink’)=2
通过上述配置,得到目标分组数据与哈希值的映射关系。若目标分组数据为“‘红色red”,根据上述哈希函数得到的哈希值为“1”。以此类推,可得到每个目标分组数据的哈希值。
步骤240、根据哈希值确定目标分组数据所属的目标逻辑表单,目标逻辑表单包括具有相同的哈希值的至少一个分组数据。
若已建立目标逻辑表单,则将目标分组数据添加到目标逻辑表单中。根据目标逻辑表单的表头,从原数据中查找与目标分组数据属于同一记录的相应字段的内容,该相应字段为目标逻辑表单包含的字段。
在目标逻辑表单中,若存在不同数值的目标分组数据,则将相同种类的目标分组数据进行聚类,使得相同的目标分组数据连续排列在目标表单中。
若未建立目标逻辑表单,则根据窗口函数调用指令获取处理结果的表头,根据该表头建立目标逻辑表单。表头包括窗口函数调用指令所要分析的字段。
在上述实例中,依次读取原数据,在确定读取的每个目标分组数据所述的目标逻辑表单后,将目标分组数据添加到目标逻辑表单中。目标逻辑表单中同一种目标分组数据连续排布。表2为上述实例中目标分组数据的哈希值为“1”的目标逻辑表单。表3为上述实例中目标分组数据的哈希值为“2”的目标逻辑表单。表4为上述实例中目标分组数据的哈希值为“3”的目标逻辑表单。
表2
序号ID | 颜色color | 价值price |
1 | 红色red | 10 |
4 | 红色red | 9 |
7 | 红色red | 7 |
8 | 红色red | 10 |
5 | 灰色grey | 9 |
表3
序号ID | 颜色color | 价值price |
3 | 蓝色blue | 6 |
6 | 蓝色blue | 7 |
表4
序号ID | 颜色color | 价值price |
2 | 绿色green | 11 |
9 | 粉色pink | 12 |
步骤250、根据窗口函数调用指令携带的窗口指令类型和目标逻辑表单得到窗口处理结果。
可以通过结构化查询语言(Structured Query Language,SQL)对窗口函数调用指令进行解析,得到窗口函数调用指令包含的窗口指令类型。
本申请实施例可适用于通过字段进行分析的窗口函数调用指令。窗口函数调用指令的类型包括基于排序结果的第一类型和基于提取数值的第二类型。
第一类型包括求排序结果指令(rank)或排序指令(rownumber)。排序指令(rownumber)用于基于目标字段进行排序,用于为查询出的每一行记录生成一个序号,依次排序且不会重复。排序结果指令(rank)用于返回结果集的分区内每行的排名。与排序指令(rownumber)不同的是,排序结果指令(rank)考虑了排序字段值相同的情况。第二类型包括求和指令(sum)、求平均数指令(avg)、求最小值指令(min)或求最大值指令(max)。
在一种实现方式中,窗口函数调用指令携带的窗口指令类型为第一类型。步骤250、根据窗口函数调用指令携带的窗口指令类型和目标逻辑表单得到窗口处理结果,可通过下述方式实施:
若窗口函数调用指令携带的窗口指令类型为第一类型,获取窗口函数调用指令包含的排序字段。根据原数据、目标分组数据和排序字段,确定目标排序数据,目标排序数据为原数据中目标分组数据记录的排序字段的内容。在目标逻辑表单中,根据目标排序数据和目标分组数据进行排序。
第一类型可以为排序类型。根据窗口函数调用指令获取排序字段,进而根据排序字段的内容对目标逻辑表单中的数据进行排序。
目标逻辑表单中根据目标分组数据进行分组,每个分组中目标排序数据未排序。在每个分组中,对原数据中与目标分组数据同行的目标排序数据进行排序。排序方式可以为升序或降序。
可选的,根据目标排序数据和目标分组数据进行排序可通过下述方式实施:在目标逻辑表单中,根据目标分组数据对记录进行分组,得到记录分组,使每组记录分组的目标排序数据相同;在每个记录分组中,根据目标排序数据对记录顺序进行排序。
根据相同的目标分组数据得到记录分组。在记录分组中根据目标排序数据确定记录分组中各记录的排列顺序。
在上述实例中,表2中包含四个目标排序数据为红色的记录,组成一个记录分组。在该记录分组中,按照目标排序数据(即价值price字段的内容)对分组内的记录顺序进行排序,得到如表5所示的分组排序结果。
表5
序号ID | 颜色color | 价值price |
1 | 红色red | 10 |
8 | 红色red | 10 |
4 | 红色red | 9 |
7 | 红色red | 7 |
以此类推,在每个记录分组中根据目标排序数据进行排序,得到每个记录分组的排序结果。之后将全部分组进行合并,并以目标分组数据的数值为依据进行记录分组的展示顺序排序,得到窗口函数调用指令的窗口处理结果。
示例性的,由于上述实例中窗口函数调用指令的类型为rank,因此在排序的基础上,根据目标排序数据的数值,得到目标排序数据在记录分组中的数值排序标识,在得到的结果中,通过rank字段进行表示,得到如表6所示的出列结果。
表6
数值排序标识rank | 序号ID | 颜色color | 价值price |
1 | 6 | 蓝色blue | 7 |
2 | 3 | 蓝色blue | 6 |
1 | 2 | 绿色green | 11 |
1 | 5 | 灰色grey | 9 |
1 | 9 | 粉色pink | 12 |
1 | 1 | 红色red | 10 |
1 | 8 | 红色red | 10 |
3 | 4 | 红色red | 9 |
4 | 7 | 红色red | 7 |
在另一种实现方式中,窗口函数调用指令携带的窗口指令类型为第二类型。步骤250、根据窗口函数调用指令携带的窗口指令类型和目标逻辑表单得到窗口处理结果,可通过下述方式实施:
若窗口函数调用指令携带的窗口指令类型为第二类型,分别获取多个目标逻辑表单的统计结果;根据目标统计结果和第二类型确定窗口处理结果。
第二类型可以为计算原数据中某个字段的和、平均数、最小值或最大值。
若窗口函数调用指令携带的窗口指令类型为第二类型,则分别在每个目标逻辑表单中,按照第二类型计算统计结果。然后,对多个目标逻辑表单得到的统计结果进行统计,得到窗口处理结果。
进一步,窗口函数调用指令携带的窗口指令类型还包括限制窗口大小的参数。该参数用于表示处理时的窗口大小。例如基于原数据中的某一行记录的前N行和/或后N行的数据进行上述第一类型或第二类型的处理。指令可以为1)unbounded preceding andcurrent row:从当前窗口开始到当前行、2)N preceding and current row:当前行和前面N行、3)current row and M following:当前行和后面M行或4)N preceding and Mfollowing:当前行、前面N行和后面M行。可以参照上述方式对窗口内的数据进行处理。
本发明实施例提供的数据处理方法,能够对包含第一类型、第二类型以及第三类型窗口函数类型的窗口函数调用指令进行响应,实现在大数据场景下,由计算集群快速的对原数据进行处理,提高窗口函数的处理效率。
实施例三
图3为本发明实施例三提供的数据处理装置的结构示意图,本实施例可适用于响应窗口函数对原数据进行处理的情况,该装置可以由服务器来执行,具体包括:字段获取模块310、逻辑表单确定模块320和窗口函数处理模块330。
字段获取模块310,用于响应于窗口函数调用指令,获取窗口函数调用指令包含的目标字段;
逻辑表单确定模块320,用于根据目标字段的哈希值确定逻辑表单;
窗口函数处理模块330,用于对逻辑表单进行窗口函数处理。
在上述实施例的基础上,逻辑表单确定模块320用于:
目标字段为分组字段,根据原数据和分组字段获取目标分组数据,目标分组数据为原数据中任意一个记录的分组字段的内容;
根据哈希函数确定目标分组数据的哈希值;
根据哈希值确定目标分组数据所属的目标逻辑表单,目标逻辑表单包括具有相同的哈希值的至少一个分组数据;
相应的,窗口函数处理模块330用于:
根据窗口函数调用指令携带的窗口指令类型和目标逻辑表单得到窗口处理结果。
在上述实施例的基础上,窗口函数处理模块330用于:
若窗口函数调用指令携带的窗口指令类型为第一类型,获取窗口函数调用指令包含的排序字段;
根据原数据、目标分组数据和排序字段,确定目标排序数据,目标排序数据为原数据中目标分组数据记录的排序字段的内容;
在目标逻辑表单中,根据目标排序数据和目标分组数据进行排序。
在上述实施例的基础上,窗口函数处理模块330用于::
在目标逻辑表单中,根据目标分组数据对记录进行分组,得到记录分组,使每组记录分组的目标排序数据相同;
在每个记录分组中,根据目标排序数据对记录顺序进行排序。
在上述实施例的基础上,还包括哈希函数配置模块。哈希函数配置模块用于:
根据预设的逻辑表单数量确定哈希函数的哈希值;
配置目标分组数据与哈希值的映射关系;
相应的,窗口函数处理模块330用于:
根据映射关系确定目标分组数据的哈希值。
在上述实施例的基础上,窗口函数处理模块330用于:
若窗口函数调用指令携带的窗口指令类型为第二类型,分别获取多个目标逻辑表单的统计结果;
根据目标统计结果和第二类型确定窗口处理结果。
本发明提供的数据处理装置,字段获取模块310响应窗口函数调用指令,获取窗口函数调用指令包含的目标字段;逻辑表单确定模块320根据目标字段的哈希值确定逻辑表单;窗口函数处理模块330对逻辑表单进行窗口函数处理。相对于目前为每个字段内容配置一个物理窗口,窗口分配不合理,窗口函数处理效率差,本发明根据窗口函数调用指令携带的目标字段,计算目标字段的内容的哈希值,进而将不同内容的目标字段分配到不同的逻辑表单中,使得逻辑表单保存有具有相同哈希值的目标字段的内容。一个逻辑表单能够包含多个具有相同哈希值的目标字段的内容,因此无需为每个目标字段的内容分别建立物理窗口,进而更加合理的划分窗口,提高窗口函数处理效率。
本发明实施例所提供的数据处理装置可执行本发明任意实施例所提供的数据处理方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4为本发明实施例四提供的一种服务器的结构示意图,如图4所示,该服务器包括处理器40、存储器41、输入装置42和输出装置44;服务器中处理器40的数量可以是一个或多个,图4中以一个处理器40为例;服务器中的处理器40、存储器41、输入装置42和输出装置44可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的云计算的本地存储的迁移方法对应的程序指令/模块(例如,数据处理装置中的字段获取模块410、逻辑表单确定模块420和窗口函数处理模块440)。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的云计算的本地存储的迁移方法。
存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置42可用于接收输入的数字或字符信息,以及产生与服务器的用户设置以及功能控制有关的键信号输入。输出装置44可包括显示屏等显示设备。
当指令执行时使得处理器40执行以下操作:
响应于窗口函数调用指令,获取窗口函数调用指令包含的目标字段;
根据目标字段的哈希值确定逻辑表单;
对逻辑表单进行窗口函数处理。
在上述实施例的基础上,处理器被设置为通过以下方式确定逻辑表单:
目标字段为分组字段,根据原数据和分组字段获取目标分组数据,目标分组数据为原数据中任意一个记录的分组字段的内容;
根据哈希函数确定目标分组数据的哈希值;
根据哈希值确定目标分组数据所属的目标逻辑表单,目标逻辑表单包括具有相同的哈希值的至少一个分组数据;
相应的,处理器被设置为通过以下方式对逻辑表单进行窗口函数处理:
根据窗口函数调用指令携带的窗口指令类型和目标逻辑表单得到窗口处理结果。
在上述实施例的基础上,处理器被设置为通过以下方式得到窗口处理结果:
若窗口函数调用指令携带的窗口指令类型为第一类型,获取窗口函数调用指令包含的排序字段;
根据原数据、目标分组数据和排序字段,确定目标排序数据,目标排序数据为原数据中目标分组数据记录的排序字段的内容;
在目标逻辑表单中,根据目标排序数据和目标分组数据进行排序。
在上述实施例的基础上,处理器被设置为通过以下方式进行排序:在目标逻辑表单中,根据目标分组数据对记录进行分组,得到记录分组,使每组记录分组的目标排序数据相同;
在每个记录分组中,根据目标排序数据对记录顺序进行排序。
在上述实施例的基础上,处理器被设置为通过以下方式进行哈希函数设置:根据预设的逻辑表单数量确定哈希函数的哈希值;
配置目标分组数据与哈希值的映射关系;
相应的,处理器被设置为通过以下方式进行确定目标分组数据的哈希值:
根据映射关系确定目标分组数据的哈希值。
在上述实施例的基础上,处理器被设置为通过以下方式得到窗口处理结果:若窗口函数调用指令携带的窗口指令类型为第二类型,分别获取多个目标逻辑表单的统计结果;
根据目标统计结果和第二类型确定窗口处理结果。
实施例五
本发明实施例五提供了一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行本发明任一实施例所提供的数据处理方法,该方法包括:
响应于窗口函数调用指令,获取窗口函数调用指令包含的目标字段;
根据目标字段的哈希值确定逻辑表单;
对逻辑表单进行窗口函数处理。
在上述实施例的基础上,根据目标字段的哈希值确定逻辑表单,包括:
目标字段为分组字段,根据原数据和分组字段获取目标分组数据,目标分组数据为原数据中任意一个记录的分组字段的内容;
根据哈希函数确定目标分组数据的哈希值;
根据哈希值确定目标分组数据所属的目标逻辑表单,目标逻辑表单包括具有相同的哈希值的至少一个分组数据;
相应的,对逻辑表单进行窗口函数处理,包括:
根据窗口函数调用指令携带的窗口指令类型和目标逻辑表单得到窗口处理结果。
在上述实施例的基础上,根据窗口函数调用指令携带的窗口指令类型和目标逻辑表单得到窗口处理结果,包括:
若窗口函数调用指令携带的窗口指令类型为第一类型,获取窗口函数调用指令包含的排序字段;
根据原数据、目标分组数据和排序字段,确定目标排序数据,目标排序数据为原数据中目标分组数据记录的排序字段的内容;
在目标逻辑表单中,根据目标排序数据和目标分组数据进行排序。
在上述实施例的基础上,根据目标排序数据和目标分组数据进行排序,包括:
在目标逻辑表单中,根据目标分组数据对记录进行分组,得到记录分组,使每组记录分组的目标排序数据相同;
在每个记录分组中,根据目标排序数据对记录顺序进行排序。
在上述实施例的基础上,在根据哈希函数确定目标分组数据的哈希值之前,还包括:
根据预设的逻辑表单数量确定哈希函数的哈希值;
配置目标分组数据与哈希值的映射关系;
相应的,根据哈希函数确定目标分组数据的哈希值,包括:
根据映射关系确定目标分组数据的哈希值。
在上述实施例的基础上,根据窗口函数调用指令携带的窗口指令类型和目标逻辑表单得到窗口处理结果,包括:
若窗口函数调用指令携带的窗口指令类型为第二类型,分别获取多个目标逻辑表单的统计结果;
根据目标统计结果和第二类型确定窗口处理结果。当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的数据处理方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
值得注意的是,上述云计算的本地存储的迁移装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (8)
1.一种数据处理方法,其特征在于,包括:
响应于窗口函数调用指令,获取所述窗口函数调用指令包含的目标字段;
根据所述目标字段的哈希值确定逻辑表单;
对所述逻辑表单进行窗口函数处理;
所述目标字段为分组字段,所述根据所述目标字段的哈希值确定逻辑表单,包括:
根据原数据和所述分组字段获取目标分组数据,所述目标分组数据为所述原数据中任意一个记录的所述分组字段的内容;
根据哈希函数确定所述目标分组数据的哈希值;
根据所述哈希值确定所述目标分组数据所属的目标逻辑表单,所述目标逻辑表单包括具有相同的哈希值的至少一个分组数据;
相应的,所述对所述逻辑表单进行窗口函数处理,包括:
根据所述窗口函数调用指令携带的窗口指令类型和所述目标逻辑表单得到窗口处理结果;
所述根据哈希函数确定所述目标分组数据的哈希值之前,还包括:
根据预设的逻辑表单数量确定哈希函数的哈希值,其中,所述预设的逻辑表单数量小于所述目标分组数据的类型数量。
2.根据权利要求1所述的方法,其特征在于,根据所述窗口函数调用指令携带的窗口指令类型和所述目标逻辑表单得到窗口处理结果,包括:
若所述窗口函数调用指令携带的窗口指令类型为第一类型,获取所述窗口函数调用指令包含的排序字段;
根据原数据、所述目标分组数据和所述排序字段,确定目标排序数据,所述目标排序数据为所述原数据中所述目标分组数据记录的排序字段的内容;
在所述目标逻辑表单中,根据所述目标排序数据和所述目标分组数据进行排序。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标排序数据和所述目标分组数据进行排序,包括:
在所述目标逻辑表单中,根据所述目标分组数据对记录进行分组,得到记录分组,使每组记录分组的目标排序数据相同;
在每个记录分组中,根据目标排序数据对记录顺序进行排序。
4.根据权利要求1所述的方法,其特征在于,在根据哈希函数确定所述目标分组数据的哈希值之前,还包括:
配置目标分组数据与所述哈希值的映射关系;
相应的,所述根据哈希函数确定所述目标分组数据的哈希值,包括:
根据所述映射关系确定所述目标分组数据的哈希值。
5.根据权利要求1所述的方法,其特征在于,所述根据所述窗口函数调用指令携带的窗口指令类型和所述目标逻辑表单得到窗口处理结果,包括:
若所述窗口函数调用指令携带的窗口指令类型为第二类型,分别获取多个目标逻辑表单的统计结果;
根据目标统计结果和所述第二类型确定窗口处理结果。
6.一种服务器,其特征在于,包括处理器和存储器,所述存储器用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
响应于窗口函数调用指令,获取所述窗口函数调用指令包含的目标字段;
根据所述目标字段的哈希值确定逻辑表单;
对所述逻辑表单进行窗口函数处理;
所述目标字段为分组字段,所述根据所述目标字段的哈希值确定逻辑表单,包括:
根据原数据和所述分组字段获取目标分组数据,所述目标分组数据为所述原数据中任意一个记录的所述分组字段的内容;
根据哈希函数确定所述目标分组数据的哈希值;
根据所述哈希值确定所述目标分组数据所属的目标逻辑表单,所述目标逻辑表单包括具有相同的哈希值的至少一个分组数据;
相应的,所述对所述逻辑表单进行窗口函数处理,包括:
根据所述窗口函数调用指令携带的窗口指令类型和所述目标逻辑表单得到窗口处理结果;
所述根据哈希函数确定所述目标分组数据的哈希值之前,还包括:
根据预设的逻辑表单数量确定哈希函数的哈希值,其中,所述预设的逻辑表单数量小于所述目标分组数据的类型数量。
7.根据权利要求6所述的服务器,其特征在于,所述处理器被设置为通过以下方式得到窗口处理结果:
若所述窗口函数调用指令携带的窗口指令类型为第一类型,获取所述窗口函数调用指令包含的排序字段;
根据原数据、所述目标分组数据和所述排序字段,确定目标排序数据,所述目标排序数据为所述原数据中所述目标分组数据记录的排序字段的内容;
在所述目标逻辑表单中,根据所述目标排序数据和所述目标分组数据进行排序。
8.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-5中任一所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110496553.0A CN113204602B (zh) | 2021-05-07 | 2021-05-07 | 数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110496553.0A CN113204602B (zh) | 2021-05-07 | 2021-05-07 | 数据处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113204602A CN113204602A (zh) | 2021-08-03 |
CN113204602B true CN113204602B (zh) | 2023-08-01 |
Family
ID=77030211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110496553.0A Active CN113204602B (zh) | 2021-05-07 | 2021-05-07 | 数据处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113204602B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102171680A (zh) * | 2008-10-05 | 2011-08-31 | 微软公司 | 用于基于列的数据编码结构的查询的高效大规模过滤和/或排序 |
CN103294831A (zh) * | 2013-06-27 | 2013-09-11 | 中国人民大学 | 列存储数据库中基于多维数组的分组聚集计算方法 |
CN103605756A (zh) * | 2013-11-22 | 2014-02-26 | 北京国双科技有限公司 | 用于联机分析处理的数据处理方法和装置 |
CN105930388A (zh) * | 2016-04-14 | 2016-09-07 | 中国人民大学 | 一种基于函数依赖关系的olap分组聚集方法 |
CN107992516A (zh) * | 2017-10-27 | 2018-05-04 | 平安科技(深圳)有限公司 | 电子装置、数据查询的方法及存储介质 |
CN108376169A (zh) * | 2018-02-26 | 2018-08-07 | 众安信息技术服务有限公司 | 一种用于联机分析处理的数据处理方法和装置 |
CN109299133A (zh) * | 2017-07-24 | 2019-02-01 | 迅讯科技(北京)有限公司 | 数据查询方法、计算机***及非暂时性计算机可读介质 |
CN110781183A (zh) * | 2019-09-10 | 2020-02-11 | 中国平安财产保险股份有限公司 | Hive数据库中增量数据的处理方法、装置以及计算机设备 |
CN110895479A (zh) * | 2018-09-13 | 2020-03-20 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和设备 |
WO2020233146A1 (zh) * | 2019-05-23 | 2020-11-26 | 创新先进技术有限公司 | 数据操作记录的存储方法、***、装置及设备 |
CN112035571A (zh) * | 2020-08-19 | 2020-12-04 | 深圳乐信软件技术有限公司 | 一种数据同步方法、装置、设备和存储介质 |
CN112307062A (zh) * | 2020-09-18 | 2021-02-02 | 苏宁云计算有限公司 | 数据库聚合查询方法、装置及*** |
-
2021
- 2021-05-07 CN CN202110496553.0A patent/CN113204602B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102171680A (zh) * | 2008-10-05 | 2011-08-31 | 微软公司 | 用于基于列的数据编码结构的查询的高效大规模过滤和/或排序 |
CN103294831A (zh) * | 2013-06-27 | 2013-09-11 | 中国人民大学 | 列存储数据库中基于多维数组的分组聚集计算方法 |
CN103605756A (zh) * | 2013-11-22 | 2014-02-26 | 北京国双科技有限公司 | 用于联机分析处理的数据处理方法和装置 |
CN105930388A (zh) * | 2016-04-14 | 2016-09-07 | 中国人民大学 | 一种基于函数依赖关系的olap分组聚集方法 |
CN109299133A (zh) * | 2017-07-24 | 2019-02-01 | 迅讯科技(北京)有限公司 | 数据查询方法、计算机***及非暂时性计算机可读介质 |
CN107992516A (zh) * | 2017-10-27 | 2018-05-04 | 平安科技(深圳)有限公司 | 电子装置、数据查询的方法及存储介质 |
CN108376169A (zh) * | 2018-02-26 | 2018-08-07 | 众安信息技术服务有限公司 | 一种用于联机分析处理的数据处理方法和装置 |
CN110895479A (zh) * | 2018-09-13 | 2020-03-20 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和设备 |
WO2020233146A1 (zh) * | 2019-05-23 | 2020-11-26 | 创新先进技术有限公司 | 数据操作记录的存储方法、***、装置及设备 |
CN110781183A (zh) * | 2019-09-10 | 2020-02-11 | 中国平安财产保险股份有限公司 | Hive数据库中增量数据的处理方法、装置以及计算机设备 |
CN112035571A (zh) * | 2020-08-19 | 2020-12-04 | 深圳乐信软件技术有限公司 | 一种数据同步方法、装置、设备和存储介质 |
CN112307062A (zh) * | 2020-09-18 | 2021-02-02 | 苏宁云计算有限公司 | 数据库聚合查询方法、装置及*** |
Non-Patent Citations (2)
Title |
---|
Hive的利器:强大而实用的开窗函数;大数据分享与学***台》;全文 * |
IM~2:一种改进的MIN/MAX窗口函数优化技术;宋光旋;赵大鹏;王晓玲;;华东师范大学学报(自然科学版)(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113204602A (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9633104B2 (en) | Methods and systems to operate on group-by sets with high cardinality | |
CN111913955A (zh) | 数据的排序处理装置、方法和存储介质 | |
CN109815283B (zh) | 一种异构数据源可视化查询方法 | |
CN108733790B (zh) | 数据排序方法、装置、服务器和存储介质 | |
KR101858715B1 (ko) | 서비스자원 관리시스템 및 그 방법 | |
CN110955704A (zh) | 一种数据管理方法、装置、设备及存储介质 | |
CN115438087B (zh) | 基于缓存库的数据查询方法、装置、存储介质和设备 | |
CN111158828A (zh) | 应用程序app的用户界面确定方法及装置、存储介质 | |
CN114237908A (zh) | 一种面向边缘计算的资源编排优化方法及*** | |
WO2022143685A1 (zh) | 一种使用网络设备进行数据查询的***、方法、及装置 | |
CN113766047B (zh) | 一种任务分组方法、装置、计算机设备及存储介质 | |
CN113672375A (zh) | 资源分配预测方法、装置、设备及存储介质 | |
JP5108011B2 (ja) | バス接続されたコンシューマとプロデューサとの間でのメッセージ・フローを削減するためのシステム、方法、およびコンピュータ・プログラム | |
WO2021147815A1 (zh) | 一种数据计算的方法及相关设备 | |
CN113204602B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN114860460B (zh) | 一种数据库加速的方法、装置、计算机设备 | |
CN110909072B (zh) | 一种数据表建立方法、装置及设备 | |
CN111338778A (zh) | 任务调度方法、装置、存储介质及计算机设备 | |
CN110929207B (zh) | 数据处理方法、装置和计算机可读存储介质 | |
CN110309177B (zh) | 一种数据处理的方法以及相关装置 | |
CN111782688A (zh) | 基于大数据分析的请求处理方法、装置、设备及存储介质 | |
CN112905351B (zh) | 一种gpu和cpu负载调度方法、装置、设备和介质 | |
CN118170805B (zh) | 信息存储方法、装置、设备及存储介质 | |
CN117573875B (zh) | 一种同名文件聚类算法优化方法及装置 | |
CN117520332A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |