优化表结构的方法和装置的制造方法

文档序号:10655261阅读:205来源:国知局
优化表结构的方法和装置的制造方法
【专利摘要】本发明公开了一种优化表结构的方法,包括:对记录的查询请求进行语义分析,得到所述查询请求的目标数据;对得到的目标数据进行聚类分析,分析出所述目标数据的内在查询需求;对与所述内在查询需求相关的表的数据进行重新组合,生成组合后的表;通过所述组合后的表来完成新接收到的并且符合所述内在查询需求的查询。有助于筛选出对业务真正有价值的数据,将这些有价值的数据重新组合在一起,来完成今后的查询请求,可以有效提高查询效率。
【专利说明】
优化表结构的方法和装置
技术领域
[0001]本发明属于计算机领域,具体地说,涉及一种优化表结构的方法和装置。
【背景技术】
[0002]随着互联网的快速发展,很多互联网公司都已积累了TB量级的数据。数据仓库每天都在接收来自不同生态的数据,例如来自手机、智能电视、视频网站的用户数据记录等,做为大数据资源的一部分。
[0003]各个互联网公司都会对积累下来的海量数据做进一步的挖掘和利用,为用户提供报表、底层查询界面、可视化的查询界面等。数据通常以表的形式存储,在对数据进行使用的过程中,每一次使用都需要一次查询操作。在海量数据的环境下,数据存储系统可能会存在几十亿条数据记录,而且保存的数据中并不是每一条数据记录都是有价值的数据。由于要从海量数据中查询到所需要的数据,导致进行每次查询操作的用时都会很长,会影响数据的使用效率。

【发明内容】

[0004]有鉴于此,本发明实施例提供了一种优化表结构的方法和装置,用以解决现有技术中由于缺少对有价值数据的有效识别而导致数据查询效率低下的技术问题。
[0005]为了解决上述技术问题,本发明公开了一种优化表结构的方法,包括:对记录的查询请求进行语义分析,得到所述查询请求的目标数据;对得到的目标数据进行聚类分析,分析出所述目标数据的内在查询需求;对与所述内在查询需求相关的表的数据进行重新组合,生成组合后的表;通过所述组合后的表来完成新接收到的并且符合所述内在查询需求的查询。
[0006]为了解决上述技术问题,本发明还公开了一种优化表结构的装置,包括:语义分析模块,用于对记录的查询请求进行语义分析,得到所述查询请求的目标数据;聚类分析模块,用于对得到的目标数据进行聚类分析,分析出所述目标数据的内在查询需求;数据组合模块,用于对与所述内在查询需求相关的表的数据进行重新组合,生成组合后的表;数据查询模块,用于通过所述组合后的表来完成新接收到的并且符合所述内在查询需求的查询。
[0007]与现有技术相比,本发明实施例提供的优化表结构的方法和装置,得到针对数据的内在查询需求,根据该内在查询需求,对相关的表进行重新组合,对新接收到的并且符合相应的内在查询需求的查询请求,通过该组合后的表来进行数据查询。通过对数据的内在查询需求的分析,有助于筛选出对业务真正有价值的数据,将这些有价值的数据重新组合在一起,来完成今后的查询请求,可以有效提高查询效率。
【附图说明】
[0008]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0009]图1是本发明实施例提供的一种优化表结构的方法的流程图;
[0010]图2是本发明实施例提供的一种优化表结构的装置的框图。
【具体实施方式】
[0011]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0012]本发明实施例中,服务器将接收到的查询请求记录在日志中,对记录的查询请求进行语义分析,得到每个查询请求的目标数据,然后再对所有目标数据进行聚类分析,得到针对数据的内在查询需求,根据该内在查询需求,对相关的表进行重新组合,对新接收到的并且符合相应的内在查询需求的查询请求,通过该组合后的表来进行数据查询。通过对数据的内在查询需求的分析,有助于筛选出对业务真正有价值的数据,将这些有价值的数据重新组合在一起,来完成今后的查询请求,可以有效提高查询效率,对于服务器而言也有助于降低存储成本,并对数据按照业务价值进行有效的区分。
[0013]图1是本发明实施例提供的一种优化表结构的方法,适用于服务器,该服务器可以是数据存储服务设备、分布式存储系统的元数据服务器等,该方法包括以下步骤。
[0014]SlO,对记录的查询请求进行语义分析,得到所述查询请求的目标数据。
[0015]语义分析的对象是服务器的日志数据中记录的查询请求,每个查询请求在代码层都对应着一条查询语句。得到的目标数据中包括查询的表和该表内的字段信息。因此,该语义分析的目的是为了分析出每个查询请求的目标数据。
[0016]Sll,对得到的目标数据进行聚类分析,分析出目标数据的内在查询需求。
[0017]对目标数据进行统计,可以对该目标数据的被查询次数进行统计,也可以在统计被查询次数的基础上,再进一步统计查询该目标数据的用户数量。
[0018]例如,查询语句I的目标数据是表A的01至03字段,则为表A的01至03字段打标签,以累计其被查询的次数。进行本次查询的是用户a,并且是该用户a首次查询表A的01至03字段,则将用户a累计到查询该目标数据的人数当中。
[0019]当一种目标数据的统计数量能够达到一定预设门限时,即可将这种目标数据视为一种内在查询需求。例如,查询表A的01至03字段的次数达到十万次以上,或者查询人数达一万人以上,或者两个条件同时满足,此时,即可将针对表A的01至03字段的查询视为一种内在查询需求,说明这些数据在相应的业务中的价值更高。
[0020]通过对目标数据的统计分析,从海量数据中找到符合条件的内在查询需求,从而将有价值的数据划分出来。
[0021]S12,对与内在查询需求相关的表的数据进行重新组合,生成组合后的表。
[0022]例如,针对表A的01至03字段的查询被统计为一种内在查询需求,那么表A就是与该内在查询需求相关的表。表A包括00至49共五十个字段,对表A的数据进行重新组合时,将被视为内在查询需求的01至03字段的数据提取出来,生成一张组合后的表,这张组合后的表只包含表A的Ol至03字段的数据。
[0023]这是对与内在查询需求相关的表的数据进行重新组合的一种情形,即内在查询需求包括针对一个表的一个或多个特定字段的查询需求,那么此时就从这个表中提取对应的一个或多个特定字段的数据并生成组合后的表。
[0024]在一个实施例中,内在查询需求可涉及到多个表,比如同时包括针对第一表的一个或多个特定字段以及第二表的一个或多个特定字段的查询需求。这种情况的出现是由于这两个表的数据经常被同时查询,即经常出现在同一个查询语句中。
[0025]例如,表A的07至09字段和表B的02至04字段经常同时出现在同一个查询语句中,使得针对表A的07至09字段和表B的02至04字段的查询请求被分析为一种内在查询需求,表A和表B就成为了与这种内在查询需求相关的表,对数据进行组合时,将表A的07至09字段和表B的02至04字段分别从表A和表B中提取出来,并重新组合成一张新的表。
[0026]S13,通过组合后的表来完成新接收到的并且符合所述内在查询需求的查询。
[0027]这样做可以提高查询效率,例如上例中,原本需要从表A的00至49共五十个字段中查询出01至03三个字段,而现在将针对表A的01至03字段的查询请求通过组合后的表来完成,而该组合后的表只有表A的01至03字段数据,查询效率显然要比查询调整前的表A得到了提升。对于内在查询请求包括多个表的情况也是如此,而且查询效率的提升会更多。
[0028]上述组合后的表相对于调整前的表而言,维度都有所降低,因此在接受同样的查询请求时就能够更快的完成查询。而调整前的表仍会继续保存下来,以应对针对该调整前的表中其他数据的查询,针对调整前的表中已成为内在查询需求的数据的查询请求都会通过组合后生成的新表来完成。而在另一个实施例中,如果接收到的查询请求的目标数据仍然是从调整前的表中查询已成为内在查询需求的数据,那么服务器会自动将该查询请求重定向至组合后的新表,以保证查询效率。
[0029]例如,表A的01至03字段成为内在查询需求后,重新生成了组合后的表C。如果新接收到的一个查询请求中,仍然要求从表A中读取01至03字段的数据的话,则会将这个查询请求重定向到表C,通过表C来完成本次查询,从而充分保证了查询效率,使具有相同内在查询需求的查询请求具有相同的查询效率。
[0030]能够成为内在查询需求的数据,其查询量会很大,而将大量针对这些数据的查询转移到组合后的表之后,对于调整前的表的访问量就会相应的减少,因为针对调整前的表其他数据的查询请求会相对较少。由于针对其他数据的查询请求数量较少,不会占用过多的系统资源,因此在一个实施例中,可以将调整前的表迀移到数据查询速度相对更低的其他集群中进行保存,从而为数据查询速度相对更高的集群节省了存储空间,使其能够保存更多的符合内在查询需求的数据,从而保证了针对用户查询量较高的数据的查询效率,还有效的利用了各个存储集群的空间。
[0031]而在另一个实施例中,在一些情况下,将针对符合内在查询需求的数据的查询转移到组合后的表之后,针对调整前的表的其他数据就不会再接收到查询请求了。此时,会累计没有出现针对调整前的表的其他数据的查询请求的时长,当累计时长达到预设门限时(例如12小时),则标记一次该表;当标记的次数大于或等于预设次数时(例如10次),则将调整前的表迀移到备份集群中,以节省当前数据存储集群的存储空间。
[0032]下面是本发明的装置实施例,用于执行本发明的上述方法实施例。
[0033]图2是本发明实施例提供的一种优化表结构的装置,包括:
[0034]语义分析模块20,用于对记录的查询请求进行语义分析,得到查询请求的目标数据;
[0035]聚类分析模块21,用于对得到的目标数据进行聚类分析,分析出目标数据的内在查询需求;
[0036]数据组合模块22,用于对与内在查询需求相关的表的数据进行重新组合,生成组合后的表;
[0037]数据查询模块23,用于通过组合后的表来完成新接收到的并且符合内在查询需求的查询。
[0038]在一个实施例中,内在查询需求包括针对第一表的一个或多个特定字段的查询需求;该数据组合模块22进一步包括:
[0039]第一生成子模块,用于提取第一表的一个或多个特定字段的数据并生成组合后的表。
[0040]在一个实施例中,内在查询需求包括同时针对第一表的一个或多个特定字段以及第二表的一个或多个特定字段的查询需求;该数据组合模块22进一步包括:
[0041]第二生成子模块,用于提取所述第一表的一个或多个特定字段以及第二表的一个或多个特定字段的数据,并生成所述组合后的表。
[0042]在一个实施例中,该数据查询模块23进一步包括:
[0043]重定向子模块,用于将针对调整前的表进行的并且符合所述内在查询需求的查询请求重定向至所述组合后的表。
[0044]在一个实施例中,该优化表结构的装置还包括:
[0045]数据迀移模块,用于将调整前的表迀移到数据查询速度相对更低的其他集群中进行保存。
[0046]此外,本发明实施例中可以通过硬件处理器(hardware processor)来实现上述各个功能模块。
[0047]本发明实施例还提供了一种服务器,该服务器包括:包括处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为:对记录的查询请求进行语义分析,得到所述查询请求的目标数据;对得到的目标数据进行聚类分析,分析出所述目标数据的内在查询需求;对与所述内在查询需求相关的表的数据进行重新组合,生成组合后的表;通过所述组合后的表来完成新接收到的并且符合所述内在查询需求的查询。
[0048]在一个实施例中,所述内在查询需求包括针对第一表的一个或多个特定字段的查询需求;所述对与内在查询需求相关的表的数据进行重新组合,生成组合后的表包括:提取所述第一表的一个或多个特定字段的数据并生成所述组合后的表。
[0049]在一个实施例中,所述内在查询需求包括同时针对第一表的一个或多个特定字段以及第二表的一个或多个特定字段的查询需求;所述对与内在查询需求相关的表的数据进行重新组合,生成组合后的表包括:提取所述第一表的一个或多个特定字段以及第二表的一个或多个特定字段的数据,并生成所述组合后的表。
[0050]在一个实施例中,所述通过组合后的表来完成新接收到的并且符合所述内在查询需求的查询包括:将针对调整前的表进行的并且符合所述内在查询需求的查询请求重定向至所述组合后的表。
[0051]在一个实施例中,所述方法还包括:将调整前的表迀移到数据查询速度相对更低的其他集群中进行保存。
[0052]以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0053]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0054]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种优化表结构的方法,其特征在于,包括: 对记录的查询请求进行语义分析,得到所述查询请求的目标数据; 对得到的目标数据进行聚类分析,分析出所述目标数据的内在查询需求; 对与所述内在查询需求相关的表的数据进行重新组合,生成组合后的表; 通过所述组合后的表来完成新接收到的并且符合所述内在查询需求的查询。2.根据权利要求1所述的方法,其特征在于,所述内在查询需求包括针对第一表的一个或多个特定字段的查询需求; 所述对与内在查询需求相关的表的数据进行重新组合,生成组合后的表包括: 提取所述第一表的一个或多个特定字段的数据并生成所述组合后的表。3.根据权利要求1所述的方法,其特征在于,所述内在查询需求包括同时针对第一表的一个或多个特定字段以及第二表的一个或多个特定字段的查询需求; 所述对与内在查询需求相关的表的数据进行重新组合,生成组合后的表包括: 提取所述第一表的一个或多个特定字段以及第二表的一个或多个特定字段的数据,并生成所述组合后的表。4.根据权利要求1所述的方法,其特征在于,所述通过组合后的表来完成新接收到的并且符合所述内在查询需求的查询包括: 将针对调整前的表进行的并且符合所述内在查询需求的查询请求重定向至所述组合后的表。5.根据权利要求1所述的方法,其特征在于,所述方法还包括: 将调整前的表迀移到数据查询速度相对更低的其他集群中进行保存。6.一种优化表结构的装置,其特征在于,包括: 语义分析模块,用于对记录的查询请求进行语义分析,得到所述查询请求的目标数据;聚类分析模块,用于对得到的目标数据进行聚类分析,分析出所述目标数据的内在查询需求; 数据组合模块,用于对与所述内在查询需求相关的表的数据进行重新组合,生成组合后的表; 数据查询模块,用于通过所述组合后的表来完成新接收到的并且符合所述内在查询需求的查询。7.根据权利要求6所述的装置,其特征在于,所述内在查询需求包括针对第一表的一个或多个特定字段的查询需求; 所述数据组合模块包括: 第一生成子模块,用于提取所述第一表的一个或多个特定字段的数据并生成所述组合后的表。8.根据权利要求6所述的装置,其特征在于,所述内在查询需求包括同时针对第一表的一个或多个特定字段以及第二表的一个或多个特定字段的查询需求; 所述数据组合模块包括: 第二生成子模块,用于提取所述第一表的一个或多个特定字段以及第二表的一个或多个特定字段的数据,并生成所述组合后的表。9.根据权利要求6所述的装置,其特征在于,所述数据查询模块包括: 重定向子模块,用于将针对调整前的表进行的并且符合所述内在查询需求的查询请求重定向至所述组合后的表。10.根据权利要求6所述的装置,其特征在于,所述装置还包括: 数据迀移模块,用于将调整前的表迀移到数据查询速度相对更低的其他集群中进行保存。
【文档编号】G06F17/30GK106021420SQ201610319673
【公开日】2016年10月12日
【申请日】2016年5月13日
【发明人】刘宏斌, 国铁龙, 赵国兵
【申请人】乐视控股(北京)有限公司, 乐视网信息技术(北京)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1