CN106933933A - 数据表信息的处理方法及装置 - Google Patents
数据表信息的处理方法及装置 Download PDFInfo
- Publication number
- CN106933933A CN106933933A CN201511034154.3A CN201511034154A CN106933933A CN 106933933 A CN106933933 A CN 106933933A CN 201511034154 A CN201511034154 A CN 201511034154A CN 106933933 A CN106933933 A CN 106933933A
- Authority
- CN
- China
- Prior art keywords
- data
- field
- connection
- tables
- inquiry
- 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.)
- Granted
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据表信息的处理方法及装置。其中,该方法包括:在当前连接的两个数据表的数据量大于预设数据量的情况下,获取两个数据表之间的目标连接字段;获取两个数据表的第一表中目标连接字段对应的数据列;将数据列与两个数据表的第二表进行表连接,得到第三表;利用数据列,将第一表和第三表进行表连接,得到第一表和第二表的连接结果。本申请解决了现有技术中大数据量表在进行表连接时资源开销大的技术问题。
Description
技术领域
本申请涉及表连接领域,具体而言,涉及一种数据表信息的处理方法及装置。
背景技术
在任何数据仓库领域,都有可能面临大数据量表做连接的场景,如会话session和浏览页数page view表的连接,其开销是很大的,表连接的速度较慢,影响了对大数据量数据表的处理效率。
例如,在现有技术中,当要将大表A与大表B做连接时,需要先选取大表A里的(a1,a2,a3),并计算出相应汇总字段a4的汇总数据,如Sum(a4)。
现有方案中的用以实现表连接的程序可以为:
Select A.a1,A.a2,A.a3,sum(a4)as total Sum_a4
From A inner join B on A.join Column=B.join Column
Group by a1,a2,a3,
即先将大表A与大表B中连接字段的数据列相同的数据进行表连接,然后从表连接后的结果集中选取待连接的大表A中的a1列、a2列、以及a3列,将a4列进行加和计算,并将该加和的结果所在的列命名为total Sum_a4列,以a1列、a2列、以及a3列进行分组。
在现有技术中,生成的执行计划会将A表里的join Column进行哈希hash,同时带上相应的a1,a2,a3字段,这样会导致内存开销极大。
上述的现有技术中对大数据量表信息处理的方案,开销比较大,且容易发生内存溢出等错误,导致查询失败。
针对上述的现有技术中大数据量表在进行表连接时资源开销大的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据表信息的处理方法及装置,以至少解决现有技术中大数据量表在进行表连接时资源开销大的技术问题。
根据本申请实施例的一个方面,提供了一种数据表信息的处理方法,该方法包括:在当前连接的两个数据表的数据量大于预设数据量的情况下,获取所述两个数据表之间的目标连接字段;获取所述两个数据表的第一表中所述目标连接字段对应的数据列;将所述数据列与所述两个数据表的第二表进行表连接,得到第三表;利用所述数据列,将所述第一表和所述第三表进行表连接,得到所述第一表和所述第二表的连接结果。
进一步地,在获取所述两个数据表之间的目标连接字段之前,所述方法还包括:根据接收到的查询请求获取所述两个数据表,其中,所述查询请求中携带有查询字段和汇总字段;在得到所述第一表和所述第二表的连接结果之后,所述方法还包括:按照所述查询字段和所述汇总字段对所述连接结果进行汇总,以得到所述查询请求的查询结果。
进一步地,将所述数据列与所述两个数据表的第二表进行表连接包括:判断所述查询字段的数量是否大于所述目标连接字段的数量;若所述查询字段的数量大于所述目标连接字段的数量,则将所述数据列与所述两个数据表的第二表进行表连接。
进一步地,按照所述查询字段和所述汇总字段对所述连接结果进行汇总,以得到所述查询请求的查询结果包括:按照所述查询字段对所述连接结果进行分组,得到多组信息集合;获取每组信息集合中所述汇总字段的属性值之和,得到所述查询结果。
进一步地,所述汇总字段和所述查询字段具有关联关系,所述关联关系包括一一对应的关系、或者函数关系,其中,所述函数关系用于表示所述查询字段的属性值随所述汇总字段的属性值的变化而变化;所述汇总字段作为所述目标连接字段。
进一步地,将所述数据列与所述两个数据表的第二表进行表连接包括:按照预定表连接方式连接所述数据列和所述第二表,其中,所述预定表连接方式包括内连接方式或外连接方式。
根据本申请实施例的另一方面,还提供了一种数据表信息的处理装置,该装置包括:第一获取单元,用于在当前连接的两个数据表的数据量大于预设数据量的情况下,获取所述两个数据表之间的目标连接字段;第二获取单元,用于获取所述两个数据表的第一表中所述目标连接字段对应的数据列;第一表连接单元,用于将所述数据列与所述两个数据表的第二表进行表连接,得到第三表;第二表连接单元,用于利用所述数据列,将所述第一表和所述第三表进行表连接,得到所述第一表和所述第二表的连接结果。
进一步地,所述装置还包括:接收单元,用于在获取所述两个数据表之间的目标连接字段之前,根据接收到的查询请求获取所述两个数据表,其中,所述查询请求中携带有查询字段和汇总字段;汇总单元,用于在得到所述第一表和所述第二表的连接结果之后,按照所述查询字段和所述汇总字段对所述连接结果进行汇总,以得到所述查询请求的查询结果。
进一步地,所述第一表连接单元包括:判断模块,用于判断所述查询字段的数量是否大于所述目标连接字段的数量;表连接模块,用于若所述查询字段的数量大于所述目标连接字段的数量,则将所述数据列与所述两个数据表的第二表进行表连接。
进一步地,所述汇总单元包括:分组模块,用于按照所述查询字段对所述连接结果进行分组,得到多组信息集合;获取模块,用于获取每组信息集合中所述汇总字段的属性值之和,得到所述查询结果。
进一步地,所述汇总字段和所述查询字段具有关联关系,所述关联关系包括一一对应的关系、或者函数关系,其中,所述函数关系用于表示所述查询字段的属性值随所述汇总字段的属性值的变化而变化;所述汇总字段作为所述目标连接字段。
进一步地,所述第一表连接单元包括:连接模块,用于按照预定表连接方式连接所述数据列和所述第二表,其中,所述预定表连接方式包括内连接方式或外连接方式。
在本申请实施例中,通过采用在当前连接的两个数据表的数据量大于预设数据量的情况下,获取目标连接字段;再获取两个数据表的第一表中目标连接字段对应的数据列;将数据列与两个数据表的第二表进行表连接,得到第三表;利用数据列,将第一表和第三表进行表连接,得到第一表和第二表的连接结果的方式,通过先将第一表过滤后,将第一表中保留的目标连接字段与第二表进行表连接,得到第三表,然后将第三表与第一表二次表连接,达到了减少大数据量表连接时所需处理的数据量的目的,从而实现了减少具有大数据量的表在进行表连接时的开销的技术效果,进而解决了现有技术中大数据量表在进行表连接时开销大的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种数据表信息的处理方法的流程图;以及
图2是根据本申请实施例的一种数据表信息的处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本申请实施例,提供了一种数据表信息的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例的一种数据表信息的处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,在当前连接的两个数据表的数据量大于预设数据量的情况下,获取两个数据表之间的目标连接字段。
步骤S104,获取两个数据表的第一表中目标连接字段对应的数据列。
步骤S106,将数据列与两个数据表的第二表进行表连接,得到第三表。
步骤S108,利用数据列,将第一表和第三表进行表连接,得到第一表和第二表的连接结果。
采用本申请实施例,通过采用在当前连接的两个数据表的数据量大于预设数据量的情况下,获取目标连接字段;再获取两个数据表的第一表中目标连接字段对应的数据列;将数据列与两个数据表的第二表进行表连接,得到第三表;利用数据列,将第一表和第三表进行表连接,得到第一表和第二表的连接结果的方式,通过先将第一表过滤后,将第一表中保留的目标连接字段与第二表进行表连接,得到第三表,然后将第三表与第一表二次表连接,达到了减少大数据量表连接时所需处理的数据量的目的,从而实现了减少具有大数据量的表在进行表连接时的开销的技术效果,进而解决了现有技术中大数据量表在进行表连接时开销大的技术问题。
上述实施例中的当前连接的两个数据表的数据量大于预设数据量的情况下,则可以将这两个数据表均称之为大表;该两个数据表中均存有目标连接字段,该目标连接字段用于连接两个数据表,例如,两个数据表中都有订单字段,则可以将该订单字段作为目标连接字段进行表连接,可以将两个数据表中的目标连接字段相等的数据集合进行表连接,为了减小表连接时的开销,上述实施例中先将两个数据表中的第一表的非目标连接字段的字段进行过滤,将第一表中的目标连接字段与第二表进行表连接,这样做可以减少空间,同时减小数据表在连接时的开销;并且,可以通过目标连接字段从第一表中通过key键做二次扫描,从而避免了直接将第一表与第二表进行连接并汇总所导致的处理效率低的问题。
可选地,在获取两个数据表之间的目标连接字段之前,该方法还包括:根据接收到的查询请求获取两个数据表,其中,查询请求中携带有查询字段和汇总字段;在得到第一表和第二表的连接结果之后,该方法还包括:按照查询字段和汇总字段对连接结果进行汇总,以得到查询请求的查询结果。
在一个可选的实施例中,上述实施例中的处理方法也可以应用于如下场景中:大表A与大表B做表连接,需要选取大表A里面的a1列、a2列以及a3列,并计算出汇总字段a4的对应的汇总数据,如Sum(a4),其中,大表A对应为上述实施例中的第一表,大表B对应为上述实施例中的第二表,语句Sum()具有加和或者汇总的作用,上述的a4即为汇总字段。
通过上述实施例,当接收到查询请求时,可以在将第一表的目标连接字段与第二表进行表连接得到第三表之后,然后将第三表与第一表连接,在连接后将按照查询字段进行查询,对汇总字段进行连接结果的汇总,以得到查询结果,从而对两个数据表进行连接且查询和汇总的操作进行了优化,减小了查询和汇总的数据处理量,提高了表连接、查询以及汇总的处理效率。
可选地,将数据列与两个数据表的第二表进行表连接的步骤S106可以包括:判断查询字段的数量是否大于目标连接字段的数量;若查询字段的数量大于目标连接字段的数量,则将数据列与两个数据表的第二表进行表连接。
在上述实施例中,在将第一表和第二表进行连接时,需要对连接的两个表中的查询字段的数量进行判断,当其大于目标连接字段的数量时,将第一表中的目标连接字段对应的数据列与第二表进行表连接,从而节省了大数据量的第一表和第二表进行表连接的哈希hash开销。
上述实施例中的判断出查询字段的数量大于目标连接字段的数量的步骤,是仅选择第一表的连接列与第二表进行连接过滤的前提条件,这样连接过滤的步骤可以将查询字段所需的字段先过滤掉,通过目标连接字段与第二表进行连接,这样能够实现减小表连接的开销的目的。
可选地,按照查询字段和汇总字段对连接结果进行汇总,以得到查询请求的查询结果包括:按照查询字段对连接结果进行分组,得到多组信息集合;获取每组信息集合中汇总字段的属性值之和,得到查询结果。
在上述实施例中,可以在两个数据表进行表连接之后,对该连接后的数据表进行查询和汇总的操作,在接收到查询请求之后,可以按照该查询字段对连接结果进行分组,从而得到多组信息集合的查询结果,并可以获取每组信息集合中的汇总字段的属性值之和,进而得到汇总的值,即得到查询结果,通过上述实施例,可以实现快速准确的获得表连接之后的查询结果的效果。
可选地,汇总字段和查询字段具有关联关系,关联关系包括一一对应的关系、或者函数关系,其中,函数关系用于表示查询字段的属性值随汇总字段的属性值的变化而变化;汇总字段作为目标连接字段。
在上述实施例中,函数关系可以包括线性关系、指数关系等,查询字段的属性值与汇总字段的属性值之间存在该函数关系,例如,该函数关系为线性关系时,线性关系式可以为y=kx+b,其中,y可以为查询字段的属性值,x可以为汇总字段的属性值,k和b为常数,此时,查询字段的属性值y可以随着汇总字段的属性值x的变化而相应地变化。
通过上述实施例,第一表中的目标连接字段与关键字段具有一一对应关系、或者具有的函数关系,该函数关系也可以理解为关键字段对应的数据列的值决定了各个关键字段对应的数据列的值。
可选地,将数据列与两个数据表的第二表进行表连接包括:按照预定表连接方式连接数据列和第二表,其中,预定表连接方式包括内连接方式或外连接方式。
上述实施例中的表连接可以采用内连接的方式和外连接的方式,并且,连接可以使用结构化查询Sql(Structured Query Language)语言来实现。
对比于现有方案中的大表连接方案,开销比较大,且容易发生内存溢出等错误,导致查询失败,本专利通过仅选取相应的连接键的方式,再从原大表(即上述第一表)里通过key键做二次扫描,来避免大表连接,在多字段选取的情况下的性能差问题。
在现有技术中,当要将大表A与大表B做连接时,需要先选取大表A里的查询字段对应的数据列(a1,a2,a3),并计算出相应汇总字段a4的汇总数据,如Sum(a4)。
通过采用本申请实施例,可以对大表连接后,需要计算出汇总结果(即上述的查询结果),但同时又需要多对一起使用时的方案进行优化,由于在大表连接后,可能会产生数据膨胀的现象,为屏蔽上述数据膨胀的现象,可以通过在对大表连接后,仅记录各个大表的key值,使数据膨胀后不带其它所有需要的列,极大减少空间,在表连接计算好后,由于汇总的行数已明显减少,这时再与原大表进行表连接,便可快速找出需要的列。通过上述实施例,可以减少大表连接时的开销,特别针对汇总计算的查询,可以实现使多列的开销降低的效果。
现有方案中的用以实现表连接的程序可以为:
Select A.a1,A.a2,A.a3,sum(a4)as total Sum_a4
From A inner join B on A.join Column=B.join Column
Group by a1,a2,a3,
即先将大表A与大表B中连接字段的数据列相同的数据进行表连接,然后从表连接后的结果集中选取待连接的大表A中的a1列、a2列、以及a3列,将a4列进行加和计算,并将该加和的结果所在的列命名为total Sum_a4列,以a1列、a2列、以及a3列进行分组。
在现有技术中,生成的执行计划会将A表里的join Column进行哈希hash,同时带上相应的a1,a2,a3字段,这样会导致内存开销极大。
本申请实施例中的方法对应的装置,可以包括:
1、输入装置:输入相应的Sql查询,或是查询需求,分析其相应的大表连接字段,以及各大表上所需要的字段。
2、判定装置:如果某表是大表,其上面需要的字段包括非表连接字段,那么先去掉其它所有非表连接的字段,选取表连接的关键字段和汇总字段,如将上面的表连接字段join column作为关键字段(即为上述的查询字段),以a4列作为汇总字段,同时要求表连接字段join column在大表A里与a1列,a2列,a3列等选取列属于一一对应关系,或者是表连接字段join column的值,决定了a1列,a2列,a3列的值。
3、转换装置:
a)在判定装置满足后,对原需求进行拆解,先选出相应的大表连接字段,再进行表连接,这样做可以使大表连接时不会附带其它选择列,从而降低了表连接的内存消耗,以达到提高大表连接速度的目的。
b)针对大表连接后的结果,再分别对原大表进行二次连接,需要注意的是,这里的连接是和本表自己进行连接,所以不会发生数据膨胀(假设前提是大表A里的表连接字段join column与选择列a1列,a2列,a3列一一对应的关系),且是带有过滤Filter的IO(Input/Output,输入输出),比上面的直接表连接开销会小很多。
c)最后得出最终大表连接并汇总计算的结果(也可以为上述的查询结果)。
上述实施例可以通过以下Sql程序运行实现:
With Join Results as(select A.join Column from A inner join B on A.join column=B.join column
Group by A.join Column)
select a1,a2,a3,sum(Join Results.a4)as taltal Sum_a4
from A inner join Join Results on A.join column=Join Results.join Column
group by a1,a2,a3
在上述程序中,可以先对大表A(即第一表)获取其中的表连接字段join Column,将该表连接字段join Column与大表B(即第二表)基于目标连接字段join Column对应的数据列进行表连接,然后以该目标连接字段进行分组,得到合并结果集(即第三表),再从大表A中选取a1列、a2列、a3列以及a4列的合并结果Sum(a4),将大表A中的上述获取的各个列与大表B连接,也即通过合并结果中的目标关键字段来查询大表A中的各个关键字段对应的a1列、a2列、a3列。
通过上述实施例,可以避免现有技术中的表连接导致的数据膨胀的现象,尤其是具有大数据量的大表与大表间的连接,上述实施例在连接时只选取相应的表连接字段(即上述的目标连接字段)和汇总数据字段(汇总字段),对于其它根据表连接字段派生的相关维度字段(即各个查询字段),经过二次自身查询获得,使其大表连接里的列数明显降低,从而减少内存的占用率,提升大表连接的性能。
实施例2
根据本申请实施例的另一方面,还提供了一种数据表信息的处理装置,图2是根据本申请实施例的一种数据表信息的处理装置的示意图,如图2所示,该处理装置包括:第一获取单元20、第二获取单元40、第一表连接单元60以及第二表连接单元80。
其中,第一获取单元20,用于在当前连接的两个数据表的数据量大于预设数据量的情况下,获取两个数据表之间的目标连接字段。
第二获取单元40,用于获取两个数据表的第一表中目标连接字段对应的数据列。
第一表连接单元60,用于将数据列与两个数据表的第二表进行表连接,得到第三表。
第二表连接单元80,用于利用数据列,将第一表和第三表进行表连接,得到第一表和第二表的连接结果。
采用本申请实施例,通过采用在当前连接的两个数据表的数据量大于预设数据量的情况下,获取目标连接字段;再获取两个数据表的第一表中目标连接字段对应的数据列;将数据列与两个数据表的第二表进行表连接,得到第三表;利用数据列,将第一表和第三表进行表连接,得到第一表和第二表的连接结果的方式,通过先将第一表过滤后,将第一表中保留的目标连接字段与第二表进行表连接,得到第三表,然后将第三表与第一表二次表连接,达到了减少大数据量表连接时所需处理的数据量的目的,从而实现了减少具有大数据量的表在进行表连接时的开销的技术效果,进而解决了现有技术中大数据量表在进行表连接时开销大的技术问题。
可选地,该装置还包括:接收单元,用于在获取两个数据表之间的目标连接字段之前,根据接收到的查询请求获取两个数据表,其中,查询请求中携带有查询字段和汇总字段;汇总单元,用于在得到第一表和第二表的连接结果之后,按照查询字段和汇总字段对连接结果进行汇总,以得到查询请求的查询结果。
通过上述实施例,当接收到查询请求时,可以在将第一表的目标连接字段与第二表进行表连接得到第三表之后,然后将第三表与第一表连接,在连接后将按照查询字段进行查询,对汇总字段进行连接结果的汇总,以得到查询结果,从而对两个数据表进行连接且查询和汇总的操作进行了优化,减小了查询和汇总的数据处理量,提高了表连接、查询以及汇总的处理效率。
可选地,第一表连接单元包括:判断模块,用于判断查询字段的数量是否大于目标连接字段的数量;表连接模块,用于若查询字段的数量大于目标连接字段的数量,则将数据列与两个数据表的第二表进行表连接。
在上述实施例中,在将第一表和第二表进行连接时,需要对连接的两个表中的查询字段的数量进行判断,当其大于目标连接字段的数量时,将第一表中的目标连接字段对应的数据列与第二表进行表连接,从而节省了大数据量的第一表和第二表进行表连接的哈希hash开销。
上述实施例中的判断出查询字段的数量大于目标连接字段的数量的步骤,是仅选择第一表的连接列与第二表进行连接过滤的前提条件,这样连接过滤的步骤可以将查询字段所需的字段先过滤掉,通过目标连接字段与第二表进行连接,这样能够实现减小表连接的开销的目的。
可选地,汇总单元包括:分组模块,用于按照查询字段对连接结果进行分组,得到多组信息集合;获取模块,用于获取每组信息集合中汇总字段的属性值之和,得到查询结果。
在上述实施例中,可以在两个数据表进行表连接之后,对该连接后的数据表进行查询和汇总的操作,在接收到查询请求之后,可以按照该查询字段对连接结果进行分组,从而得到多组信息集合的查询结果,并可以获取每组信息集合中的汇总字段的属性值之和,进而得到汇总的值,即得到查询结果,通过上述实施例,可以实现快速准确的获得表连接之后的查询结果的效果。
可选地,汇总字段和查询字段具有关联关系,关联关系包括一一对应的关系、或者函数关系,其中,函数关系用于表示查询字段的属性值随汇总字段的属性值的变化而变化;汇总字段作为目标连接字段。
在上述实施例中,函数关系可以包括线性关系、指数关系等,查询字段的属性值与汇总字段的属性值之间存在该函数关系,例如,该函数关系为线性关系时,线性关系式可以为y=kx+b,其中,y可以为查询字段的属性值,x可以为汇总字段的属性值,k和b为常数,此时,查询字段的属性值y可以随着汇总字段的属性值x的变化而相应地变化。
通过上述实施例,第一表中的目标连接字段与关键字段具有一一对应关系、或者具有的函数关系,该函数关系也可以理解为关键字段对应的数据列的值决定了各个关键字段对应的数据列的值。
可选地,第一表连接单元包括:连接模块,用于按照预定表连接方式连接数据列和第二表,其中,预定表连接方式包括内连接方式或外连接方式。
上述实施例中的表连接可以采用内连接的方式和外连接的方式,并且,连接可以使用结构化查询Sql(Structured Query Language)语言来实现。
通过上述实施例,可以避免现有技术中的表连接导致的数据膨胀的现象,尤其是具有大数据量的大表与大表间的连接,上述实施例在连接时只选取相应的表连接字段(即上述的目标连接字段)和汇总数据字段(即汇总字段),对于其它根据表连接字段派生的相关维度字段(即各个关键字段,也相当于上述的查询字段),经过二次自身查询获得,使其大表连接里的列数明显降低,从而减少内存的占用率,提升大表连接的性能。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
数据表信息的处理装置包括处理器和存储器,上述第一获取单元20、第二获取单元40、第一表连接单元60以及第二表连接单元80等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来减少大数据量表连接时所需处理的数据量,从而实现了通过一步拖拽即可实现减少具有大数据量的表在进行表连接时的开销的技术效果,进而解决了现有技术中大数据量表在进行表连接时开销大的技术问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:在当前连接的两个数据表的数据量大于预设数据量的情况下,获取两个数据表之间的目标连接字段;获取两个数据表的第一表中目标连接字段对应的数据列;将数据列与两个数据表的第二表进行表连接,得到第三表;利用数据列,将第一表和第三表进行表连接,得到第一表和第二表的连接结果。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种数据表信息的处理方法,其特征在于,包括:
在当前连接的两个数据表的数据量大于预设数据量的情况下,获取所述两个数据表之间的目标连接字段;
获取所述两个数据表的第一表中所述目标连接字段对应的数据列;
将所述数据列与所述两个数据表的第二表进行表连接,得到第三表;
利用所述数据列,将所述第一表和所述第三表进行表连接,得到所述第一表和所述第二表的连接结果。
2.根据权利要求1所述的方法,其特征在于,
在获取所述两个数据表之间的目标连接字段之前,所述方法还包括:根据接收到的查询请求获取所述两个数据表,其中,所述查询请求中携带有查询字段和汇总字段;
在得到所述第一表和所述第二表的连接结果之后,所述方法还包括:
按照所述查询字段和所述汇总字段对所述连接结果进行汇总,以得到所述查询请求的查询结果。
3.根据权利要求2所述的方法,其特征在于,将所述数据列与所述两个数据表的第二表进行表连接包括:
判断所述查询字段的数量是否大于所述目标连接字段的数量;
若所述查询字段的数量大于所述目标连接字段的数量,则将所述数据列与所述两个数据表的第二表进行表连接。
4.根据权利要求2所述的方法,其特征在于,按照所述查询字段和所述汇总字段对所述连接结果进行汇总,以得到所述查询请求的查询结果包括:
按照所述查询字段对所述连接结果进行分组,得到多组信息集合;
获取每组信息集合中所述汇总字段的属性值之和,得到所述查询结果。
5.根据权利要求2所述的方法,其特征在于,所述汇总字段和所述查询字段具有关联关系,所述关联关系包括一一对应的关系、或者函数关系,其中,所述函数关系用于表示所述查询字段的属性值随所述汇总字段的属性值的变化而变化;所述汇总字段作为所述目标连接字段。
6.根据权利要求1至5中任一项所述的方法,其特征在于,将所述数据列与所述两个数据表的第二表进行表连接包括:
按照预定表连接方式连接所述数据列和所述第二表,其中,所述预定表连接方式包括内连接方式或外连接方式。
7.一种数据表信息的处理装置,其特征在于,包括:
第一获取单元,用于在当前连接的两个数据表的数据量大于预设数据量的情况下,获取所述两个数据表之间的目标连接字段;
第二获取单元,用于获取所述两个数据表的第一表中所述目标连接字段对应的数据列;
第一表连接单元,用于将所述数据列与所述两个数据表的第二表进行表连接,得到第三表;
第二表连接单元,用于利用所述数据列,将所述第一表和所述第三表进行表连接,得到所述第一表和所述第二表的连接结果。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
接收单元,用于在获取所述两个数据表之间的目标连接字段之前,根据接收到的查询请求获取所述两个数据表,其中,所述查询请求中携带有查询字段和汇总字段;
汇总单元,用于在得到所述第一表和所述第二表的连接结果之后,按照所述查询字段和所述汇总字段对所述连接结果进行汇总,以得到所述查询请求的查询结果。
9.根据权利要求8所述的装置,其特征在于,所述第一表连接单元包括:
判断模块,用于判断所述查询字段的数量是否大于所述目标连接字段的数量;
表连接模块,用于若所述查询字段的数量大于所述目标连接字段的数量,则将所述数据列与所述两个数据表的第二表进行表连接。
10.根据权利要求8所述的装置,其特征在于,所述汇总单元包括:
分组模块,用于按照所述查询字段对所述连接结果进行分组,得到多组信息集合;
获取模块,用于获取每组信息集合中所述汇总字段的属性值之和,得到所述查询结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511034154.3A CN106933933B (zh) | 2015-12-31 | 2015-12-31 | 数据表信息的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511034154.3A CN106933933B (zh) | 2015-12-31 | 2015-12-31 | 数据表信息的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106933933A true CN106933933A (zh) | 2017-07-07 |
CN106933933B CN106933933B (zh) | 2019-12-10 |
Family
ID=59443814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511034154.3A Active CN106933933B (zh) | 2015-12-31 | 2015-12-31 | 数据表信息的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106933933B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506670A (zh) * | 2019-01-31 | 2020-08-07 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及设备 |
CN114372097A (zh) * | 2021-12-30 | 2022-04-19 | 北京达梦数据库技术有限公司 | 一种数据集列序列化的高效连接比对实现方法及装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060047622A1 (en) * | 2004-05-17 | 2006-03-02 | Oracle International Corporation | Using join dependencies for refresh |
US20070136346A1 (en) * | 2004-02-03 | 2007-06-14 | Morris John M | Executing a join plan using data compression |
CN102323947A (zh) * | 2011-09-05 | 2012-01-18 | 东北大学 | 环形架构数据库上预连接表的生成方法 |
US20120089594A1 (en) * | 2010-10-11 | 2012-04-12 | Murali Krishna | Performing database joins |
CN102467570A (zh) * | 2010-11-17 | 2012-05-23 | 日电(中国)有限公司 | 用于分布式数据仓库的连接查询系统和方法 |
CN103186651A (zh) * | 2011-12-31 | 2013-07-03 | 中国移动通信集团公司 | 一种分布式关系数据库及其建立、查询方法和装置 |
CN103377236A (zh) * | 2012-04-26 | 2013-10-30 | 中兴通讯股份有限公司 | 一种用于分布式数据库的连接查询方法及系统 |
CN103440301A (zh) * | 2013-08-21 | 2013-12-11 | 曙光信息产业股份有限公司 | 一种数据多副本混合存储方法及系统 |
CN104090954A (zh) * | 2014-07-04 | 2014-10-08 | 用友软件股份有限公司 | 只读表的连接方法和只读表的连接系统 |
CN104331492A (zh) * | 2014-11-14 | 2015-02-04 | 北京国双科技有限公司 | 一种缓存多实例数据的方法及装置 |
CN104731969A (zh) * | 2015-04-10 | 2015-06-24 | 北京大学深圳研究生院 | 分布式环境下海量数据连接聚集查询方法、装置和系统 |
-
2015
- 2015-12-31 CN CN201511034154.3A patent/CN106933933B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070136346A1 (en) * | 2004-02-03 | 2007-06-14 | Morris John M | Executing a join plan using data compression |
US20060047622A1 (en) * | 2004-05-17 | 2006-03-02 | Oracle International Corporation | Using join dependencies for refresh |
US20120089594A1 (en) * | 2010-10-11 | 2012-04-12 | Murali Krishna | Performing database joins |
CN102467570A (zh) * | 2010-11-17 | 2012-05-23 | 日电(中国)有限公司 | 用于分布式数据仓库的连接查询系统和方法 |
CN102323947A (zh) * | 2011-09-05 | 2012-01-18 | 东北大学 | 环形架构数据库上预连接表的生成方法 |
CN103186651A (zh) * | 2011-12-31 | 2013-07-03 | 中国移动通信集团公司 | 一种分布式关系数据库及其建立、查询方法和装置 |
CN103377236A (zh) * | 2012-04-26 | 2013-10-30 | 中兴通讯股份有限公司 | 一种用于分布式数据库的连接查询方法及系统 |
CN103440301A (zh) * | 2013-08-21 | 2013-12-11 | 曙光信息产业股份有限公司 | 一种数据多副本混合存储方法及系统 |
CN104090954A (zh) * | 2014-07-04 | 2014-10-08 | 用友软件股份有限公司 | 只读表的连接方法和只读表的连接系统 |
CN104331492A (zh) * | 2014-11-14 | 2015-02-04 | 北京国双科技有限公司 | 一种缓存多实例数据的方法及装置 |
CN104731969A (zh) * | 2015-04-10 | 2015-06-24 | 北京大学深圳研究生院 | 分布式环境下海量数据连接聚集查询方法、装置和系统 |
Non-Patent Citations (1)
Title |
---|
陈刚 等: "电网大数据量表设计优化技术及应用", 《计算机系统应用》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506670A (zh) * | 2019-01-31 | 2020-08-07 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及设备 |
CN111506670B (zh) * | 2019-01-31 | 2023-07-18 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及设备 |
CN114372097A (zh) * | 2021-12-30 | 2022-04-19 | 北京达梦数据库技术有限公司 | 一种数据集列序列化的高效连接比对实现方法及装置 |
CN114372097B (zh) * | 2021-12-30 | 2022-11-22 | 北京达梦数据库技术有限公司 | 一种数据集列序列化的高效连接比对实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106933933B (zh) | 2019-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102841946B (zh) | 商品数据检索排序及商品推荐方法和系统 | |
CN103678408B (zh) | 一种查询数据的方法及装置 | |
CN102542474A (zh) | 查询结果排序方法及装置 | |
CN104317839B (zh) | 生成报表模板的方法和装置 | |
CN107526807A (zh) | 信息推荐方法及装置 | |
CN104504077B (zh) | 网页访问数据的统计方法和装置 | |
CN104408159B (zh) | 一种数据关联、加载、查询方法及装置 | |
CN104182392B (zh) | 服务推荐处理的方法和装置 | |
CN106777232A (zh) | 问答抽取方法、装置及终端 | |
CN105488039A (zh) | 一种问询方法及装置 | |
CN105653661A (zh) | 一种检索结果重排方法及装置 | |
CN103019730A (zh) | 一种界面元素展示的方法及电子设备 | |
CN106933919A (zh) | 数据表的连接方法及装置 | |
CN107886373A (zh) | 基于关键词的广告推送方法、广告推送装置及电子终端 | |
CN103020141B (zh) | 一种用于提供搜索结果的方法和设备 | |
CN106713394A (zh) | 一种数据传输方法和装置 | |
CN106933933A (zh) | 数据表信息的处理方法及装置 | |
CN104462347B (zh) | 关键词的分类方法及装置 | |
CN106933927A (zh) | 数据表的连接方法和装置 | |
CN108647347A (zh) | 分页显示方法、用户设备、存储介质及装置 | |
CN103399879B (zh) | 基于用户搜索日志的兴趣实体获得方法及装置 | |
CN103294768B (zh) | 一种异常数据的剔除方法 | |
CN103810208B (zh) | 一种类目映射方法及装置 | |
CN107767010A (zh) | 范围值数据统计方法、电子装置及计算机可读存储介质 | |
CN106933934A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |