CN113468179B - 数据库的基数估算方法、装置、设备及存储介质 - Google Patents
数据库的基数估算方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113468179B CN113468179B CN202110779125.9A CN202110779125A CN113468179B CN 113468179 B CN113468179 B CN 113468179B CN 202110779125 A CN202110779125 A CN 202110779125A CN 113468179 B CN113468179 B CN 113468179B
- Authority
- CN
- China
- Prior art keywords
- data
- data block
- database
- base
- computing node
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004364 calculation method Methods 0.000 claims abstract description 42
- 238000012986 modification Methods 0.000 claims description 68
- 230000004048 modification Effects 0.000 claims description 68
- 238000003780 insertion Methods 0.000 claims description 11
- 230000037431 insertion Effects 0.000 claims description 11
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012217 deletion Methods 0.000 claims description 9
- 230000037430 deletion Effects 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据库的基数估算方法、装置、设备及存储介质,方法包括,转化数据库为分布式数据库,分布式数据库包括N个计算节点,每个计算节点包括预设数量的数据块;分别对每个数据块添加相关联的辅助文件;接收基数查询指令,根据基数查询指令确定目标计算节点;遍历目标计算节点中的辅助文件,根据辅助文件对应的数据特征信息,确定目标计算节点中的数据块的基数最大值;基于预设估算公式,根据基数最大值和数据库中其他计算节点的节点基数值,估算数据库的基数值,仅通过扫描修改对应的计算节点,而且也仅需要扫描计算节点中的辅助文件即可,使得大大的提高了计算速度,有效地提高了数据库基数的估算效率。
Description
技术领域
本发明涉及大数据技术领域,尤其涉及一种数据库的基数估算方法、装置、设备及存储介质。
背景技术
基数是指数据集中不重复元素的个数,在数据库中,常称作DISTINCT值。基数计算一般有两类:精确计算和近似计算。在大数据背景下,精确计算往往需要巨量内存;近似计算可以在精度可控范围内,把内存占用降到KB级别。面对海量数据,100%精确的值和95%精确的值往往价值相近,但牺牲少量精度可以减少资源占用并且换来高速计算。由此来看,近似计算更具有现实意义。
基数估计最常用的方法是基于哈希分组的HLL算法,HLL算法从数学上保证了精度偏差可控且内存占用可控。HLL算法的处理流程大致分四步:第一步,对全部数据,逐个计算哈希值,根据哈希值更新对应分组内的统计结果;第二步,如果有多个数据源,合并各个数据源的统计结果;第三步,根据估算公式,取出全部分组的中间统计结果,计算出基数估算值;第四步,进行结果微调,同时计算统计偏差值。
在有数据发生变化的情况下,仍然还需要执行整个的处理流程,需要扫描到全部数据进行修改,而扫描数据涉及到外存访问,在大数据环境下,过多外存访问不但影响计算速度,还会造成服务器上的其它应用不能正常运行,导致基数计算效率相对较低。
发明内容
本发明提供一种数据库的基数估算方法、装置、设备及存储介质,用以解决现有技术中数据库计算计算效率低的缺陷,实现快速、高效的完成对数据库基数的计算。
本发明提供一种数据库的基数估算方法,包括:
转化数据库为分布式数据库,所述分布式数据库包括N个计算节点,每个所述计算节点包括预设数量的数据块,N>1,且为自然数;
分别对每个所述数据块添加相关联的辅助文件,所述辅助文件携带对应数据块的数据特征信息;
接收基数查询指令,根据所述基数查询指令确定目标计算节点,所述目标计算节点为数据块修改后的计算节点;
遍历所述目标计算节点中的辅助文件,根据所述辅助文件对应的数据特征信息,确定所述目标计算节点中的数据块的基数最大值;
基于预设估算公式,根据所述基数最大值和所述数据库中其他计算节点的节点基数值,估算所述数据库的基数值。
根据本发明提供的一种数据库的基数估算方法,所述接收基数查询指令之前,还包括:
接收数据修改指令,所述数据修改指令包括数据修改方式和修改数据类型;
根据所述修改数据类型,确定修改计算节点;
按照所述修改方式,在所述修改计算节点中对数据块进行修改,所述修改方式包括插入、更新和删除中的至少一项。
根据本发明提供的一种数据库的基数估算方法,所述修改方式为插入时,所述在所述修改计算节点中对数据块进行修改,包括:
通过HLL算法生成插入数据的哈希值;
根据所述哈希值生成插入数据对应的数据块;
遍历所述插入数据对应的数据块,生成相关联的辅助文件。
根据本发明提供的一种数据库的基数估算方法,所述修改方式为更新时,所述在所述修改计算节点中对数据块进行修改,包括:
确定待更新数据块位置;
在所述待更新数据块位置,替换所述待更新数据块为修改数据块,并遍历所述修改数据块以更新相关联的辅助文件。
根据本发明提供的一种数据库的基数估算方法,所述修改方式为删除时,所述在所述修改计算节点中对数据块进行修改,包括:
识别待删除数据块;
删除所述待删除数据块和与所述待删除数据块相关联的辅助文件。
根据本发明提供的一种数据库的基数估算方法,所述数据块内为真实数据信息,所述辅助文件内为辅助基数估算辅助信息。
根据本发明提供的一种数据库的基数估算方法,所述数据块的大小为GB级别,所述辅助文件的大小为KB级别。
本发明还提供一种数据库的基数估算装置,其特征在于,包括:
转化模块,用于转化数据库为分布式数据库,所述分布式数据库包括N个计算节点,每个所述计算节点包括预设数量的数据块,N>1,且为自然数;
关联模块,用于分别对每个所述数据块添加相关联的辅助文件,所述辅助文件携带对应数据块的数据特征信息;
查询模块,用于接收基数查询指令,根据所述基数查询指令确定目标计算节点,所述目标计算节点为数据块修改后的计算节点;
遍历模块,用于遍历所述目标计算节点中的辅助文件,根据所述辅助文件对应的数据特征信息,确定所述目标计算节点中的数据块的基数最大值;
估算模块,用于基于预设估算公式,根据所述基数最大值和所述数据库中其他计算节点的节点基数值,估算所述数据库的基数值。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据库的基数估算方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据库的基数估算方法的步骤。
本发明提供的一种数据库的基数估算方法、装置、设备及存储介质,方法通过转化数据库为分布式数据库,分布式数据库包括N个计算节点,每个计算节点包括预设数量的数据块,N>1,且为自然数;分别对每个数据块添加相关联的辅助文件,辅助文件携带对应数据块的数据特征信息;接收基数查询指令,根据基数查询指令确定目标计算节点,目标计算节点为数据块修改后的计算节点;遍历目标计算节点中的辅助文件,根据辅助文件对应的数据特征信息,确定目标计算节点中的数据块的基数最大值;基于预设估算公式,根据基数最大值和数据库中其他计算节点的节点基数值,估算数据库的基数值的方式,使得再数据库数据发生变化时,无需重新对整个数据库进行扫描,仅通过扫描对应的计算节点即可,而且也仅需要扫描计算节点中的辅助文件即可,由于辅助文件的大小远远小于数据块文件的大小,使得大大的提高了计算速度,有效地提高了数据库基数的估算效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据库的基数估算方法的流程示意图;
图2是本发明实施例提供的数据库的基数估算装置的结构示意图;
图3是本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图3描述本发明的数据库的基数估算方法、装置、设备及存储介质。
图1是本发明实施例提供的数据库的基数估算方法的流程示意图。
如图1所示,本发明实施例提供的一种数据库的基数估算方法,包括以下步骤:
101、转化数据库为分布式数据库,分布式数据库包括N个计算节点,每个计算节点包括预设数量的数据块,N>1,且为自然数。
具体的,在分布式数据库环境下,每个计算节点负责管理一定数量的数据块,将数据库转化为分布式数据库,使得在有数据改变时,不需要再对完整数据库进行基数统计,只需要重新对数据修改的计算节点进行基数计算即可。采用分布式的方式进行数据的存储和计算有效地降低了重复扫描数据的次数,有效地提高了数据处理的速度。
102、分别对每个数据块添加相关联的辅助文件,辅助文件携带对应数据块的数据特征信息。
为了更好地降低外村访问的压力,对每个计算节点中的数据块赋予唯一的辅助文件,也就是数据块与辅助文件是一一对应关系,辅助文件包括了数据块的数据特征信息,例如数据类型、数据大小、数据块基数大小等信息。通过读取辅助文件便可以了解到具体的对应的数据块的相关信息,无需再去读取对应的数据块。
103、接收基数查询指令,根据基数查询指令确定目标计算节点,目标计算节点为数据块修改后的计算节点。
在数据块中有数据进行修改后,需要对数据库的基数进行重新的估算。数据修改往往是部分数据的变更,也就是指的在某次进行数据变更时,变更的可能只是某个数据块,因此在进行基数确定的过程中,便只需查询到变更后的数据块的基数信息即可。而在这个步骤中,在接收到基数查询指令的信息后,便首先去确定目标计算节点,可以根据数据变更的时间信息,去确定目标计算节点,根据数据块的属性信息或者是根据辅助文件的相关信息,可以完成对目标计算节点的确定。
104、遍历目标计算节点中的辅助文件,根据辅助文件对应的数据特征信息,确定目标计算节点中的数据块的基数最大值。
再有某个数据块中的数据变化后,对应的整个结算节点的基数可能会发生变化,于是此时,便需要重新遍历目标计算节点中的所有辅助文件,确定目标计算节点中的数据块的基数最大值,在每个计算节点中对基数的确定方式便是选取其中的最大值,因此在数据库数据发生变化时,便需要重新的遍历辅助文件,确定目标计算节点的基数。
105、基于预设估算公式,根据基数最大值和数据库中其他计算节点的节点基数值,估算数据库的基数值。
由于,在数据库中的数据发生变化的过程中,只是部分数据信息发生变化,放到分布式数据库中,也就是其中的某一个或者几个计算节点的数据块发生变化,因此其他的计算节点的基数值是不变的。根据预设估算公式,对其他计算节点的基数值和目标计算节点的最大基数值进行计算处理,便可以得到数据块数据变化以后的基数值。
其中,数据块内为真实数据信息,辅助文件内为辅助基数估算辅助信息,在计算过程中,数据块的大小为GB级别,辅助文件的大小为KB级别。例如,辅助文件为分组信息,则每个分组信息文件中保存4096个16位整数值,当它被读取到内存时,解析为一个长度是4096的short int数组。这个数组的含义是:HLL算法中各分组的最长连续0个数k。
在查询时,每个计算节点负责合并这些长度是4096的数组,给入口节点发送合并完的结果,而入口节点负责合并各计算节点的计算结果。合并方式就是同分组信息文件中取最大值的方式。入口节点收到了最终的4096个分组的结果,使用估算公式算出最终的估算值,误差范围1.6%。
本发明实施例提供的一种数据库的基数估算方法,通过转化数据库为分布式数据库,分布式数据库包括N个计算节点,每个计算节点包括预设数量的数据块,N>1,且为自然数;分别对每个数据块添加相关联的辅助文件,辅助文件携带对应数据块的数据特征信息;接收基数查询指令,根据基数查询指令确定目标计算节点,目标计算节点为数据块修改后的计算节点;遍历目标计算节点中的辅助文件,根据辅助文件对应的数据特征信息,确定目标计算节点中的数据块的基数最大值;基于预设估算公式,根据基数最大值和数据库中其他计算节点的节点基数值,估算数据库的基数值的方式,使得再数据库数据发生变化时,无需重新对整个数据库进行扫描,仅通过扫描对应的计算节点即可,而且也仅需要扫描计算节点中的辅助文件即可,由于辅助文件的大小远远小于数据块文件的大小,使得大大的提高了计算速度,有效地提高了数据库基数的估算效率。
进一步地,本实施例中,在接收基数查询指令之前,还包括接收数据修改指令,数据修改指令包括数据修改方式和修改数据类型;根据修改数据类型,确定修改计算节点;按照修改方式,在修改计算节点中对数据块进行修改,修改方式包括插入、更新和删除。
而当修改方式为插入时,在修改计算节点中对数据块进行修改,包括:通过HLL算法生成插入数据的哈希值;根据哈希值生成插入数据对应的数据块;遍历插入数据对应的数据块,生成相关联的辅助文件,便可以通过辅助文件进行该数据块基数的查询。在插入数据阶段,HLL算法给每个数据生成哈希值,在分4096组的情况下,哈希值的前12位,用于决定数据落入哪个分组,剩余数据位的连续0的个数用于更新对应分组的最长连续0的个数,于是便生成了对应的数据块,同时生成相关联的辅助文件,便于后续的数据查询等操作。
而当修改方式为更新时,在修改计算节点中对数据块进行修改,包括:确定待更新数据块位置;在待更新数据块位置,替换待更新数据块为修改数据块,并遍历修改数据块以更新相关联的辅助文件。数据更新时,就是直接用新的数据块替换旧的数据块,同时对新的数据块进行遍历,生成对应的辅助文件,将辅助文件与新数据块进行关联即可。同样,当修改方式为删除时,在修改计算节点中对数据块进行修改,包括:识别待删除数据块;删除待删除数据块和与待删除数据块相关联的辅助文件。
在这种处理流程下,查询基数时完全不需要扫描海量数据,只需要查询一些辅助文件,外存访问量大幅降低。当需要执行插入(INSERT)、更新(UPDATE)和删除(DELETE)这些必须扫描真实数据的操作时,可以一并更新分组文件,同时又不会大量增加这些操作的耗时。为了加快查询速度,所需要的额外存储相当低,和真实数据相比,多出的辅助数据量可以忽略不记。
下面对本发明提供的数据库的基数估算装置进行描述,下文描述的数据库的基数估算装置与上文描述的数据库的基数估算方法可相互对应参照。
图2是本发明实施例提供的数据库的基数估算装置的结构示意图。
如图2所示,本发明实施例提供的一种数据库的基数估算装置,包括:
转化模块10,用于转化数据库为分布式数据库,分布式数据库包括N个计算节点,每个计算节点包括预设数量的数据块,N>1,且为自然数;
关联模块20,用于分别对每个数据块添加相关联的辅助文件,辅助文件携带对应数据块的数据特征信息;
查询模块30,用于接收基数查询指令,根据基数查询指令确定目标计算节点,目标计算节点为数据块修改后的计算节点;
遍历模块40,用于遍历目标计算节点中的辅助文件,根据辅助文件对应的数据特征信息,确定目标计算节点中的数据块的基数最大值;
估算模块50,用于基于预设估算公式,根据基数最大值和数据库中其他计算节点的节点基数值,估算数据库的基数值。
本实施例提供的一种数据库的基数估算装置,通过转化数据库为分布式数据库,分布式数据库包括N个计算节点,每个计算节点包括预设数量的数据块,N>1,且为自然数;分别对每个数据块添加相关联的辅助文件,辅助文件携带对应数据块的数据特征信息;接收基数查询指令,根据基数查询指令确定目标计算节点,目标计算节点为数据块修改后的计算节点;遍历目标计算节点中的辅助文件,根据辅助文件对应的数据特征信息,确定目标计算节点中的数据块的基数最大值;基于预设估算公式,根据基数最大值和数据库中其他计算节点的节点基数值,估算数据库的基数值的方式,使得再数据库数据发生变化时,无需重新对整个数据库进行扫描,仅通过扫描对应的计算节点即可,而且也仅需要扫描计算节点中的辅助文件即可,由于辅助文件的大小远远小于数据块文件的大小,使得大大的提高了计算速度,有效地提高了数据库基数的估算效率。
进一步的,本发明实施例中的数据库的基数估算装置,还包括数据修改模块,用于:
接收数据修改指令,数据修改指令包括数据修改方式和修改数据类型;
根据修改数据类型,确定修改计算节点;
按照修改方式,在修改计算节点中对数据块进行修改,修改方式包括插入、更新和删除中的至少一种;
其中,修改方式为插入时,在修改计算节点中对数据块进行修改,包括:通过HLL算法生成插入数据的哈希值;根据哈希值生成插入数据对应的数据块;遍历插入数据对应的数据块,生成相关联的辅助文件;
修改方式为更新时,在修改计算节点中对数据块进行修改,包括:确定待更新数据块位置;在待更新数据块位置,替换待更新数据块为修改数据块,并遍历修改数据块以更新相关联的辅助文件;
修改方式为删除时,在修改计算节点中对数据块进行修改,包括:识别待删除数据块;删除待删除数据块和与待删除数据块相关联的辅助文件。
进一步的,本发明实施例中的数据块内为真实数据信息,辅助文件内为辅助基数估算辅助信息;数据块的大小为GB级别,辅助文件的大小为KB级别。
图3是本发明实施例提供的电子设备的结构示意图。
如图3所示,本发明实施例中的该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行数据库的基数估算方法,该方法包括:转化数据库为分布式数据库,分布式数据库包括N个计算节点,每个计算节点包括预设数量的数据块,N>1,且为自然数;分别对每个数据块添加相关联的辅助文件,辅助文件携带对应数据块的数据特征信息;接收基数查询指令,根据基数查询指令确定目标计算节点,目标计算节点为数据块修改后的计算节点;遍历目标计算节点中的辅助文件,根据辅助文件对应的数据特征信息,确定目标计算节点中的数据块的基数最大值;基于预设估算公式,根据基数最大值和数据库中其他计算节点的节点基数值,估算数据库的基数值。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的数据库的基数估算方法,该方法包括:转化数据库为分布式数据库,分布式数据库包括N个计算节点,每个计算节点包括预设数量的数据块,N>1,且为自然数;分别对每个数据块添加相关联的辅助文件,辅助文件携带对应数据块的数据特征信息;接收基数查询指令,根据基数查询指令确定目标计算节点,目标计算节点为数据块修改后的计算节点;遍历目标计算节点中的辅助文件,根据辅助文件对应的数据特征信息,确定目标计算节点中的数据块的基数最大值;基于预设估算公式,根据基数最大值和数据库中其他计算节点的节点基数值,估算数据库的基数值。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的数据库的基数估算方法,该方法包括:转化数据库为分布式数据库,分布式数据库包括N个计算节点,每个计算节点包括预设数量的数据块,N>1,且为自然数;分别对每个数据块添加相关联的辅助文件,辅助文件携带对应数据块的数据特征信息;接收基数查询指令,根据基数查询指令确定目标计算节点,目标计算节点为数据块修改后的计算节点;遍历目标计算节点中的辅助文件,根据辅助文件对应的数据特征信息,确定目标计算节点中的数据块的基数最大值;基于预设估算公式,根据基数最大值和数据库中其他计算节点的节点基数值,估算数据库的基数值。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种数据库的基数估算方法,其特征在于,包括:
转化数据库为分布式数据库,所述分布式数据库包括N个计算节点,每个所述计算节点包括预设数量的数据块,N>1,且为自然数;
分别对每个所述数据块添加相关联的辅助文件,所述辅助文件携带对应数据块的数据特征信息;
接收基数查询指令,根据所述基数查询指令确定目标计算节点,所述目标计算节点为数据块修改后的计算节点;
遍历所述目标计算节点中的辅助文件,根据所述辅助文件对应的数据特征信息,确定所述目标计算节点中的数据块的基数最大值;
基于预设估算公式,根据所述基数最大值和所述数据库中其他计算节点的节点基数值,估算所述数据库的基数值;
所述接收基数查询指令之前,还包括:
接收数据修改指令,所述数据修改指令包括数据修改方式和修改数据类型;
根据所述修改数据类型,确定修改计算节点;
按照所述修改方式,在所述修改计算节点中对数据块进行修改,所述修改方式包括插入、更新和删除中的至少一项;
所述修改方式为插入时,所述在所述修改计算节点中对数据块进行修改,包括:
通过HLL算法生成插入数据的哈希值;
根据所述哈希值生成插入数据对应的数据块;
遍历所述插入数据对应的数据块,生成相关联的辅助文件。
2.根据权利要求1所述的数据库的基数估算方法,其特征在于,所述修改方式为更新时,所述在所述修改计算节点中对数据块进行修改,包括:
确定待更新数据块位置;
在所述待更新数据块位置,替换所述待更新数据块为修改数据块,并遍历所述修改数据块以更新相关联的辅助文件。
3.根据权利要求1所述的数据库的基数估算方法,其特征在于,所述修改方式为删除时,所述在所述修改计算节点中对数据块进行修改,包括:
识别待删除数据块;
删除所述待删除数据块和与所述待删除数据块相关联的辅助文件。
4.根据权利要求1所述的数据库的基数估算方法,其特征在于,所述数据块内为真实数据信息,所述辅助文件内为辅助基数估算辅助信息。
5.根据权利要求4所述的数据库的基数估算方法,其特征在于,所述数据块的大小为GB级别,所述辅助文件的大小为KB级别。
6.一种数据库的基数估算装置,其特征在于,包括:
转化模块,用于转化数据库为分布式数据库,所述分布式数据库包括N个计算节点,每个所述计算节点包括预设数量的数据块,N>1,且为自然数;
关联模块,用于分别对每个所述数据块添加相关联的辅助文件,所述辅助文件携带对应数据块的数据特征信息;
查询模块,用于接收基数查询指令,根据所述基数查询指令确定目标计算节点,所述目标计算节点为数据块修改后的计算节点;
遍历模块,用于遍历所述目标计算节点中的辅助文件,根据所述辅助文件对应的数据特征信息,确定所述目标计算节点中的数据块的基数最大值;
估算模块,用于基于预设估算公式,根据所述基数最大值和所述数据库中其他计算节点的节点基数值,估算所述数据库的基数值;
还包括数据修改模块,用于:
接收数据修改指令,数据修改指令包括数据修改方式和修改数据类型;
根据修改数据类型,确定修改计算节点;
按照修改方式,在修改计算节点中对数据块进行修改,修改方式包括插入、更新和删除中的至少一种;
其中,修改方式为插入时,在修改计算节点中对数据块进行修改,包括:通过HLL算法生成插入数据的哈希值;根据哈希值生成插入数据对应的数据块;遍历插入数据对应的数据块,生成相关联的辅助文件。
7.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述数据库的基数估算方法的步骤。
8.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述数据库的基数估算方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110779125.9A CN113468179B (zh) | 2021-07-09 | 2021-07-09 | 数据库的基数估算方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110779125.9A CN113468179B (zh) | 2021-07-09 | 2021-07-09 | 数据库的基数估算方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113468179A CN113468179A (zh) | 2021-10-01 |
CN113468179B true CN113468179B (zh) | 2024-03-19 |
Family
ID=77879590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110779125.9A Active CN113468179B (zh) | 2021-07-09 | 2021-07-09 | 数据库的基数估算方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113468179B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544258A (zh) * | 2013-10-16 | 2014-01-29 | 国家计算机网络与信息安全管理中心 | 一种大数据多区间查询条件下的基数估计方法及装置 |
CN106709001A (zh) * | 2016-12-22 | 2017-05-24 | 西安电子科技大学 | 一种面向流式大数据的基数估计方法 |
CN110955685A (zh) * | 2019-11-29 | 2020-04-03 | 北京锐安科技有限公司 | 一种大数据基数估计方法、系统、服务器和存储介质 |
CN111563109A (zh) * | 2020-04-26 | 2020-08-21 | 北京奇艺世纪科技有限公司 | 基数统计方法、装置、系统、设备和计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170103417A1 (en) * | 2015-10-07 | 2017-04-13 | Adobe Systems Incorporated | Cardinality estimation of audience segments |
-
2021
- 2021-07-09 CN CN202110779125.9A patent/CN113468179B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544258A (zh) * | 2013-10-16 | 2014-01-29 | 国家计算机网络与信息安全管理中心 | 一种大数据多区间查询条件下的基数估计方法及装置 |
CN106709001A (zh) * | 2016-12-22 | 2017-05-24 | 西安电子科技大学 | 一种面向流式大数据的基数估计方法 |
CN110955685A (zh) * | 2019-11-29 | 2020-04-03 | 北京锐安科技有限公司 | 一种大数据基数估计方法、系统、服务器和存储介质 |
CN111563109A (zh) * | 2020-04-26 | 2020-08-21 | 北京奇艺世纪科技有限公司 | 基数统计方法、装置、系统、设备和计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
基数估计算法参数的分析与优化;刘绍记;曹阳;崔梦天;;计算机科学;20170215(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113468179A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109408681B (zh) | 一种字符串匹配方法、装置、设备及可读存储介质 | |
CN108304409B (zh) | 一种基于进位的Sketch数据结构的数据频度估计方法 | |
CN113377964B (zh) | 知识图谱链接预测方法、装置、设备及存储介质 | |
CN111522811B (zh) | 数据库的处理方法及装置、存储介质、终端 | |
CN110377681B (zh) | 一种数据查询的方法、装置、可读存储介质和电子设备 | |
CN113468179B (zh) | 数据库的基数估算方法、装置、设备及存储介质 | |
CN111736774A (zh) | 冗余数据的处理方法、装置、服务器及存储介质 | |
US20230053844A1 (en) | Improved Quality Value Compression Framework in Aligned Sequencing Data Based on Novel Contexts | |
CN114969023A (zh) | 一种数据库学习型索引构建方法和系统 | |
CN110362580B (zh) | 一种bim建筑工程数据检索优化归类方法及其系统 | |
CN110990640B (zh) | 一种数据判定方法、装置、设备及计算机可读存储介质 | |
CN110704433B (zh) | 列式存储数据的brin索引构建方法、数据检索方法及装置 | |
CN111107375B (zh) | 一种视频编码方法、解码方法及装置 | |
CN110175185B (zh) | 一种基于时序数据分布特征的自适应无损压缩方法 | |
CN117472918B (zh) | 数据处理方法、系统、电子设备及存储介质 | |
CN111782645A (zh) | 数据处理方法和装置 | |
CN109165220B (zh) | 一种数据匹配计算方法 | |
CN113259302B (zh) | 网络攻击数据的关系分解方法、装置和计算机设备 | |
CN109947775B (zh) | 数据处理方法、装置、电子设备及计算机可读介质 | |
CN115658730B (zh) | 稀疏数据的查询方法、装置、设备和计算机可读存储介质 | |
CN112269806B (zh) | 数据查询方法、装置、设备以及计算机存储介质 | |
CN115982414B (zh) | 一种图数据处理与增量存储方法、装置及计算机设备 | |
CN117909329A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN117036860B (zh) | 一种模型量化方法、电子装置及介质 | |
RU2663474C1 (ru) | Способ поиска подобных файлов, размещённых на устройствах хранения данных |
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 |