数据处理方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:32505452 阅读:19 留言:0更新日期:2022-03-02 10:17
本公开实施例公开了一种数据处理方法、装置、电子设备及可读存储介质,包括:获取数据表;根据所述数据表确定根节点,所述根节点具有属性范围A和上下文T;根据在所述上下文T中,所述属性范围A中的属性两两之间的相关性,确定所述根节点的子节点;将所述子节点作为当前节点N,确定所述当前节点N的子节点;将所述当前节点的子节点作为所述当前节点N,重复所述确定所述当前节点N的子节点的步骤,直到所述当前节点N是叶子节点;基于所述根节点、所述叶子节点和所述根节点与所述叶子节点之间的节点,生成所述数据表的联合概率分布模型。生成所述数据表的联合概率分布模型。生成所述数据表的联合概率分布模型。

【技术实现步骤摘要】
数据处理方法、装置、电子设备及可读存储介质


[0001]本公开涉及计算机
,具体涉及一种数据处理方法、装置、电子设备及可读存储介质。

技术介绍

[0002]基数估计是数据库查询优化的重要方法,直接关系数据库查询计划生成效果并影响数据库查询执行性能,具有非常重要的意义。在进行数据库查询时,基于查询请求确定查询计划并返回查询结果,不同查询计划的查询结果命中率不同,在进行查询计划优化时,希望能够快速估计每种查询计划命中的记录数(本文中称为“基数”),从而选择优选的查询计划。
[0003]可以为数据库中的数据表创建表中属性的联合概率分布(Probability Distribution Function,PDF)模型,用于估计每种查询计划对给定查询请求返回的命中记录的基数。

技术实现思路

[0004]为了解决相关技术中的问题,本公开实施例提供一种数据处理方法、装置、电子设备及可读存储介质。
[0005]第一方面,本公开实施例中提供了一种数据处理方法。
[0006]具体地,所述一种数据处理方法,包括:
[0007]获取数据表;
[0008]根据所述数据表确定根节点,所述根节点具有属性范围A和上下文T,所述属性范围A包括所述数据表中的多个属性,所述上下文T包括所述数据表中属性范围A对应的记录,所述根节点表示在所述上下文T中,所述属性范围A中各属性的联合概率分布;
[0009]根据在所述上下文T中,所述属性范围A中的属性两两之间的相关性,确定所述根节点的子节点;
[0010]将所述子节点作为当前节点N,确定所述当前节点N的子节点,包括:当所述当前节点N是概率节点时,根据在所述当前节点N的上下文T
N
中所述属性范围A
N
中的属性两两之间的相关性,确定所述当前节点N的子节点,当所述当前节点N是条件概率节点时,根据在所述当前节点N的上下文T
N
中所述当前节点的属性范围A
N
中的属性与所述当前节点N的条件C
N
中的属性两两之间的相关性,确定所述当前节点N的子节点;
[0011]将所述当前节点的子节点作为所述当前节点N,重复所述确定所述当前节点N的子节点的步骤,直到所述当前节点N是叶子节点;
[0012]基于所述根节点、所述叶子节点和所述根节点与所述叶子节点之间的节点,生成所述数据表的联合概率分布模型。
[0013]结合第一方面,本公开在第一方面的第一种实现方式中:
[0014]所述确定子节点,包括确定所述子节点的属性范围、条件、上下文;
[0015]所述将所述子节点作为当前节点N,包括将所述子节点的属性范围、条件、上下文作为所述当前节点的属性范围、条件、上下文;
[0016]所述子节点的属性范围是所述子节点的父节点的属性范围的子集,所述子节点的条件是所述子节点的父节点的属性范围的子集;
[0017]所述子节点的上下文是所述上下文T的子集;
[0018]当所述子节点是条件概率节点时,所述子节点表示在所述子节点的上下文中,所述子节点的属性范围中各属性依赖于所述子节点的条件的联合概率分布;当所述子节点是概率节点时,所述子节点表示在所述子节点的上下文中,所述子节点的属性范围中各属性的联合概率分布。
[0019]结合第一方面的第一种实现方式,本公开在第一方面的第二种实现方式中,所述概率节点是条件为空集的节点,所述条件概率节点是条件不为空集的节点。
[0020]结合第一方面的第一种实现方式,本公开在第一方面的第三种实现方式中,还包括:
[0021]如果所述当前节点N的条件为空集且所述当前节点N的属性范围中仅包括一个属性,或者如果所述当前节点N的条件不为空集且所述当前节点N的条件中的属性与所述当前节点N的属性范围中的属性均不相关,则确定所述当前节点为叶子节点。
[0022]结合第一方面,本公开在第一方面的第四种实现方式中,还包括:
[0023]所述确定子节点,包括确定所述子节点和所述子节点与所述子节点的父节点之间的关系,其中,根据所述子节点表示的联合概率分布,按照所述关系,能够确定所述子节点的父节点的联合概率分布。
[0024]结合第一方面,本公开在第一方面的第五种实现方式中,所述根据在所述上下文T中,所述属性范围A中的属性两两之间的相关性,确定所述根节点的子节点,包括:
[0025]将A-H作为所述根节点的第一子节点的属性范围,其中,H包括所述属性范围A中具有强相关性的多个属性;
[0026]将H作为所述根节点的第二子节点的属性范围,将A-H作为所述第二子节点的条件;
[0027]其中,所述第一子节点是概率节点,所述第二子节点是条件概率节点,所述根节点与所述第一子节点和所述第二子节点之间的关系为:基于所述第一子节点表示的联合概率分布与所述第二子节点表示的联合概率分布的乘积得到所述根节点表示的联合概率分布。
[0028]结合第一方面,本公开在第一方面的第六种实现方式中,当所述当前节点N是概率节点时,所述根据在所述当前节点N的上下文T
N
中所述当前节点N的属性范围A
N
中的属性两两之间的相关性,确定所述当前节点的子节点,包括,如果所述当前节点N的属性范围A
N
中的多个属性具有强相关性:
[0029]将A
N-H
N
作为所述当前节点N的第一子节点的属性范围,其中,H
N
包括所述属性范围A
N
中具有强相关性的多个属性;
[0030]将H
N
作为所述当前节点N的第二子节点的属性范围,将A
N-H
N
作为所述当前节点N的第二子节点的条件;
[0031]其中,所述第一子节点是概率节点,所述第二子节点是条件概率节点,所述当前节点N与所述第一子节点和所述第二子节点之间的关系为:基于所述第一子节点表示的联合
概率分布与所述第二子节点表示的联合概率分布的乘积得到所述当前节点N表示的联合概率分布。
[0032]结合第一方面,本公开在第一方面的第七种实现方式中,当所述当前节点N是概率节点时,所述根据在所述当前节点N的上下文T
N
中所述当前节点N的属性范围A
N
中的属性两两之间的相关性,确定所述当前节点的子节点,包括,如果所述当前节点N的属性范围A
N
中属性不具有强相关性但其中的多个但并非全部属性具有弱相关性:
[0033]将属性范围A
N
划分为多个属性范围A

j
,A

j
中的属性具有弱相关性或包含单个属性,不同A

j
中的属性是彼此独立的;
[0034]将A

j
作为所述当前节点N的第j个概率子节点的属性范本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,包括:获取数据表;根据所述数据表确定根节点,所述根节点具有属性范围A和上下文T,所述属性范围A包括所述数据表中的多个属性,所述上下文T包括所述数据表中属性范围A对应的记录,所述根节点表示在所述上下文T中,所述属性范围A中各属性的联合概率分布;根据在所述上下文T中,所述属性范围A中的属性两两之间的相关性,确定所述根节点的子节点;将所述子节点作为当前节点N,确定所述当前节点N的子节点,包括:当所述当前节点N是概率节点时,根据在所述当前节点N的上下文T
N
中所述属性范围A
N
中的属性两两之间的相关性,确定所述当前节点N的子节点,当所述当前节点N是条件概率节点时,根据在所述当前节点N的上下文T
N
中所述当前节点的属性范围A
N
中的属性与所述当前节点N的条件C
N
中的属性两两之间的相关性,确定所述当前节点N的子节点;将所述当前节点的子节点作为所述当前节点N,重复所述确定所述当前节点N的子节点的步骤,直到所述当前节点N是叶子节点;基于所述根节点、所述叶子节点和所述根节点与所述叶子节点之间的节点,生成所述数据表的联合概率分布模型。2.根据权利要求1所述的方法,其中:所述确定子节点,包括确定所述子节点的属性范围、条件、上下文;所述将所述子节点作为当前节点N,包括将所述子节点的属性范围、条件、上下文作为所述当前节点的属性范围、条件、上下文;所述子节点的属性范围是所述子节点的父节点的属性范围的子集,所述子节点的条件是所述子节点的父节点的属性范围的子集;所述子节点的上下文是所述上下文T的子集;当所述子节点是条件概率节点时,所述子节点表示在所述子节点的上下文中,所述子节点的属性范围中各属性依赖于所述子节点的条件的联合概率分布;当所述子节点是概率节点时,所述子节点表示在所述子节点的上下文中,所述子节点的属性范围中各属性的联合概率分布。3.根据权利要求2所述的方法,其中,所述概率节点是条件为空集的节点,所述条件概率节点是条件不为空集的节点。4.根据权利要求2所述的方法,还包括:如果所述当前节点N的条件为空集且所述当前节点N的属性范围中仅包括一个属性,或者如果所述当前节点N的条件不为空集且所述当前节点N的条件中的属性与所述当前节点N的属性范围中的属性均不相关,则确定所述当前节点为叶子节点。5.根据权利要求1所述的方法,其中:所述确定子节点,包括确定所述子节点和所述子节点与所述子节点的父节点之间的关系,其中,根据所述子节点表示的联合概率分布,按照所述关系,能够确定所述子节点的父节点的联合概率分布。6.根据权利要求1所述的方法,其中,所述根据在所述上下文T中,所述属性范围A中的属性两两之间的相关性,确定所述根节点的子节点,包括:
将A-H作为所述根节点的第一子节点的属性范围,其中,H包括所述属性范围A中具有强相关性的多个属性;将H作为所述根节点的第二子节点的属性范围,将A-H作为所述第二子节点的条件;其中,所述第一子节点是概率节点,所述第二子节点是条件概率节点,所述根节点与所述第一子节点和所述第二子节点之间的关系为:基于所述第一子节点表示的联合概率分布与所述第二子节点表示的联合概率分布的乘积得到所述根节点表示的联合概率分布。7.根据权利要求1所述的方法,其中,当所述当前节点N是概率节点时,所述根据在所述当前节点N的上下文T
N
中所述当前节点N的属性范围A
N
中的属性两两之间的相关性,确定所述当前节点的子节点,包括,如果所述当前节点N的属性范围A
N
中的多个属性具有强相关性:将A
N-H
N
作为所述当前节点N的第一子节点的属性范围,其中,H
N
包括所述属性范围A
N
中具有强相关性的多个属性;将H
N
作为所述当前节点N的第二子节点的属性范围,将A
N-H
N
作为所述当前节点N的第二子节点的条件;其中,所述第一子节点是概率节点,所述第二子节点是条件概率节点,所述当前节点N与所述第一子节点和所述第二子节点之间的关系为:基于所述第一子节点表示的联合概率分布与所述第二子节点表示的联合概率分布的乘积得到所述当前节点N表示的联合概率分布。8.根据权利要求1所述的方法,其中,当所述当前节点N是概率节点时,所述根据在所述当前节点N的上下文T
N
中所述当前节点N的属性范围A
N
中的属性两两之间的相关性,确定所述当前节点的子节点,包括,如果所述当前节点N的属性范围A
N
中属性不具有强相关性但其中的多个但并非全部属性具有弱相关性:将属性范围A
N
划分为多个属性范围A

j
,A

j
中的属性具有弱相关性或包含单个属性,不同A

j
中的属性是彼此独立的;将A

j
作为所述当前节点N的第j个概率子节点的属性范围;将所述当前节点N的上下文T
N
中对应于A

j
的部分作为所述第j个概率子节点的上下文,其中,所述当前节点N与所述当前节点N的概率子节点之间的关系为:基于所述当前节点N的概率子节点表示的联合概率分布的乘积得到所述当前节点N表示的联合概率分布。9.根据权利要求1所述的方法,其中,当所述当前节点N是概率节点时,所述根据在所述当前节点N的上下文T
N
中所述当前节点N的属性范围A
N
中的属性两两之间的相关性,确定所述当前节点的子节点,包括,如果所述当前节点N的属性范围A
N
中全部属性具有弱相关性:通过聚类方法将T
N
划分为多个上下文T
i
,作为所述当前节点的第i个概率子节点的上下文;将所述当前节点N的属性范围A
N
作为所述当前节点的第i个概率子节点的属性范围;其中,所述当前节点N与所述当前节点N的概率子节点之间的关系为:基于所述当前节点N的概率子节点表示的联合概率分布的和得到所述当前节点N表示的联合概率分布。10.根据权利要求1所述的方法,其中,当所述当前节点N是条件概率节点时,所述根据在所述当前节点N的上下文T
N
中,所述当前节点的属性范围A
N
中的属性与所述当前节点N的条件C
N
中的属性两两之间的相关性,确定所述当前节点N的子节点,包括:
以减小所述当前节点的属性范围A
N
中的属性与所述当前节点N的条件C
N
中的属性两两之间的相关性的方式,将T
N
划分为多个上下文T
i
,作为所述当前节点的第i个条件概率子节点的上下文;将所述当前节点N的属性范围A
N
作为所述当前节点的第i个条件概率子节点的属性范围;其中,所述当前节点N与所述当前节点N的条件概率子节点之间的关系为:基于所述当前节点N的条件概率子节点表示的联合概率分布的和得到所述当前节点N表示的联合概率分布。11.一种数据处理方法,包括:获取目标查询请求;根据所述目标查询请求确定目标数据表;使用根据权利要求1~10中任一项所述的方法,获取所述目标数据表的联合概率分布模型;使用所述目标数据表的联合概率分布模型,估计所述目标数据表中存在与所述目标查询请求匹配的记录的概率。12.根据权利要求11所述的方法,其中,所述目标查询请求的查询范围指定所述目标数据表中的一个或多个属性的取值范围,所述使用所述目标数据表的联合概率分布模型,估计所述目标数据表中存在与所述目标查询请求匹配的记录的概率,包括:基于所述查询范围,确定所述联合概率分布模型中的叶子节点的查询范围;根据所述叶子节点的查询范围确定所述叶子节点对应的概率值;根据所述叶子节点对应的概率值,确定所述根节点对应的概率值作为所述目标数据表中存在与所述目标查询请求匹配的记录的概率。13.根据权利要求12所述的方法,其中,所述基于所述查询范围,确定所述联合概率分布模型中的叶子节点的查询范围,包括:将所述目标查询请求的查询范围作为根节点的查询范围;根据所述联合概率分布模型中节点的类型和所述节点的查询范围,确定所述节点的子节点的查询范围。14.根据权利要求13所述的方法,其中,所述根据所述联合概率分布模型中节点的类型和所述节点的查询范围,确定所述节点的子节点的查询范围,包括:当所述节点为查询范围为R的概率节点且所述节点不是分解节点时,所述节点的子节点的查询范围为R,其中,当所述节点的子节点包括概率节点和条件概率节点时,所述节点称为分解节点。15.根据权利要求13所述的方法,其中,所述根据所述联合概率分布模型中节点的类型和所述节点的查询范围,确定所述节点的子节点的查询范围,包括:当所述节点为查询范围为R的分解节点时,所述节点的条件概率子节点的查询范围为R,根据所述节点的条件概率子节点对应的叶子节点的上下文条件独立性成立的有效范围和所述查询范围,确定所述节点的概率子节点的查询范围。16.根据权利要求15所述的方法,其中,所述根据所述节点的条件概率子节点对应的叶子节点的上下文条件独立性成立的有效范围和所述查询范围,确定所述节点的概率子节点
的查询范围,包括:对于所述节点的条件概率子节点对应的每个叶子节点,求所述叶子节点的上下文条件独立性成立的有效范围与所述查询范围R的交集,根据所述交集确定所述节点的概率子节点的查询范围。17.根据权利要求13所述的方法,其中,所述根据所述联合概率分布模型中节点的类型和所述节点的查询范围,确定所述节点的子节点的查询范围,包括:当所述节点为查询范围为R的条件概率节点时,如果所述节点与所述节点的子节点之间的关系为基于所述节点的子节点表示的联合概率分布的和得到所述节点表示的联合概率分布,则所述节点的子节点的查询范围为R。18.根据权利要求12所述的方法,其中,所述根据所述叶子节点对应的概率值,确定所述根节点对应的概率值作为所述目标数据表中存在与所述目标查询请求匹配的记录的概率,包括:根据所述叶子节点对应的概率值以及所述联合概率分布模型中节点与子节点之间的关系,按照从叶子节点向根节点的方向递推得到所述根节点对应的概率值。19.根据权利要求12所述的方法,还包括:根据所述目标数据表中存在与所述目标查询请求匹配的记录的概率和所述目标数据表中记录的数量,估计所述目标数据表中与所述目标查询请求匹配的记录的数量。20.根据权利要求12所述的方法,其中,所述根据所述目标查询请求确定目标数据表,包括:确定与所述目标查询请求相关的多个目标数据表;根据所述目标查询请求连接所述多个目标数据表得到所述目标数据表。21.一种数据处理方法,包括:将数据表集合中的数据表分组,在同一数据表组中:任一数据表与任一其他数据表之间具有直接连接关系或具有经由所述数据表组中的另一数据表的间接连接关系,并且所述任一数据表中的至少一个属性与直接连接到所述任一数据表的至少一个其他数据表中的至少一个属性强相关;属于不同数据表组的两个数据表之间不具有连接关系或者虽然具有连接关系但不具有强相关的属性;获取查询请求;确定与所述查询请求相关的一个或多个目标数据表组和所述目标数据表组的相应子查询请求;将所述目标数据表组的相应子查询请求作为所述目标查询请求,将所述目标数据表组中数据表的全外连接表TT
i
作为所述目标数据表,使用根据权利要求11~20中任一项所述的方法,估计所述目标数据表组的全外连接表TT
i
中存在与所述目标数据表组的相应子查询请求匹配的记录的概率;根据所述一个或多个目标数据表组各自的全外连接表TT
i
中存在与所述目标数据表组的相应子查询请求匹配的记录的概率,确定所述一个或多个目标数据表组的所有数据表的全外连接表NN中存在与所述查询请求匹配的记录的概率。22.根据权利要求21所述的方法,其中,所述确定所述目标数据表组的相应子查询请求,包括:
根据所述查询请求确定所述目标数据表组中的数据表的连接关系;根据所述查询请求和所述连接关系,确定所述子查询请求。23.根据权利要求21所述的方法,其中,所述确定所述目标数据表组的相应子查询请求,包括:确定所述目标数据表组中被所述查询请求涉及的多个数据表;根据所述查询请求、所述多个数据表中的记录在所述目标数据表组的全外连接表TT
i
中的出现次数、所述全外连接表TT
i
中的记录在所述一个或多个目标数据表组的全外连接表NN中的出现次数,确定所述相应子查询请求。24.根据权利要求23所述的方法,还包括:根据所述多个数据表中的记录在所述目标数据表组的全外连接表TT
i
中的出现次数、所述全外连接表TT
i
中的记录在所述全外连接表NN中的出现次数,...

【专利技术属性】
技术研发人员:朱鎔吴子牛普法德勒
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1