CN113111084A - 一种处理数据的方法和装置 - Google Patents
一种处理数据的方法和装置 Download PDFInfo
- Publication number
- CN113111084A CN113111084A CN202110349235.1A CN202110349235A CN113111084A CN 113111084 A CN113111084 A CN 113111084A CN 202110349235 A CN202110349235 A CN 202110349235A CN 113111084 A CN113111084 A CN 113111084A
- Authority
- CN
- China
- Prior art keywords
- target data
- data table
- data
- association
- tables
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 103
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004590 computer program Methods 0.000 claims description 11
- 238000011161 development Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
-
- 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/284—Relational databases
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
技术领域
本发明涉及计算机技术领域,尤其涉及一种处理数据的方法和装置。
背景技术
当执行处理数据时,往往需要从数据仓库包含的成千上万数量的数据表中获取并处理数据,在处理数据的过程中,待处理的数据通常需要从多个具有关联关系的数据表中获取。
但是,当数据仓库中的数据表关联路径较长时,开发人员需要了解关联路径中每个数据表的每个字段的对应关系,造成开发复杂度的增加,尤其是当数据表的数量级较大时,降低了开发效率,提高了数据处理的资源消耗。
发明内容
有鉴于此,本发明实施例提供一种处理数据的方法和装置,能够根据数据仓库中的多个目标数据表之间存在的关联关系,构建中间数据表;在接收到针对多个目标数据表的处理请求时,从中间数据表中查找与处理请求相关的数据;通过构建中间数据表,较大程度缩短了数据表之间的关联路径,降低了数据处理的资源消耗,并提高了数据处理开发的效率。
为实现上述目的,根据本发明实施例的一个方面,提供了一种处理数据的方法,其特征在于,包括:获取数据仓库中多个目标数据表以及多个所述目标数据表之间存在的直接关联关系或者间接关联关系;根据多个所述目标数据表之间存在的所述直接关联关系或者所述间接关联关系以及所述目标数据表包括的字段,为多个所述目标数据表构建中间数据表;在接收到针对多个所述目标数据表的处理请求时,从所述中间数据表中查找与所述处理请求相关的数据;如果查找结果指示所述数据全部存储于所述中间数据表,基于所述中间数据表处理所述数据;如果查找结果指示所述数据部分存储于所述中间数据表,基于所述中间数据表,从多个所述数据表中查找与所述处理请求相关的数据,并处理所述数据。
可选地,所述处理数据的方法,其特征在于,获取数据仓库中多个目标数据表以及多个所述目标数据表之间存在的直接关联关系或者间接关联关系,包括:获取所述数据仓库中的多个数据表;在多个所述数据表中,查找具有相同字段的至少两个目标数据表,并确定至少两个所述目标数据表之间存在直接关联关系;根据多个所述直接关联关系以及每一个所述直接关联关系所对应的至少两个所述目标数据表,确定多个所述目标数据表之间的间接关联关系。
可选地,所述处理数据的方法,其特征在于,确定多个所述目标数据表之间的间接关联关系,包括:为每一个所述直接关联关系所对应的至少两个所述目标数据表,构建关系字典;根据所述关系字典,为每一个所述目标数据表查找存在间接关联关系的其他目标数据表。
可选地,所述处理数据的方法,其特征在于,确定多个所述目标数据表之间的间接关联关系,包括:将每一个所述目标数据表抽象为结点;根据所述直接关联关系,为多个所述结点构建对应的连接边,得到关系图;根据所述关系图,为每一个所述目标数据表查找存在间接关联关系的其他目标数据表。
可选地,所述处理数据的方法,其特征在于,进一步包括:针对每一个所述目标数据表,为所述目标数据表所属的直接关联关系计算第一关联数量,并为所述目标数据表所属的间接关联关系的每一层关系计算第二关联数量;结合所述第一关联数量、所述第二关联数量,执行为多个所述目标数据表构建中间数据表的步骤。
可选地,所述处理数据的方法,其特征在于,所述为多个所述目标数据表构建中间数据表,包括:根据多个所述目标数据表之间存在的所述直接关联关系或者所述间接关联关系,将多个所述目标数据表聚类为多种类别;根据多种所述类别所包括的所述目标数据表的第一关联数量和第二关联数量,构建中间层数据表和至少一个外层数据表;组合所述中间层数据表和至少一个所述外层数据表,得到所述中间数据表。
可选地,所述处理数据的方法,其特征在于,所述构建中间层数据表,包括:针对每一种所述类别,根据所述类别包括的每一个所述目标数据表的第一关联数量和第二关联数量,在预设关联层级内计算每一个所述目标数据表的关联数量;为每一个所述类别选择关联数量最大的目标数据表;根据每一个所述类别中关联数量最大的目标数据表的字段,构建所述中间层数据表中的字段。
可选地,所述处理数据的方法,其特征在于,所述构建至少一个外层数据表,包括:针对每一个所述类别,循环执行下述步骤N1至N4,满足循环停止条件,
N1:从所述类别中选择未被选择过的关联数量最小的目标数据表;
N2:根据当前关联数量最小的目标数据表和关联数量最大的目标数据表中的字段,构建临时数据表中的字段;
N3:结合所述中间层数据表的字段和所述临时数据表的字段,计算所述类别的关联度;
N4:判断所述关联度是否满足预设的关联条件,如果是,则确定所述临时数据表为所述类别的外层数据表,并结束循环;否则,执行步骤N1。
可选地,所述处理数据的方法,其特征在于,步骤N3,包括:
在预设关联层级内,确定所述中间层数据表的字段和所述临时数据表的字段所关联的目标数据表的第三关联数量;根据所述第三关联数量和所述目标数据表的总数量,计算所述类别的关联度。
为实现上述目的,根据本发明实施例的第二方面,提供了一种处理数据的装置,其特征在于,包括:确定关联关系模块、构建中间表模块和处理数据模块;其中,
所述确定关联关系模块,用于获取数据仓库中多个目标数据表以及多个所述目标数据表之间存在的直接关联关系或者间接关联关系;
所述构建中间表模块,用于根据多个所述目标数据表之间存在的所述直接关联关系或者所述间接关联关系以及所述目标数据表包括的字段,为多个所述目标数据表构建中间数据表;
所述处理数据模块,用于在接收到针对多个所述目标数据表的处理请求时,从所述中间数据表中查找与所述处理请求相关的数据;如果查找结果指示所述数据全部存储于所述中间数据表,基于所述中间数据表处理所述数据;如果查找结果指示所述数据部分存储于所述中间数据表,基于所述中间数据表,从多个所述数据表中查找与所述处理请求相关的数据,并处理所述数据。
为实现上述目的,根据本发明实施例的第三方面,提供了一种处理数据的电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述处理数据的方法中任一所述的方法。
为实现上述目的,根据本发明实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如上述处理数据的方法中任一所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:能够根据数据仓库中的多个目标数据表之间存在的关联关系,构建中间数据表;在接收到针对多个目标数据表的处理请求时,从中间数据表中查找与处理请求相关的数据;通过构建中间数据表,较大程度缩短了数据表之间的关联路径,降低了数据处理的资源消耗,并提高了开发处理数据功能的效率。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明一个实施例提供的一种处理数据的方法的流程示意图;
图2是本发明一个实施例提供的一种构建中间数据表的流程示意图;
图3是本发明一个实施例提供的一种数据表关系图的示意图;
图4是本发明一个实施例提供的一种处理数据的装置的结构示意图;
图5是本发明实施例可以应用于其中的示例性***架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
数据仓库中的数据表之间的关联关系是通过一个字段或多个字段进行关联,为了获取数据仓库中的数据,可能需要关联多个表才能获取到,数据仓库中有成千上万的表,通过多个表关联才能获得数据的情况很多;以下举例说明从关联的数据表中获取数据,如下所示,有五个数据表:表A、表B、表C、表D、表E,数据表包含的字段分别如下所示:
表A:order_id、order_amout
表B:order_id、sku_id
表C:sku_id、pop_id
表D:pop_id、channel_id
表E:channel_id、pv
假设需要计算每个渠道(例如:渠道标识为channel_id)的转化率(例如:用amout_pv标识转化率),则需要获取表A中的字段order_am out以及表E的字段pv对应的数据,然后计算每个渠道的转化率,例如可以利用如下的数据库操作语句实现:
Select D.channel_id,sum(A.order_amout)/sum(E.pv)as amout_pv from AJoin B on A.order_id=B.order_id
Join C on B.sku_id=C.sku_id
Join D on C.pop_id=D.pop_id
Join E on D.channel_id=E.channel_id
Group by D.channel_id
通过本示例,可见计算渠道的转化率需要关联五个数据表,关联路径较长,当数据仓库中包含的数据表的数量级较大、且数据表包含的字段数量较大、需要处理的数据数量较大时,开发复杂度存在较大程度的增加的情况,同时存在浪费数据仓库的计算资源的问题。
鉴于此,如图1所示,本发明实施例提供了一种处理数据的方法,该方法可以包括以下步骤:
步骤S101:获取数据仓库中多个目标数据表以及多个所述目标数据表之间存在的直接关联关系或者间接关联关系。
具体地,遍历数据仓库中的各个数据表,将数据表之间具有直接关联关系或者间接关联关系的数据表作为目标数据表。其中,利用各个数据表中是否包含相同的字段确定数据表之间是否存在直接关联关系或者间接关联关系,目标数据表包含于其他数据表存在直接关联关系或者间接关联关系的字段;以下面的目标数据表为例,
表A:order_id、order_amout
表B:order_id、sku_id
表C:sku_id、pop_id
其中,表A和表B包含相同的字段order_id,则表A和表B具有直接关联关系;类似地,表A和表B包含相同的字段sku_id,表B和表C也存在直接关联关系;根据表A和表B和直接关联关系、表B和表C的直接关联关系,可以确定表A和表C之间存在间接关联关系;即,获取所述数据仓库中的多个数据表;在多个所述数据表中,查找具有相同字段的至少两个目标数据表,并确定至少两个所述目标数据表之间存在直接关联关系;根据多个所述直接关联关系以及每一个所述直接关联关系所对应的至少两个所述目标数据表,确定多个所述目标数据表之间的间接关联关系。
可以理解的是,从一个数据仓库中,可以获取由多个目标数据表组成的不同组,不同组中分别包含具有直接关联关系或者间接关联关系的目标数据表。例如:组A包含20个具有关联关系的目标数据表;组B包含100个具有关联关系的目标数据表;组A和组B包含的目标数据表之间不具有关联关系;本发明实施例所描述的示例为针对任意一个组包含的目标数据表。
具体地,以如下所示的表A、表B、表C、表D、表E作为目标数据表为例:
表A:order_id、order_amout
表B:order_id、sku_id
表C:sku_id、pop_id
表D:pop_id、channel_id
表E:channel_id、pv
确定数据仓库中多个目标数据表的直接关联关系,并确定间接关联关系的方法有三个:
第一个方法:为每一个所述直接关联关系所对应的至少两个所述目标数据表,构建关系字典;根据所述关系字典,为每一个所述目标数据表查找存在间接关联关系的其他目标数据表。
根据示例中的各个目标数据表,确定各个目标数据表的直接关联关系得到如表1所示的直接关联关系,第一列中的字母和第二列中的字母代表目标数据表的标识,每一行中的两个字母代表这个两个字母对应的目标数据表存在直接关联关系,例如:表A和表B具有直接关联关系。
A | B |
B | C |
C | D |
D | E |
B | A |
C | B |
D | C |
E | D |
表1
进一步地,基于表1,构建关系字典;例如:得到如下的关系字典Dic;
Dic={A:[B],B:[C,A],C:[D,B],D:[E,C],E:[D]}
其中:A:[B]指示表A和表B具有直接关联关系;B:[C,A]指示表B和表A以及表C具有直接关联关系,也指示表A以及表C具有间接关联关系。即,根据所述关系字典,为每一个所述目标数据表查找存在间接关联关系的其他目标数据表。
第二种方法:将每一个所述目标数据表抽象为结点;根据所述直接关联关系,为多个所述结点构建对应的连接边,得到关系图;根据所述关系图,为每一个所述目标数据表查找存在间接关联关系的其他目标数据表。
具体地,基于表A、表B、表C、表D、表E生成的关系图如图3所示,其中,圆圈代表目标数据表抽象成的结点,圆圈中的字母代表数据表的标识,圆圈中的连线代表两个数据表之间的直接关联关系,从而通过直接关联关系进一步查找间接关联关系的多个目标数据表;即,根据所述关系图,为每一个所述目标数据表查找存在间接关联关系的其他目标数据表。
第三种方法:针对每一个数据表的每一个字段,利用字段去数据仓库中查找包含相同字段的其他数据表(即具有直接关联关系的数据表),将查找的结果保存;例如:如表1所示的结果示例;在全部数据表遍历结束后,基于查找结果(表1)中的每一个数据表(第一列),进一步查找存在间接关联关系的其他目标数据表;例如:当第一列存在多个数据表标识时,获取其对应的具有直接关联关系的数据表,以及存在间接关联关系的其他目标数据表。
通过上述方法可以确定多个数据表中的直接关联关系和间接关联关系,提高了查找对应于直接关联关系和间接关联关系的字段的效率。
步骤S102:根据多个所述目标数据表之间存在的所述直接关联关系或者所述间接关联关系以及所述目标数据表包括的字段,为多个所述目标数据表构建中间数据表。
具体地,根据步骤S101所描述的确定目标数据表之间存在的所述直接关联关系或者所述间接关联关系;进一步地,获取确定目标数据表之间存在的所述直接关联关系或者所述间接关联关系的字段,利用多个字段,为多个所述目标数据表构建中间数据表。
例如:为示例表A、表B、表C、表D、表E构建的中间数据表为表F,其包含的字段如下所示:
表F:order_id、sku_id、pop_id、channel_id
其中,order_id、sku_id、pop_id、channel_id为确定表A、表B、表C、表D、表E之间存在的所述直接关联关系或者所述间接关联关系的字段。可以理解的是,一个目标数据表包含多个字段,例如:20个字段,字段中包含使该目标数据表与其他目标数据表存在关联关系的字段(例如:6个字段),也包括不对应于任意关联关系的多个字段(例如:14个字段),本发明所讨论的字段为使该目标数据表与其他目标数据表存在关联关系的字段。
关于构建中间数据表的描述与步骤S201-步骤S204的描述一致,在此不再赘述。通过获取对应于直接关联关系和间接关联关系的字段,并基于各个字段构建中间数据表,以使中间数据表在最大程度上关联尽可能多数量的数据表,由此减少多个数据表的关联路径,提高了处理数据的效率。
步骤S103:在接收到针对多个所述目标数据表的处理请求时,从所述中间数据表中查找与所述处理请求相关的数据;如果查找结果指示所述数据全部存储于所述中间数据表,基于所述中间数据表处理所述数据;如果查找结果指示所述数据部分存储于所述中间数据表,基于所述中间数据表,从多个所述数据表中查找与所述处理请求相关的数据,并处理所述数据。
具体地,在构建中间数据表之后,可以直接从中间数据表中查找与所述处理请求相关的数据;从表A中为表F获取字段order_id对应的数据,以通过中间数据表获取数据,从而缩短了处理数据的关联路径,提高了开发效率,提高了处理数据的效率。
在构建中间数据表之后,即确定中间数据表所包含的各个字段之后,基于该字段从中间数据表所关联的目标数据表中获取该字段对应的数据;例如,仍以表A、表B、表C、表D、表E构建的中间数据表表F为例:
表F:order_id、sku_id、pop_id、channel_id
当需要获取字段channel_id对应的数据时,可以使用如下数据库查询语句:
Select channel_id from F;
即,如果查找结果指示所述数据全部存储于所述中间数据表,基于所述中间数据表处理所述数据;
进一步地,例如:若需要获取渠道的金额转化率,可以使用如下语句:
Select F.channel_id,sum(A.order_amout)/sum(E.pv)as amout_pv from AJoin F on A.order_id=F.order_id
Join E on F.channel_id=E.channel_id
Group by F.channel_id
可见,当待获取的数据不是全部存储于所述中间数据表F的时候,通过中间数据表F结合表A、表E获取对应的数据,即,如果查找结果指示所述数据部分存储于所述中间数据表,基于所述中间数据表,从多个所述数据表中查找与所述处理请求相关的数据,并处理所述数据,处理数据包括查询数据、修改数据、删除数据、基于查找到的数据计算等数据操作。本发明对处理数据的具体内容不做限定;通过构建中间数据表,以通过中间数据表获取部分或全部数据,因此减少多个数据表的关联路径,提高了处理数据的效率。
如图2所示,本发明实施例提供了一种构建中间数据表的方法,该方法可以包括以下步骤:
步骤S201:针对每一个所述目标数据表,为所述目标数据表所属的直接关联关系计算第一关联数量,并为所述目标数据表所属的间接关联关系的每一层关系计算第二关联数量;结合所述第一关联数量、所述第二关联数量,执行为多个所述目标数据表构建中间数据表的步骤。
具体地,针对每一个目标数据表,计算目标数据表所属的直接关联关系的目标数据表的数量(即第一关联数量),并计算目标数据表所属的间接关联关系的目标数据表的数量(即第二关联数量),其中,第二关联数量与关联层级相关,仍以表A、表B、表C、表D、表E为例,其中:与表A存在直接关联关系的为表B,则表A的第一层关联数量是1,也即第一关联数量是1,与表A在两层以内存在直接关联关系或间接关联关系的有表B和表C,则表A两层以内的第二层关联数量是2,第二层关联数量包含了第一关联数量和第二关联数量,计算可知,表A第二层的第二关联数量为1(对应于关联层级为2的间接关联关系),类似地,则表A三层以内的第三层关联数量是3,第三层关联数量包含了第一关联数量和第二关联数量,计算可知,表A第三层的第二关联数量为2(对应于关联层级为3的间接关联关系),表A、表B、表C、表D、表E的关联数量如表2所示:
表2
即,根据所述目标数据表所属的直接关联关系,为所述目标数据表计算第一关联数量;根据与所述目标数据表存在间接关联关系的其他目标数据表,为所述目标数据表计算所述间接关联关系包括的每一层关系的第二关联数量;进一步地,结合所述第一关联数量、所述第二关联数量,执行为多个所述目标数据表构建中间数据表的步骤;关于构建中间数据表的步骤的描述与步骤S202-步骤S204的描述一致,在此不再赘述。
步骤S202:根据多个所述目标数据表之间存在的所述直接关联关系或者所述间接关联关系,将多个所述目标数据表聚类为多种类别。
具体地,仍以表A、表B、表C、表D、表E为例,把对应于目标数据表的结点按照直接关联关系或者所述间接关联关系作为特征进行聚类;例如,根据表A、表B、表C、表D、表E的直关联关系进行聚类,可以利用python的keras包中pad_sequences算法,使每个目标数据表的特征的长度相同,并使特征的个数等于目标数据表的数量(例如:目标数据表数量为5,则特征的数量为5,例如为特征1-特征5),如表3所示:
表3
进一步地,利用聚类算法进行聚类(例如:使用Kmeans算法),假设经过聚类,所得到的类别为:类别1:{A,B,C},类别2:{D,E};其中表A,B,C属于类别1,表D,E属于类别2;即,根据多个所述目标数据表之间存在的所述直接关联关系或者所述间接关联关系,将多个所述目标数据表聚类为多种类别。
步骤S203:根据多种所述类别所包括的所述目标数据表的第一关联数量和第二关联数量,构建中间层数据表和至少一个外层数据表。
具体地,下面分别说明构建中间层数据表和至少一个外层数据表的方法。
1)构建中间层数据表的方法为:
针对每一种类别,计算类别包括的每一个目标数据表的第一关联数量和第二关联数量;并计算在预设关联层级内计算每一个所述目标数据表的关联数量;例如:预设关联层级设置为2,则代表计算目标数据表在2层级内所关联的其他目标数据表的数量,如表2的“第二层关联数量”所示。即,针对每一种所述类别,根据所述类别包括的每一个所述目标数据表的第一关联数量和第二关联数量,在预设关联层级内计算每一个所述目标数据表的关联数量;
进一步地,分别从各个类别中选择关联数量最大的目标数据表,例如:类别1:{A,B,C},类别2:{D,E},如表2所示,若预设关联层级设置为2,则类别1中,则类别1中关联数量最大的目标数据表是表C,类别2中关联数量最大的目标数据表是表D;即,为每一个所述类别选择关联数量最大的目标数据表。
进一步地,根据每一个所述类别中关联数量最大的目标数据表的字段,构建所述中间层数据表中的字段。例如:从选取的表C和表D中获取字段,构建中间层数据表为表X,如下所示:表X包含如下字段。
表X | sku_id | pop_id | channel_id |
2)构建至少一个外层数据表的方法为:
所述构建至少一个外层数据表,包括:针对每一个所述类别,选取类别中每个目标数据表对应的关联数量,并找出每个类别中关联数量最大的目标数据表和关联数量最小的目标数据表创建外层中间表;
例如:如表2所示,若预设关联层级设置为2,针对类别1,类别1中关联数量最大的目标数据表是表C,关联数量最小的目标数据表是表A;类别2中关联数量最大的目标数据表是表D,关联数量最小的目标数据表是表E;则表C和A创建临时中间表Y,表D和E创建临时中间表Z如下所示。
表Y | order_id | sku_id | pop_id |
表Z | pop_id | channel_id |
进一步地,结合所述中间层数据表的字段和所述临时数据表的字段,计算所述类别的关联度;其中,关联度可以为比值,例如:可以根据所述第三关联数量和所述目标数据表的总数量,计算第三关联数量和目标数据表的总数量的比值,其中,第三关联数量为所述中间层数据表的字段和所述临时数据表的字段所关联的目标数据表的数量;,即,在预设关联层级内,确定所述中间层数据表的字段和所述临时数据表的字段所关联的目标数据表的第三关联数量;根据所述第三关联数量和所述目标数据表的总数量,计算所述类别的关联度。例如:预设的关联条件为关联度数值为80%;则关联度80%为满足预设的关联条件。例如:基于中间层数据表X、临时数据表Y、临时数据表Z结合成的中间数据表,计算所得的第三关联数量为5,目标数据表的总数量为5,计算的关联度为5/5=100%,由于100%>80%,则判断为满足预设的关联条件,则确定表Y、表Z为外层数据表;并由表X、表Y、表Z结合成的中间数据表为满足预设的关联条件的中间数据表。可以理解的是,若存在多个关联数量最大数值或关联数量最小数值相同的数据表,则分别构建临时数据表,并执行判断满足预设的关联条件的步骤。
进一步地,若不满足预设的关联条件,则继续从各个类别中选取目标数据表以构建临时数据表,例如:在第二轮循环中,针对类别1中,选取类别1中关联数量最大的目标数据表,关联数量第二小(即当前关联数量最小的目标数据表)的目标数据表构建临时数据表;从类别2中选取关联数量最大的目标数据表,关联数量第二小(即,当前关联数量最小的目标数据表)的目标数据表构建临时数据表;
针对每一个类别循环操作,直到满足循环停止条件,将满足循环停止条件时的临时数据表作为外层数据表,其中,满足预设的关联条件包括关联度满足预设的关联条件、以及类别中的目标数据表遍历完成等。
上面的描述即,针对每一个所述类别,循环执行下述步骤N1至N4,满足循环停止条件,
N1:从所述类别中选择未被选择过的关联数量最小的目标数据表;
N2:根据当前关联数量最小的目标数据表和关联数量最大的目标数据表中的字段,构建临时数据表中的字段;
N3:结合所述中间层数据表的字段和所述临时数据表的字段,计算所述类别的关联度;
N4:判断所述关联度是否满足预设的关联条件,如果是,则确定所述临时数据表为所述类别的外层数据表,并结束循环;否则,执行步骤N1。
步骤S204:组合所述中间层数据表和至少一个所述外层数据表,得到所述中间数据表。
具体地,根据步骤S203所描述的构建中间层数据表和至少一个所述外层数据表,基于中间层数据表和至少一个所述外层数据表,得到中间数据表,例如:经过字段的去重等处理,基于表X、表Y、表Z。
得到中间数据表表F:
表F:order_id、sku_id、pop_id、channel_id
由此可见,利用构建中间数据表的步骤,使中间数据表尽可能多地关联数据仓库中的各个数据表,以减少从这些数据表中获取数据的关联路径和开发复杂度;可以理解的是,可以为一个数据仓库中包含的多个数据表对应地构建多个中间数据表。
如图4所示,本发明实施例提供了一种处理数据的装置400,包括:确定关联关系模块401、构建中间表模块402和处理数据模块403;其中,
所述确定关联关系模块401,用于获取数据仓库中多个目标数据表以及多个所述目标数据表之间存在的直接关联关系或者间接关联关系;
所述构建中间表模块402,用于根据多个所述目标数据表之间存在的所述直接关联关系或者所述间接关联关系以及所述目标数据表包括的字段,为多个所述目标数据表构建中间数据表;
所述处理数据模块403,用于在接收到针对多个所述目标数据表的处理请求时,从所述中间数据表中查找与所述处理请求相关的数据;如果查找结果指示所述数据全部存储于所述中间数据表,基于所述中间数据表处理所述数据;如果查找结果指示所述数据部分存储于所述中间数据表,基于所述中间数据表,从多个所述数据表中查找与所述处理请求相关的数据,并处理所述数据。
本发明实施例还提供了一种处理数据的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例提供的方法。
本发明实施例还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例提供的方法。
图5示出了可以应用本发明实施例的处理数据的方法或处理数据的装置的示例性***架构500。
如图5所示,***架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种客户端应用,例如电子商城客户端应用、网页浏览器应用、搜索类应用、即时通信工具和邮箱客户端等。
终端设备501、502、503可以是具有显示屏并且支持各种客户端应用的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所使用的客户端应用提供支持的后台管理服务器。后台管理服务器可以对接收到的获取数据请求进行处理,并将从中间数据表以及关联的数据表中获取的数据反馈给终端设备。
需要说明的是,本发明实施例所提供的处理数据的方法一般由服务器505执行,处理数据的装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本发明实施例的终端设备的计算机***600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机***600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有***600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CP U)601执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块和/或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块和/或单元也可以设置在处理器中,例如,可以描述为:一种处理器包括确定关联关系模块、构建中间表模块和处理数据模块;其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,确定关联关系模块还可以被描述为“获取数据仓库中多个存在的直接关联关系或者间接关联关系目标数据表的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取数据仓库中多个目标数据表以及多个所述目标数据表之间存在的直接关联关系或者间接关联关系;根据多个所述目标数据表之间存在的所述直接关联关系或者所述间接关联关系以及所述目标数据表包括的字段,为多个所述目标数据表构建中间数据表;在接收到针对多个所述目标数据表的处理请求时,从所述中间数据表中查找与所述处理请求相关的数据;如果查找结果指示所述数据全部存储于所述中间数据表,基于所述中间数据表处理所述数据;如果查找结果指示所述数据部分存储于所述中间数据表,基于所述中间数据表,从多个所述数据表中查找与所述处理请求相关的数据,并处理所述数据。
本发明的实施例,能够根据数据仓库中的多个目标数据表之间存在的关联关系,构建中间数据表;在接收到针对多个目标数据表的处理请求时,从中间数据表中查找与处理请求相关的数据;通过构建中间数据表,较大程度缩短了数据表之间的关联路径,降低了数据处理的资源消耗,并提高了数据处理开发的效率。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (12)
1.一种处理数据的方法,其特征在于,包括:
获取数据仓库中多个目标数据表以及多个所述目标数据表之间存在的直接关联关系或者间接关联关系;
根据多个所述目标数据表之间存在的所述直接关联关系或者所述间接关联关系以及所述目标数据表包括的字段,为多个所述目标数据表构建中间数据表;
在接收到针对多个所述目标数据表的处理请求时,从所述中间数据表中查找与所述处理请求相关的数据;
如果查找结果指示所述数据全部存储于所述中间数据表,基于所述中间数据表处理所述数据;
如果查找结果指示所述数据部分存储于所述中间数据表,基于所述中间数据表,从多个所述数据表中查找与所述处理请求相关的数据,并处理所述数据。
2.根据权利要求1所述的方法,其特征在于,获取数据仓库中多个目标数据表以及多个所述目标数据表之间存在的直接关联关系或者间接关联关系,包括:
获取所述数据仓库中的多个数据表;
在多个所述数据表中,查找具有相同字段的至少两个目标数据表,并确定至少两个所述目标数据表之间存在直接关联关系;
根据多个所述直接关联关系以及每一个所述直接关联关系所对应的至少两个所述目标数据表,确定多个所述目标数据表之间的间接关联关系。
3.根据权利要求2所述的方法,其特征在于,确定多个所述目标数据表之间的间接关联关系,包括:
为每一个所述直接关联关系所对应的至少两个所述目标数据表,构建关系字典;
根据所述关系字典,为每一个所述目标数据表查找存在间接关联关系的其他目标数据表。
4.根据权利要求2所述的方法,其特征在于,确定多个所述目标数据表之间的间接关联关系,包括:
将每一个所述目标数据表抽象为结点;
根据所述直接关联关系,为多个所述结点构建对应的连接边,得到关系图;
根据所述关系图,为每一个所述目标数据表查找存在间接关联关系的其他目标数据表。
5.根据权利要求1所述的方法,其特征在于,
进一步包括:针对每一个所述目标数据表,为所述目标数据表所属的直接关联关系计算第一关联数量,并为所述目标数据表所属的间接关联关系的每一层关系计算第二关联数量;
结合所述第一关联数量、所述第二关联数量,执行为多个所述目标数据表构建中间数据表的步骤。
6.根据权利要求5所述的方法,其特征在于,所述为多个所述目标数据表构建中间数据表,包括:
根据多个所述目标数据表之间存在的所述直接关联关系或者所述间接关联关系,将多个所述目标数据表聚类为多种类别;
根据多种所述类别所包括的所述目标数据表的第一关联数量和第二关联数量,构建中间层数据表和至少一个外层数据表;
组合所述中间层数据表和至少一个所述外层数据表,得到所述中间数据表。
7.根据权利要求6所述的方法,其特征在于,所述构建中间层数据表,包括:
针对每一种所述类别,根据所述类别包括的每一个所述目标数据表的第一关联数量和第二关联数量,在预设关联层级内计算每一个所述目标数据表的关联数量;
为每一个所述类别选择关联数量最大的目标数据表;
根据每一个所述类别中关联数量最大的目标数据表的字段,构建所述中间层数据表中的字段。
8.根据权利要求7所述的方法,其特征在于,所述构建至少一个外层数据表,包括:
针对每一个所述类别,循环执行下述步骤N1至N4,满足循环停止条件,
N1:从所述类别中选择未被选择过的关联数量最小的目标数据表;
N2:根据当前关联数量最小的目标数据表和关联数量最大的目标数据表中的字段,构建临时数据表中的字段;
N3:结合所述中间层数据表的字段和所述临时数据表的字段,计算所述类别的关联度;
N4:判断所述关联度是否满足预设的关联条件,如果是,则确定所述临时数据表为所述类别的外层数据表,并结束循环;否则,执行步骤N1。
9.根据权利要求8所述的方法,其特征在于,步骤N3,包括:
在预设关联层级内,确定所述中间层数据表的字段和所述临时数据表的字段所关联的目标数据表的第三关联数量;
根据所述第三关联数量和所述目标数据表的总数量,计算所述类别的关联度。
10.一种处理数据的装置,其特征在于,包括:确定关联关系模块、构建中间表模块和处理数据模块;其中,
所述确定关联关系模块,用于获取数据仓库中多个目标数据表以及多个所述目标数据表之间存在的直接关联关系或者间接关联关系;
所述构建中间表模块,用于根据多个所述目标数据表之间存在的所述直接关联关系或者所述间接关联关系以及所述目标数据表包括的字段,为多个所述目标数据表构建中间数据表;
所述处理数据模块,用于在接收到针对多个所述目标数据表的处理请求时,从所述中间数据表中查找与所述处理请求相关的数据;如果查找结果指示所述数据全部存储于所述中间数据表,基于所述中间数据表处理所述数据;如果查找结果指示所述数据部分存储于所述中间数据表,基于所述中间数据表,从多个所述数据表中查找与所述处理请求相关的数据,并处理所述数据。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110349235.1A CN113111084B (zh) | 2021-03-31 | 2021-03-31 | 一种处理数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110349235.1A CN113111084B (zh) | 2021-03-31 | 2021-03-31 | 一种处理数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113111084A true CN113111084A (zh) | 2021-07-13 |
CN113111084B CN113111084B (zh) | 2024-06-18 |
Family
ID=76713247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110349235.1A Active CN113111084B (zh) | 2021-03-31 | 2021-03-31 | 一种处理数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113111084B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961569A (zh) * | 2021-12-22 | 2022-01-21 | 上海柯林布瑞信息技术有限公司 | 一种医疗数据etl任务同步方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015184782A1 (zh) * | 2014-10-22 | 2015-12-10 | 中兴通讯股份有限公司 | 数据查询方法及装置 |
CN109388654A (zh) * | 2017-08-04 | 2019-02-26 | 北京京东尚科信息技术有限公司 | 一种查询数据表的方法和装置 |
CN110147407A (zh) * | 2017-09-29 | 2019-08-20 | 华为技术有限公司 | 一种数据处理方法、装置及数据库管理服务器 |
CN111666347A (zh) * | 2019-03-07 | 2020-09-15 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置与设备 |
CN111708779A (zh) * | 2020-06-11 | 2020-09-25 | 中国建设银行股份有限公司 | 一种数据管理方法、***、管理设备及存储介质 |
-
2021
- 2021-03-31 CN CN202110349235.1A patent/CN113111084B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015184782A1 (zh) * | 2014-10-22 | 2015-12-10 | 中兴通讯股份有限公司 | 数据查询方法及装置 |
CN109388654A (zh) * | 2017-08-04 | 2019-02-26 | 北京京东尚科信息技术有限公司 | 一种查询数据表的方法和装置 |
CN110147407A (zh) * | 2017-09-29 | 2019-08-20 | 华为技术有限公司 | 一种数据处理方法、装置及数据库管理服务器 |
CN111666347A (zh) * | 2019-03-07 | 2020-09-15 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置与设备 |
CN111708779A (zh) * | 2020-06-11 | 2020-09-25 | 中国建设银行股份有限公司 | 一种数据管理方法、***、管理设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961569A (zh) * | 2021-12-22 | 2022-01-21 | 上海柯林布瑞信息技术有限公司 | 一种医疗数据etl任务同步方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113111084B (zh) | 2024-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108536650B (zh) | 生成梯度提升树模型的方法和装置 | |
CN109614402B (zh) | 多维数据查询方法和装置 | |
CN109901987B (zh) | 一种生成测试数据的方法和装置 | |
CN111209347B (zh) | 一种混合属性数据聚类的方法和装置 | |
CN111461583B (zh) | 一种库存盘点方法和装置 | |
CN111401684A (zh) | 一种任务处理的方法和装置 | |
CN113111084B (zh) | 一种处理数据的方法和装置 | |
CN110851343A (zh) | 一种基于决策树的测试方法和装置 | |
CN111309455A (zh) | 一种视图节点布局的方法和*** | |
CN113326305A (zh) | 一种处理数据的方法和装置 | |
CN113760969A (zh) | 一种基于ElasticSearch的数据查询方法和装置 | |
CN112052152A (zh) | 一种模拟测试的方法和装置 | |
CN112667368A (zh) | 一种任务数据处理方法和装置 | |
CN114490400A (zh) | 一种处理测试用例的方法和装置 | |
CN113066479B (zh) | 一种评测模型的方法和装置 | |
CN113626472A (zh) | 一种处理订单数据的方法和装置 | |
CN113282489A (zh) | 一种接口测试方法和装置 | |
CN110109919B (zh) | 确定逻辑信息的方法和装置 | |
CN113448652A (zh) | 一种请求处理方法和装置 | |
CN112395510A (zh) | 基于活跃度确定目标用户的方法和装置 | |
CN112711588A (zh) | 多表连接的方法和装置 | |
CN112926907A (zh) | 一种仓库库存布局方法和装置 | |
CN110880059A (zh) | 批次号生成方法和装置 | |
CN113722548B (zh) | 一种业务***中引用关系的处理方法和装置 | |
CN113283923B (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 |