数据采集方法、装置、系统、计算机设备及存储介质制造方法及图纸

技术编号:24937929 阅读:40 留言:0更新日期:2020-07-17 20:55
本发明专利技术适用于数据库技术领域,其各实施例公开了一种数据采集方法、装置、系统、计算机设备及存储介质,其中,所述数据采集方法包括:对增量数据进行统计信息的若干次并发采样,得到对应于统计信息的多个采样信息,每一个采样信息对应一次并发采样,所述增量数据是在对数据库中的数据进行写操作过程中生成的;将对应于统计信息的多个采样信息合并,得到所述增量数据的统计信息;存储所述增量数据的统计信息。采用本发明专利技术所提供的数据采集方法、装置、系统、计算机设备及存储介质,能够有效地解决现有技术中数据采集效率不高的问题,以此充分地保障基于统计信息的高效数据采集和查询。

【技术实现步骤摘要】
数据采集方法、装置、系统、计算机设备及存储介质
本专利技术涉及数据库领域,尤其涉及一种数据采集方法、装置、系统、计算机设备及存储介质。
技术介绍
随着数据库中数据的迅速增长,及时地为用户提供数据采集和查询服务的响应率势必受到影响,由此,提出针对数据库中的数据采集统计信息(CBOStat),以根据采集到的统计信息,计算最佳的SQL执行计划,从而有效地缩短为用户提供数据采集和查询服务的响应时间。目前,关于统计信息的采集,主要包括基于Spark的采集方案和基于Hive的采集方案,然而,上述方案中,要么不支持多种类型的数据表,要么支持多种类型的数据表却数据采集效率低下。由上可知,在支持多种类型的数据表前提下,如何提高数据采集效率尚待解决。
技术实现思路
本专利技术各实施例提供一种数据采集方法、装置及存储介质,以解决相关技术中存在的数据采集效率不高的问题。其中,本专利技术所采用的技术方案为:根据本专利技术的一个方面,一种数据采集方法,包括:对增量数据进行统计信息的若干次并发采样,得到对应于统计信息的多个采样信息,每一个采样信息对应一次并发采样,所述增量数据是在对数据库中的数据进行写操作过程中生成的;将对应于统计信息的多个采样信息合并,得到所述增量数据的统计信息;存储所述增量数据的统计信息。根据本专利技术的一个方面,一种数据采集装置,包括:采样模块,用于对增量数据进行统计信息的若干次并发采样,得到对应于统计信息的多个采样信息,每一个采样信息对应一次并发采样,所述增量数据是在对数据库中的数据进行写操作过程中生成的;合并模块,用于将对应于统计信息的多个采样信息合并,得到所述增量数据的统计信息;存储模块,用于存储所述增量数据的统计信息。在一个实施例中,所述对象调用单元,包括:封装子单元,用于将所述采样行号对应的记录封装为目标对象;调用子单元,用于从所述线程池中获取空闲的线程调用所述目标对象,得到一个采样信息。在一个实施例中,所述表统计信息合并单元,包括:第一合并子单元,用于当所述数据备份模式为增量模式,计算多个采样信息的表统计信息之和,作为所述增量数据的表统计信息;或者,第二合并子单元,用于当所述数据备份模式为全量模式,将采样时间最晚的采样信息的表统计信息,作为所述增量数据的表统计信息。在一个实施例中,所述列统计信息合并单元,包括:直方图创建子单元,用于对多个采样信息进行遍历,根据当前一个采样信息的列统计信息创建第二直方图,所述第二直方图区别于由前若干个采样信息的列统计信息创建的第一直方图;直方图生成子单元,用于根据所述第一直方图、所述第二直方图中桶的属性,生成第三直方图;信息获取子单元,用于待多个采样信息完成遍历,根据所述第三直方图中桶的属性,得到所述增量数据的列统计信息。在一个实施例中,所述桶的属性包括桶在直方图中的索引;所述直方图生成子单元,包括:遍历子单元,用于对所述第一直方图、所述第二直方图中的桶进行遍历,将所述第一直方图中遍历到的桶作为第一当前桶,将所述第二直方图中遍历到的桶作为第二当前桶;第一添加子单元,用于当所述第一当前桶、所述第二当前桶的索引满足第一生成条件,将所述第一当前桶和/或所述第二当前桶,添加至所述第三直方图;第二添加子单元,用于当所述第一当前桶、所述第二当前桶的索引满足第二生成条件,将所述第一直方图中未添加的桶,添加至所述第三直方图;第三添加子单元,用于当所述第一当前桶、所述第二当前桶的索引满足第三生成条件,将所述第二直方图中未添加的桶,添加至所述第三直方图。在一个实施例中,所述桶的属性包括桶的宽度、高度、上限和下限;所述第一添加子单元,包括:第一桶添加子单元,用于如果所述第一当前桶的上限小于所述第二当前桶的下限,则将所述第一当前桶添加至所述第三直方图;第二桶添加子单元,用于如果所述第一当前桶的下限大于所述第二当前桶的上限,则将所述第二当前桶添加至所述第三直方图;否则,通知第三桶添加子单元,用于在所述第三直方图中构造一个新桶,将所述第一当前桶、所述第二当前桶的高度之和作为所述新桶的高度,并将所述第二当前桶的宽度作为所述新桶的宽度。在一个实施例中,所述存储模块,包括:信息写入单元,用于将所述增量数据的统计信息写入内存队列;信息读取单元,用于利用消费者线程,从所述内存队列中读取所述增量数据的统计信息,进行持久化存储。根据本专利技术的一个方面,一种数据采集系统,包括:用户端和服务器端;所述用户端,用于针对数据库中的目标数据,向所述服务器端发送采集指令,请求服务器端采集所述目标数据;所述服务器端,用于当接收到所述采集指令,根据所述目标数据的统计信息计算最佳的SQL执行路径,所述目标数据的统计信息是按照如上所述的数据采集方法采集得到的;所述服务器端,还用于根据计算得到的SQL执行路径,进行所述目标数据的采集;所述用户端,还用于接收所述服务器端采集到的所述目标数据。根据本专利技术的一个方面,一种计算机设备,包括处理器及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上所述的数据采集方法。根据本专利技术的一个方面,一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据采集方法。在上述技术方案中,数据采集过程中,一方面,对增量数据进行统计信息的若干次并发采样,得到对应于统计信息的多个采样信息,每一个采样信息对应一次并发采样;另一方面,将对应于统计信息的多个采样信息合并,得到增量数据的统计信息,并将该增量数据的统计信息存储,由此实现基于并发采样和增量更新的数据采集机制,避免单线程采集和全量采集,从而有效地解决了现有技术中存在的数据采集效率不高的问题。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本专利技术。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并于说明书一起用于解释本专利技术的原理。图1是根据本专利技术所涉及的实施环境的示意图。图2是根据一示例性实施例示出的一种计算机设备的硬件结构图。图3是根据一示例性实施例示出的一种数据采集方法的流程图。图4是图3对应实施例中步骤310在一个实施例的流程图。图5是图4对应实施例中步骤313在一个实施例的流程图。图6是图3对应实施例中步骤330在一个实施例的流程图。图7是图6对应实施例所涉及的直方图的示意图。图8是图6对应实施例中步骤333在一个实施例的流程图。图9是图8对应实施例所涉及的合并过程中直方图的示意图。图10是图3对应实施例中步骤350在一个实施例的流程图。图11图10对应实施例所涉及的统计信息存储的示意图。图12是根据一应用场景示出的一种数据采集方法的时序图。图13图12所涉及的数据采集方法的总体架构示意图。图14是根据一示例性实施例示出的一种数据采集装置的框图。图15是根据一示例性实施例示出的一种计算机设备的框图。通过上本文档来自技高网...

【技术保护点】
1.一种数据采集方法,其特征在于,包括:/n对增量数据进行统计信息的若干次并发采样,得到对应于统计信息的多个采样信息,每一个采样信息对应一次并发采样,所述增量数据是在对数据库中的数据进行写操作过程中生成的;/n将对应于统计信息的多个采样信息合并,得到所述增量数据的统计信息;/n存储所述增量数据的统计信息。/n

【技术特征摘要】
1.一种数据采集方法,其特征在于,包括:
对增量数据进行统计信息的若干次并发采样,得到对应于统计信息的多个采样信息,每一个采样信息对应一次并发采样,所述增量数据是在对数据库中的数据进行写操作过程中生成的;
将对应于统计信息的多个采样信息合并,得到所述增量数据的统计信息;
存储所述增量数据的统计信息。


2.如权利要求1所述的方法,其特征在于,所述对增量数据进行统计信息的若干次并发采样,得到对应于统计信息的多个采样信息,包括:
针对每一次并发采样,根据所述增量数据中未进行采样的记录,随机生成采样行号;
基于线程池中空闲的线程,对所述增量数据中对应于所述采样行号的记录进行并发采样,得到一个采样信息。


3.如权利要求2所述的方法,其特征在于,所述基于线程池中空闲的线程,对所述增量数据中对应于所述采样行号的记录进行并发采样,得到一个采样信息,包括:
将所述采样行号对应的记录封装为目标对象;
从所述线程池中获取空闲的线程调用所述目标对象,得到一个采样信息。


4.如权利要求1所述的方法,其特征在于,所述统计信息包括表统计信息和列统计信息;
所述将对应于统计信息的多个采样信息合并,得到所述增量数据的统计信息,包括:
基于数据备份模式,根据多个采样信息的表统计信息,获得所述增量数据的表统计信息;
基于直方图,对多个采样信息的列统计信息进行合并,获得所述增量数据的列统计信息;
由所述增量数据的表统计信息和列统计信息,生成所述增量数据的统计信息。


5.如权利要求4所述的方法,其特征在于,所述基于数据备份模式,根据多个采样信息的表统计信息,获得所述增量数据的表统计信息,包括:
当所述数据备份模式为增量模式,计算多个采样信息的表统计信息之和,作为所述增量数据的表统计信息;或者,
当所述数据备份模式为全量模式,将采样时间最晚的采样信息的表统计信息,作为所述增量数据的表统计信息。


6.如权利要求4所述的方法,其特征在于,所述基于直方图,对多个采样信息的列统计信息进行合并,获得所述增量数据的列统计信息,包括:
对多个采样信息进行遍历,根据当前一个采样信息的列统计信息创建第二直方图,所述第二直方图区别于由前若干个采样信息的列统计信息创建的第一直方图;
根据所述第一直方图、所述第二直方图中桶的属性,生成第三直方图;
待多个采样信息完成遍历,根据所述第三直方图中桶的属性,得到所述增量数据的列统计信息。


7.如权利要求6所述的方法,其特征在于,所述桶的属性包括桶在直方图中的索引;
所述根据所述第一直方图、所述第二直方图中桶的属性,生成第三直方图,包括:
对所述第一直方图、所述第二直方图中的桶进行遍历,将所述第一直方图中遍历到的桶作为第一当前桶,将所述第二直方图中遍历到的桶作为第二当前桶;
当所述第一当前桶、所述第二当前桶的索引满足第一生成条件,将所述第一当前桶和/或所述第二当前桶,添加至所述第三直方图;
当所述第一当前桶、所述第二当前桶的索引满足第二生成条件,将所述第一直方图中未添加的桶,添加至所述第三直方图;
当所述第一当前桶、所述第二当前桶的索引满足第三生成条件,将所述第二直方图中未添加的桶,添加...

【专利技术属性】
技术研发人员:李少锋
申请(专利权)人:深圳市腾讯计算机系统有限公司
类型:发明
国别省市:广东;44

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

1