更新统计信息的方法、装置、设备、介质及产品制造方法及图纸

技术编号:33286862 阅读:9 留言:0更新日期:2022-04-30 23:56
本公开提供了一种更新统计信息的方法、装置、设备、介质及产品,涉及计算机技术领域,尤其涉及分布式数据库、数据处理、云服务领域。具体实现方案为:监测数据表中的数据状态;若监测到数据状态发生变化,则确定数据状态发生变化的数据所对应的数据文件,并确定数据文件对应的描述文件,更新描述文件中存储的统计信息。本公开在监测到数据状态变化后,对数据文件统计信息进行更新,保证统计信息的准确性。另外在本公开中,通过描述文件存储数据文件对应的统计信息,相比于将统计信息存储在元数据中更简洁,便于进行查询。便于进行查询。便于进行查询。

【技术实现步骤摘要】
更新统计信息的方法、装置、设备、介质及产品


[0001]本公开涉及计算机
,尤其涉及分布式数据库、数据处理、云服务领域。

技术介绍

[0002]在分布式数据库系统中,数据文件按特定的目录结构,保存在文件系统上,统计信息通常保存在元数据管理系统中。在执行查询时,查询引擎通常会先获取需要查询的数据对应的统计信息,利用数据的统计信息进行查询优化,以提升查询速度。例如,联表查询时,可以通过表统计信息中记录的行数,选择两张表的顺序,实现最优的性能。

技术实现思路

[0003]本公开提供了一种用于更新统计信息的方法、装置、设备、介质及产品。
[0004]根据本公开的一方面,提供了一种更新统计信息的方法,包括:监测数据表中的数据状态;若监测到数据状态发生变化,则确定数据状态发生变化的数据所对应的数据文件,并确定所述数据文件对应的描述文件;更新所述描述文件中存储的统计信息。
[0005]根据本公开的另一方面,提供了一种更新统计信息的装置,包括:
[0006]监测单元,用于监测数据表中的数据状态;更新单元,用于在监测到数据状态发生变化的情况下,确定数据状态发生变化的数据所对应的数据文件,并确定数据文件对应的描述文件,更新描述文件中存储的统计信息。
[0007]根据本公开的另一方面,提供了一种电子设备,包括:
[0008]至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行所述的方法。
[0009]根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行所述的方法。
[0010]根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据所述的方法。
[0011]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0012]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0013]图1是根据本公开实施例的更新统计信息的方法的流程示意图;
[0014]图2是根据本公开实施例的生成描述文件的流程示意图;
[0015]图3是根据本公开实施例的确定数据文件对应描述文件的流程示意图;
[0016]图4是根据本公开实施例的统计信息描述文件的结构示意图;
[0017]图5是根据一示例性实施例示出的一种更新统计信息的装置框图;
[0018]图6是用来实现本公开实施例的更新统计信息的方法的电子设备的框图。
具体实施方式
[0019]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0020]本公开应用于收集数据统计信息的场景。数据的统计信息从数据组织形式上,可以分为表统计信息、列统计信息、分区统计信息。其中,表统计信息通常包括:表对应的数据所在的文件个数、记录的行数、原始数据大小、存储在磁盘上的数据大小。列统计信息的具体内容因字段而异,一些通用的列统计信息包括:一张表的某列中空值的个数、不同数据的个数等。除上述之外,对于字段类型为整数类型的数据,列统计信息还包括最大值、最小值;对于字段类型为布尔类型的数据,列统计信息还包括真(True)值的个数、假(False)值的个数等。分区统计信息的内容与列统计信息一致,区别在于统计的数据范围是分区级别的,而不是表级别的。
[0021]然而,收集统计信息时,需要对数据进行多次计算,故,导致统计信息的收集成本较高,没有办法保证统计信息实时更新。在目前分布式数据库系统的使用场景中,更常见是,数据分析人员在进行查询时,往往使用了过期很久的统计信息,造成查询没有办法进行充分优化,有的甚至比不使用统计信息更加缓慢。
[0022]在分布式数据库系统中,相关技术主要通过用户手动操作,触发执行指定的查询语句(ANAYLZE table_name)。通过执行查询语句,以完成对指定表格的统计信息收集。收集的统计信息,通常保存在元数据管理系统或系统表中,比如,数据库(Greenplum)将统计信息存储在系统表(pg_statistic)中;Apache Hive将统计信息保存在元数据管理系统的数据表(TABLE_PARAMS、TAB_COL_STATS、PART_COL_STATS)中。
[0023]相关技术中,由于用户经常忘记进行手动收集统计信息,导致无法保证统计信息实时更新。另外,在分布式数据库的实际使用场景中,对于PB级别的数据,对整个库表的统计信息收集开销巨大。定时收集以确保统计信息的准确性因资源限制更难实现。需说明,PB是petabyte的缩写,是指数据存储单位。统计信息更新不及时,导致统计信息与当前数据的实际情况不匹配,即统计信息不能准确的反映当前数据的实际信息。查询引擎利用不准确的统计信息进行查询优化,反而会导致查询性能更差。
[0024]有鉴于此,本公开实施例基于数据表是组织磁盘上存储数据的文件,以及对数据表的操作,最终会反映在磁盘中的文件上的事实,提供了一种统计信息的处理方法。以分布式数据库系统在磁盘中存储数据的文件为对象,为每个对象生成对应的描述文件。通过描述文件跟踪该描述文件对应的文件所保存的数据的统计信息。监测到对数据表中数据进行操作时,同步更新操作涉及的文件对应的描述文件。通过本公开能够及时自动更新统计信息,确保统计信息与当前文件的实际情况相匹配,为优化查询性能做准备。在执行查询时,读取所需文件前,先访问描述文件,获取文件的统计信息,再根据统计信息进行查询优化,提高查询性能。
[0025]应理解,分布式数据库系统支持多种文件存储格式(例如:列式存储格式,行式存
储格式,以及csv和pickle等)。本公开提供的更新统计信息的方法适用于以任意文件存储格式存储的文件。本公开以下为与描述文件进行区分,将分布式数据库系统在磁盘中存储数据的文件称为数据文件。
[0026]在一种实施方式中,可以检测对数据库中数据表的操作,若检测到对数据表中的数据进行操作,且数据表中的数据有变化,则对表统计信息和/或列统计信息进行自动更新。该实施例在相关技术的基础上,实现对统计信息的自动更新。根据数据文件的变化执行,数据文件有变化时,才会触发更新统计信息。
[0027]在另一种实施方式中,在元数据系统中建立数据表与数据文件的映射关系,并以数据文件为单位收集数据文件的统计信息。在检测到数据文件中的数据有变化的情况下,更新元数据系统中该数据文件的统计信息。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种更新统计信息的方法,包括:监测数据表中的数据状态;若监测到数据状态发生变化,则确定数据状态发生变化的数据所对应的数据文件,并确定所述数据文件对应的描述文件;更新所述描述文件中存储的统计信息。2.根据权利要求1所述的方法,所述描述文件采用如下方式生成:确定所述数据表的全部数据文件;针对所述全部数据文件中的各个数据文件,以数据文件组为单位,生成数据文件组对应的描述文件;其中,所述数据文件组中包括一个或多个数据文件,数据文件组与描述文件之间具有一一对应关系。3.根据权利要求1所述的方法,确定所述数据文件对应的描述文件,包括:确定所述数据表的元数据,所述元数据中存储有描述文件的存储路径;基于所述元数据,确定所述数据文件所对应描述文件的存储路径;基于确定的存储路径,获取所述数据文件对应的描述文件。4.根据权利要求1

3中任意一项所述的方法,还包括:确定待查询的数据所属的数据文件,并在元数据中确定所述数据文件对应描述文件的存储路径;基于所述存储路径,读取所述描述文件,从所述描述文件中获取所述数据文件的统计信息。5.一种更新统计信息的装置,包括:监测单元,用于监测数据表中的数据状态;更新单元,用于在监测到数据状态发生变化的情况下,确定数据状态发生变化的数据所对应的数据文件,并确定所述数据文件对应的描述文件,更新所述描述文件中存储的统计信息。6.根据权利要求5所述的装置,所述描述文件采用如下方式生成:确定所述数据表的全部...

【专利技术属性】
技术研发人员:张奇伟
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

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

1