数据库的基数估算方法、装置、设备及存储介质制造方法及图纸

技术编号:30328458 阅读:20 留言:0更新日期:2021-10-10 00:23
本发明专利技术提供一种数据库的基数估算方法、装置、设备及存储介质,方法包括,转化数据库为分布式数据库,分布式数据库包括N个计算节点,每个计算节点包括预设数量的数据块;分别对每个数据块添加相关联的辅助文件;接收基数查询指令,根据基数查询指令确定目标计算节点;遍历目标计算节点中的辅助文件,根据辅助文件对应的数据特征信息,确定目标计算节点中的数据块的基数最大值;基于预设估算公式,根据基数最大值和数据库中其他计算节点的节点基数值,估算数据库的基数值,仅通过扫描修改对应的计算节点,而且也仅需要扫描计算节点中的辅助文件即可,使得大大的提高了计算速度,有效地提高了数据库基数的估算效率。了数据库基数的估算效率。了数据库基数的估算效率。

【技术实现步骤摘要】
数据库的基数估算方法、装置、设备及存储介质


[0001]本专利技术涉及大数据
,尤其涉及一种数据库的基数估算方法、装置、设备及存储介质。

技术介绍

[0002]基数是指数据集中不重复元素的个数,在数据库中,常称作DISTINCT值。基数计算一般有两类:精确计算和近似计算。在大数据背景下,精确计算往往需要巨量内存;近似计算可以在精度可控范围内,把内存占用降到KB级别。面对海量数据,100%精确的值和95%精确的值往往价值相近,但牺牲少量精度可以减少资源占用并且换来高速计算。由此来看,近似计算更具有现实意义。
[0003]基数估计最常用的方法是基于哈希分组的HLL算法,HLL算法从数学上保证了精度偏差可控且内存占用可控。HLL算法的处理流程大致分四步:第一步,对全部数据,逐个计算哈希值,根据哈希值更新对应分组内的统计结果;第二步,如果有多个数据源,合并各个数据源的统计结果;第三步,根据估算公式,取出全部分组的中间统计结果,计算出基数估算值;第四步,进行结果微调,同时计算统计偏差值。
[0004]在有数据发生变化的情况下,仍然还需要执行整个的处理流程,需要扫描到全部数据进行修改,而扫描数据涉及到外存访问,在大数据环境下,过多外存访问不但影响计算速度,还会造成服务器上的其它应用不能正常运行,导致基数计算效率相对较低。

技术实现思路

[0005]本专利技术提供一种数据库的基数估算方法、装置、设备及存储介质,用以解决现有技术中数据库计算计算效率低的缺陷,实现快速、高效的完成对数据库基数的计算
[0006]本专利技术提供一种数据库的基数估算方法,包括:
[0007]转化数据库为分布式数据库,所述分布式数据库包括N个计算节点,每个所述计算节点包括预设数量的数据块,N>1,且为自然数;
[0008]分别对每个所述数据块添加相关联的辅助文件,所述辅助文件携带对应数据块的数据特征信息;
[0009]接收基数查询指令,根据所述基数查询指令确定目标计算节点,所述目标计算节点为数据块修改后的计算节点;
[0010]遍历所述目标计算节点中的辅助文件,根据所述辅助文件对应的数据特征信息,确定所述目标计算节点中的数据块的基数最大值;
[0011]基于预设估算公式,根据所述基数最大值和所述数据库中其他计算节点的节点基数值,估算所述数据库的基数值。
[0012]根据本专利技术提供的一种数据库的基数估算方法,所述接收基数查询指令之前,还包括:
[0013]接收数据修改指令,所述数据修改指令包括数据修改方式和修改数据类型;
[0014]根据所述修改数据类型,确定修改计算节点;
[0015]按照所述修改方式,在所述修改计算节点中对数据块进行修改,所述修改方式包括插入、更新和删除中的至少一项。
[0016]根据本专利技术提供的一种数据库的基数估算方法,所述修改方式为插入时,所述在所述修改计算节点中对数据块进行修改,包括:
[0017]通过HLL算法生成插入数据的哈希值;
[0018]根据所述哈希值生成插入数据对应的数据块;
[0019]遍历所述插入数据对应的数据块,生成相关联的辅助文件。
[0020]根据本专利技术提供的一种数据库的基数估算方法,所述修改方式为更新时,所述在所述修改计算节点中对数据块进行修改,包括:
[0021]确定待更新数据块位置;
[0022]在所述待更新数据块位置,替换所述待更新数据块为修改数据块,并遍历所述修改数据块以更新相关联的辅助文件。
[0023]根据本专利技术提供的一种数据库的基数估算方法,所述修改方式为删除时,所述在所述修改计算节点中对数据块进行修改,包括:
[0024]识别待删除数据块;
[0025]删除所述待删除数据块和与所述待删除数据块相关联的辅助文件。
[0026]根据本专利技术提供的一种数据库的基数估算方法,所述数据块内为真实数据信息,所述辅助文件内为辅助基数估算辅助信息。
[0027]根据本专利技术提供的一种数据库的基数估算方法,所述数据块的大小为GB级别,所述辅助文件的大小为KB级别。
[0028]本专利技术还提供一种数据库的基数估算装置,其特征在于,包括:
[0029]转化模块,用于转化数据库为分布式数据库,所述分布式数据库包括N个计算节点,每个所述计算节点包括预设数量的数据块,N>1,且为自然数;
[0030]关联模块,用于分别对每个所述数据块添加相关联的辅助文件,所述辅助文件携带对应数据块的数据特征信息;
[0031]查询模块,用于接收基数查询指令,根据所述基数查询指令确定目标计算节点,所述目标计算节点为数据块修改后的计算节点;
[0032]遍历模块,用于遍历所述目标计算节点中的辅助文件,根据所述辅助文件对应的数据特征信息,确定所述目标计算节点中的数据块的基数最大值;
[0033]估算模块,用于基于预设估算公式,根据所述基数最大值和所述数据库中其他计算节点的节点基数值,估算所述数据库的基数值。
[0034]本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据库的基数估算方法的步骤。
[0035]本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据库的基数估算方法的步骤。
[0036]本专利技术提供的一种数据库的基数估算方法、装置、设备及存储介质,方法通过转化数据库为分布式数据库,分布式数据库包括N个计算节点,每个计算节点包括预设数量的数
据块,N>1,且为自然数;分别对每个数据块添加相关联的辅助文件,辅助文件携带对应数据块的数据特征信息;接收基数查询指令,根据基数查询指令确定目标计算节点,目标计算节点为数据块修改后的计算节点;遍历目标计算节点中的辅助文件,根据辅助文件对应的数据特征信息,确定目标计算节点中的数据块的基数最大值;基于预设估算公式,根据基数最大值和数据库中其他计算节点的节点基数值,估算数据库的基数值的方式,使得再数据库数据发生变化时,无需重新对整个数据库进行扫描,仅通过扫描对应的计算节点即可,而且也仅需要扫描计算节点中的辅助文件即可,由于辅助文件的大小远远小于数据块文件的大小,使得大大的提高了计算速度,有效地提高了数据库基数的估算效率。
附图说明
[0037]为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038]图1是本专利技术实施例提供的数据库的基数估算方法的流程示意图;
[0039]图2是本专利技术实施例提供的数据库的基数估算装置的结构示意图;
[0040]图3是本专利技术实施例提供的电子设备的结构本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库的基数估算方法,其特征在于,包括:转化数据库为分布式数据库,所述分布式数据库包括N个计算节点,每个所述计算节点包括预设数量的数据块,N>1,且为自然数;分别对每个所述数据块添加相关联的辅助文件,所述辅助文件携带对应数据块的数据特征信息;接收基数查询指令,根据所述基数查询指令确定目标计算节点,所述目标计算节点为数据块修改后的计算节点;遍历所述目标计算节点中的辅助文件,根据所述辅助文件对应的数据特征信息,确定所述目标计算节点中的数据块的基数最大值;基于预设估算公式,根据所述基数最大值和所述数据库中其他计算节点的节点基数值,估算所述数据库的基数值。2.根据权利要求1所述的数据库的基数估算方法,其特征在于,所述接收基数查询指令之前,还包括:接收数据修改指令,所述数据修改指令包括数据修改方式和修改数据类型;根据所述修改数据类型,确定修改计算节点;按照所述修改方式,在所述修改计算节点中对数据块进行修改,所述修改方式包括插入、更新和删除中的至少一项。3.根据权利要求2所述的数据库的基数估算方法,其特征在于,所述修改方式为插入时,所述在所述修改计算节点中对数据块进行修改,包括:通过HLL算法生成插入数据的哈希值;根据所述哈希值生成插入数据对应的数据块;遍历所述插入数据对应的数据块,生成相关联的辅助文件。4.根据权利要求2所述的数据库的基数估算方法,其特征在于,所述修改方式为更新时,所述在所述修改计算节点中对数据块进行修改,包括:确定待更新数据块位置;在所述待更新数据块位置,替换所述待更新数据块为修改数据块,并遍历所述修改数据块以更新相关联的辅助文件。5.根据权利要求2所述的数据库的基数估...

【专利技术属性】
技术研发人员:贺臻王小玉康金怀刘二查
申请(专利权)人:北京东方国信科技股份有限公司
类型:发明
国别省市:

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

1