支持左外连接的应用驱动数据生成中依赖关系生成方法及系统技术方案

技术编号:30148577 阅读:15 留言:0更新日期:2021-09-25 14:54
本发明专利技术公开了一种支持左外连接的应用驱动数据生成中依赖关系生成方法,包括如下步骤:分析主键状态,对于给定的数据库结构及原始查询语句,计算左外连接中主键列所在查询子树的查询结果,标记主键的留存状态,并对主键的留存状态进行统计;计算主键过滤比例,根据给定的左外连接约束计算每种状态的主键过滤比例;填充外键,根据过滤比例随机无重复地填充外键,并在处理过程中采用溢写文件的方式压缩内存使用量。本发明专利技术还公开了实现上述方法的系统。相比于现有技术,本发明专利技术具有特征提取优势,真实性约束优势,数据压缩优势。数据压缩优势。数据压缩优势。

【技术实现步骤摘要】
支持左外连接的应用驱动数据生成中依赖关系生成方法及系统


[0001]本专利技术属于数据库技术以及数据合成
,尤其涉及一种支持左外连接的应用驱动数据生成中依赖关系生成方法及系统。

技术介绍

[0002]目前,随着网络的发展和个人终端的普及,数据量呈现明显的增长趋势。与此同时,电商、社交媒体的网络平台对数据的分析需求也在不断增加。在这些新场景、新需求中,对数据库重新进行性能评测成为需要面临的一种新的挑战。而在数据库性能评测中,负载生成是一个重要的环节。无论是对于新的数据库组件,还是新的数据负载,模拟具有所需负载特征的数据库实例都有着重要的意义。
[0003]在生成所需负载时,一个重要的需求是控制查询的中间结果集的大小。参考文献[1]通过启发式方法得到多个查询实例,可以较为有效地得到预期大小的查询实例,但难以实现生成的并行化。相似的工作还有参考文献[3,6]。除了启发式的方法,参考文献[2]采用了随机抽样和剪枝的技术,也可以在一定程度上满足输出结果集的大小需求,但由于这一方法不考虑查询负载,生成的查询实例与真实查询的一致性难以保证。参考文献[4

5]则是通过已知输出,反向得到对应的查询。这些工作都只能生成较为简单的查询模型,无法生成含有复杂连接条件的查询实例。相对的,参考文献[7

9]则是在提供数据特征的基础上,采用不同方法生成查询,但难以保证生成的查询与实际查询性能接近。
[0004]因此,由于难以并行化,生成结果真实性低,生成的查询较为简单等原因,自动生成的负载目前还难以实用化,仅能利用已有测试基准或人工模拟负载进行测试。而正确选取已有负载或人工构建负载均对测试人员的专业性提出了很高的要求,需要测试人员对测试场景、测试需求和数据库原理均有较深的理解。
[0005]目前常见的已有负载有很多,而不同的负载针对的是不同的应用场景。例如,针对在线事务处理数据库的负载有TPC

C、TPC

E、SmallBank等,此类负载主要包含读写事务,根据针对的应用业务,复杂程度有所不同。针对在线分析处理数据库的负载有TPC

H,TPC

C和SSB等,其负载主要是复杂查询,包含大规模扫描、多表连接、聚合等。除了针对这两种主要数据库功能的负载,还有混合事务处理和分析处理的CH

benCHmark,评测吞吐能力的YCSB等负载。虽然不同的负载已经包含了大量的应用场景,但实际生产环境中的负载依然与已有负载有着较大的差异,也即,已有负载往往不能有效地体现需求场景中的数据特征。即便存在相近的已有负载,由于数据特征难以精确描述,测试人员也不一定能准确选择正确的负载。因此,利用已有负载得到的评测结果可能不具有很大的现实意义。
[0006]基于这一问题,采用负载生成的方式得到精确对应应用场景的负载具有重要的意义。然而,正如前文所述,目前负载生成仍然存在如下的关键问题:
[0007]1.数据生成过程中难以满足基数约束,即控制中间结果集的大小,常需要维护庞大且复杂的中间状态。
[0008]2.生成结果的真实性难以保证,生成的效率较为低下。
[0009]据此对问题进行定义:
[0010]定义1

负载真实性:生成的模拟负载应当与真实负载高度相似。即通过模拟负载获取的测试结果和真实负载下的运行结果应当相近或一致。
[0011]定义2

满足基数约束:对于查询树中包含左外连接的子节点,需要保证其中间结果满足需求大小和不匹配的比例,以控制算子的执行代价。

技术实现思路

[0012]为了解决现有技术存在的不足,本专利技术的目的是提出一种支持左外连接的应用驱动数据生成中依赖关系生成方法及系统,通过计算约束,求解优化问题的方式给出一个控制左外连接中间结果集大小的有效解决方案,并通过随机算法控制生成实例的随机性,同时也通过压缩数据的方式提高了生成效率。
[0013]在本专利技术中,负载真实性主要指在填充外键时保证结果中正常连接的比例和因无法匹配导致的空值的比例与真实环境下一致。
[0014]在本专利技术中,复杂查询主要指同时含有连接和选择算子的查询,尤其指在左外连接下的查询。在该种情形下,外键的连接往往不是一一对应的,因此无法简单确定其连接数量,即中间结果集的大小。所以,控制外键的连接以解决上述负载真实性和满足基数约束两个问题成为了关键,同时也是一个难点。
[0015]本专利技术提出了一种支持左外连接的应用驱动数据生成中依赖关系的生成方法,所述方法包括如下步骤:
[0016]步骤一、分析主键状态:对于给定的数据库结构及原始查询语句,计算左外连接所在查询子树的查询结果,标记主键的留存状态,并对主键的留存状态进行统计。
[0017]步骤二、计算主键过滤比例:根据给定输入的左外连接约束,基于计算规则构造过滤比例所应满足的线性约束关系,在此基础上优化过滤比例以达到均匀过滤。
[0018]步骤三、填充外键:根据过滤比例,随机无重复地生成外键,并在处理过程中采用溢写文件的方式压缩计算数据量。其中,所述随机无重复地生成外键,采用的是基于Fisher

Yates Shuffle的随机生成算法,此算法的时间复杂度为线性复杂度,可表示为O(n),n为需要生成的长度,且无额外空间开销。
[0019]步骤一中,所述给定的数据库结构包括数据库表项、表项各列属性、各属性列的数据分布等;所述原始查询语句包括查询算子、查询属性列、查询表等;所述查询结果包括留存主键、数据规模、主键的具体数据等;所述主键的留存状态包括留存、不留存;所述主键的留存状态采用位图的形式保存其结果,并保存为表的形式;所述留存状态的相关统计结果包括数据占整体比例、留存状态、对应的数据内容等。
[0020]步骤二中,所述输入的左外连接约束包括主键留存统计结果和过滤比例等,其中,所述主键的留存统计结果需要根据左外连接进行压缩,重新合并数据比例,以减少不必要的计算。所述基于计算规则构造的线性约束关系,需保证各列均满足以下条件:在对应列中根据留存比例的加权求和获得的各留存状态的过滤比例与全列的过滤比例相等,即:
[0021][0022]其中,V
j
表示第j个状态列为

保留

的集合,对于一个V
j
中的位状态i,α
i
表示该状态在该状态列下的比例,p
i
表示第i个主键状态在该状态列下的过滤比例,β
j
表示第j列全列的过滤比例;所述状态列是指步骤一中保存的主键留存状态表中的列;
[0023]所述优化过滤比例的优化目标是最小化真实匹配比例和目标匹配比例的方差,即:
[0024][0025]其中,V
j
表示第j个状态列为

保留

的集合,对于一个V...

【技术保护点】

【技术特征摘要】
1.一种支持左外连接的应用驱动数据生成中依赖关系的生成方法,其特征在于,所述方法包括如下步骤:步骤一、分析主键状态:对于给定的数据库结构及原始查询语句,计算左外连接主键列所在查询子树的查询结果,标记主键的留存状态,并对主键的留存状态进行统计;步骤二、计算主键过滤比例:根据给定输入的左外连接约束,基于计算规则构造过滤比例所应满足的线性约束关系,在此基础上优化过滤比例以达到均匀过滤;步骤三、填充外键:根据过滤比例,随机无重复地生成外键,并在处理过程中采用溢写文件的方式压缩计算数据量。2.如权利要求1所述的方法,其特征在于,步骤一中,所述给定的数据库结构包括数据库表项、表项各列属性、各属性列的数据分布;所述原始查询语句包括查询算子、查询属性列、查询表;所述计算查询结果包括留存主键、数据规模、主键的具体数据;所述主键的留存状态包括留存、不留存。3.如权利要求1所述的方法,其特征在于,步骤一中,所述主键的留存状态采用位图的形式保存其结果,并保存为表的形式。4.如权利要求1所述的方法,其特征在于,步骤二中,所述输入的左外连接约束包括主键留存统计结果和过滤比例;所述主键留存统计结果需要根据左外连接进行压缩,重新合并数据比例,以减少不必要的计算。5.如权利要求1所述的方法,其特征在于,步骤二中,所述基于计算规则构造的线性约束关系,需保证各列均满足以下条件:在对应列中根据留存比例的加权求和获得的各留存状态的过滤比例与全列的过滤比例相等,即:其中,V
j
表示第j个状态列为

保留

的集合,对于一个V
j
中的位状态i,α
i
表示该状态在该状态列下的比例,p
i
表示第i个主键状态在该状态列下的过滤比例,β
j
表示第j列全列的过滤比例;所述状态列是指步骤一中保存的主键留存状态表中的列。6.如...

【专利技术属性】
技术研发人员:翁思扬王清帅张蓉
申请(专利权)人:华东师范大学
类型:发明
国别省市:

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

1