数据处理的方法、装置、设备及计算机可读存储介质与流程

文档序号:33626321发布日期:2023-03-28 21:06阅读:23来源:国知局
1.本技术实施例涉及大数据
技术领域
:,特别涉及一种数据处理的方法、装置、设备及计算机可读存储介质。
背景技术
::2.随着大数据技术的发展,对数据库中的数据进行处理的方式也在不断进步。处理数据时,一般基于结构化查询语言(structuredquerylanguage,sql)语句进行,处理时sql语句会被输入至查询分析引擎进行解析和处理,得到物理执行计划,以通过物理执行计划完成数据处理。其中,物理执行计划为访问数据库中的数据的有序步骤集合。3.相关技术中,查询分析引擎对输入的sql语句依次进行词法分析、语法分析和语义分析,得到语义分析结果,再基于语义分析的结果生成初步逻辑执行计划。为了提高处理速度,节省计算开销,利用查询分析引擎内的执行计划优化器所包含的优化规则对该初步逻辑执行计划进行优化,得到优化后的逻辑执行计划。之后,基于优化后的逻辑执行计划生成的物理执行计划进行数据处理。4.由于上述方法利用查询分析引擎内的执行计划优化器所包含的优化规则对初步逻辑执行计划进行优化,因而如果需要修改执行计划优化器所包含的优化规则,则需要侵入到查询分析引擎内部实现,导致修改优化规则的难度大,且修改后的优化规则不容易进行复用和增量开发。技术实现要素:5.本技术提供了一种数据处理的方法、装置、设备及计算机可读存储介质,可用于解决相关技术中的问题。所述技术方案如下:6.一方面,提供了一种数据处理的方法,该方法包括:获取第一sql语句和关系型数据,所述关系型数据包括已处理的sql语句和所述已处理的sql语句的关键要素之间的对应关系;获取所述第一sql语句的关键要素;基于所述已处理的sql语句的关键要素对所述第一sql语句的关键要素进行优化,得到优化后的关键要素;基于所述优化后的关键要素获取对所述第一sql语句重写得到的第二sql语句,基于所述第二sql语句进行数据处理。7.本技术提供的技术方案,基于已处理的sql语句的关键要素对待处理的第一sql语句的关键要素进行优化,该优化是在查询分析引擎之外进行的,所以避免了修改优化规则时需要侵入到查询分析引擎内部的问题,降低了可实现的难度。此外,在得到优化后的关键要素后,基于优化后的关键要素获取对第一sql语句重写得到的第二sql语句,再基于第二sql语句进行数据处理,该sql重写可以复用到不同的数据库,且避免了不同数据库都需要修改优化规则的增量开发,减少了开发工作量。8.在一种可能的实现方式中,所述基于所述已处理的sql语句的关键要素对所述第一sql语句的关键要素进行优化,得到优化后的关键要素,包括:遍历所述关系型数据,将遍历到的关系型数据中的关键要素与所述第一sql语句的关键要素进行匹配,得到匹配结果;确定所述匹配结果中满足条件的关系型数据;基于所述满足条件的关系型数据对应的物理执行计划,对所述第一sql语句的关键要素进行优化,得到优化后的关键要素。9.在一种可能的实现方式中,所述确定所述匹配结果中满足条件的关系型数据,包括:通过优化器提供的优化规则确定所述满足条件的关系型数据。10.在一种可能的实现方式中,所述优化规则是所述优化器内部的优化规则,或者是通过所述优化器提供的接口连接到的所述优化器外部,由外部输入的优化规则。优化规则可通过不同方式获取,增加了灵活性。11.在一种可能的实现方式中,所述基于所述满足条件的关系型数据对应的物理执行计划,对所述第一sql语句的关键要素进行优化,得到优化后的关键要素,包括:基于所述满足条件的关系型数据对应的物理执行计划,修改所述第一sql语句的关键要素中的部分信息,得到所述优化后的关键要素;或者,基于所述满足条件的关系型数据对应的物理执行计划,修改所述第一sql语句的关键要素中的全部信息,得到所述优化后的关键要素。12.在一种可能的实现方式中,所述基于所述第二sql语句进行数据处理,包括:将所述第二sql语句进行语法适配,按照适配后的sql语句进行数据处理。通过将第二sql语句进行语法适配,增加后续处理的成功率。13.在一种可能的实现方式中,所述获取所述第一sql语句的关键要素,包括:对所述第一sql语句进行词法分析,得到第一词法分析结果;对所述第一词法分析结果进行语法分析,得到第一语法分析结果;对所述第一语法分析结果进行语义分析,得到第一语义分析结果;基于所述第一语义分析结果,对所述第一sql语句进行检验;当所述第一sql语句检验合格,获取所述第一sql语句的关键要素。通过对第一sql语句进行检验,在第一sql语句检验合格后再去获取关键要素,从而避免因第一sql语句不合格而继续处理导致的资源浪费,继而可以提高处理的可靠性。14.在一种可能的实现方式中,所述对所述第一sql语句进行检验,包括:对所述第一sql语句所涉及到的模式schema的合法性、表table的存在性和列column的存在性中的至少一个进行检验。15.在一种可能的实现方式中,所述基于所述第二sql语句进行数据处理,包括:对所述第二sql语句进行词法分析,得到第二词法分析结果;对所述第二词法分析结果进行语法分析,得到第二语法分析结果;对所述第二语法分析结果进行语义分析,得到第二语义分析结果;基于所述第二语义分析结果,生成逻辑执行计划;基于所述逻辑执行计划,生成物理执行计划;基于所述物理执行计划进行数据处理。16.在一种可能的实现方式中,所述关系型数据是物化视图,或者是关系型缓存。关系型数据的形式可以多样化,提高灵活性。17.第二方面,提供了一种数据处理的装置,所述装置包括:18.第一获取模块,用于获取第一sql语句和关系型数据,所述关系型数据包括已处理的sql语句和所述已处理的sql语句的关键要素之间的对应关系;19.第二获取模块,用于获取所述第一sql语句的关键要素;20.优化模块,用于基于所述已处理的sql语句的关键要素对所述第一sql语句的关键要素进行优化,得到优化后的关键要素;21.重写模块,用于基于所述优化后的关键要素获取对所述第一sql语句重写得到的第二sql语句;22.处理模块,用于基于所述第二sql语句进行数据处理。23.在一种可能的实现方式中,所述优化模块,用于遍历所述关系型数据,将遍历到的关系型数据中的关键要素与所述第一sql语句的关键要素进行匹配,得到匹配结果;确定所述匹配结果中满足条件的关系型数据;24.基于所述满足条件的关系型数据对应的物理执行计划,对所述第一sql语句的关键要素进行优化,得到优化后的关键要素。25.在一种可能的实现方式中,所述优化模块,用于通过优化器提供的优化规则确定所述满足条件的关系型数据。26.在一种可能的实现方式中,所述优化规则是所述优化器内部的优化规则,或者是通过所述优化器提供的接口连接到的所述优化器外部,由外部输入的优化规则。27.在一种可能的实现方式中,所述优化模块,用于基于所述满足条件的关系型数据对应的物理执行计划,修改所述第一sql语句的关键要素中的部分信息,得到所述优化后的关键要素;或者,基于所述满足条件的关系型数据对应的物理执行计划,修改所述第一sql语句的关键要素中的全部信息,得到所述优化后的关键要素。28.在一种可能的实现方式中,所述处理模块,用于将所述第二sql语句进行语法适配,按照适配后的sql语句进行数据处理。29.在一种可能的实现方式中,所述第二获取模块,用于对所述第一sql语句进行词法分析,得到第一词法分析结果;对所述第一词法分析结果进行语法分析,得到第一语法分析结果;30.对所述第一语法分析结果进行语义分析,得到第一语义分析结果;基于所述第一语义分析结果,对所述第一sql语句进行检验;当所述第一sql语句检验合格,获取所述第一sql语句的关键要素。31.在一种可能的实现方式中,所述第二获取模块,用于对所述第一sql语句所涉及到的模式schema的合法性、表table的存在性和列column的存在性中的至少一个进行检验。32.在一种可能的实现方式中,所述处理模块,用于对所述第二sql语句进行词法分析,得到第二词法分析结果;对所述第二词法分析结果进行语法分析,得到第二语法分析结果;33.对所述第二语法分析结果进行语义分析,得到第二语义分析结果;基于所述第二语义分析结果,生成逻辑执行计划;基于所述逻辑执行计划,生成物理执行计划;基于所述物理执行计划进行数据处理。34.在一种可能的实现方式中,所述关系型数据是物化视图,或者是关系型缓存。35.另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以使所述计算机设备实现上述任一所述的数据处理的方法。36.另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现上述任一所述的数据处理的方法。37.还提供了另一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行上述任一种可能的实施方式中的方法。38.可选地,所述处理器为一个或多个,所述存储器为一个或多个。39.可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。40.在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(readonlymemory,rom),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术对存储器的类型以及存储器与处理器的设置方式不做限定。41.还提供了一种计算机程序(产品),所述计算机程序(产品)包括:计算机程序代码,当所述计算机程序代码被计算机运行时,使得所述计算机执行上述任一所述的方法。42.还提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行上述任一所述的方法。43.还提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行上述任一所述的方法。附图说明44.图1是本技术实施例提供的一种数据处理的方法实施环境的示意图;45.图2是本技术实施例提供的一种数据处理的方法的流程图;46.图3是本技术实施例提供的一种数据处理的过程示意图;47.图4是本技术实施例提供的一种数据库中可利用sql语句进行操作的表的示意图;48.图5是本技术实施例提供的一种结构化数据的示意图;49.图6是本技术实施例提供的一种sql重写架构示意图;50.图7是本技术实施例提供的一种结构化数据的示意图;51.图8是本技术实施例提供的一种查询分析引擎的架构示意图;52.图9是本技术实施例提供的一种数据处理的方法的整体架构的对比示意图;53.图10是本技术实施例提供的一种数据处理的装置的结构示意图;54.图11是本技术实施例提供的一种网络设备的结构示意图;55.图12是本技术实施例提供的一种服务器的结构示意图。具体实施方式56.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。57.本技术实施例提供了一种数据处理的方法,该方法可应用于图1所示的实施环境中。该实施环境可以包括:数据处理设备11和数据库12。58.其中数据库12保存有可处理的数据,数据库12之外的设备既可以向数据库12中输入数据,以使数据库12进行数据保存,也可以从数据库12中提取数据、删除数据等。示例性地,数据库12之外的设备可以为数据处理设备11。该数据处理设备11中安装有数据库操作系统,数据库12可以通过该数据库操作系统进行访问。数据库操作系统包括查询分析引擎,用户可以通过输入sql语句到查询分析引擎中,通过查询分析引擎来对数据库12中的数据进行处理操作。其中,查询分析引擎可以是大数据查询分析引擎,本技术实施例不对查询分析引擎的类型进行限定。查询分析引擎可以对输入的sql语句进行处理,并生成有序的访问数据库的物理执行计划。查询分析引擎处理sql语句进行数据处理所需的计算资源可以由数据处理设备11提供,也可以连接数据处理设备11外部的其他可提供计算资源的设备。59.示例性地,数据处理设备11可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心,还可以是其他具有数据处理需求的设备。数据处理设备11和数据库12通过有线或无线网络建立通信连接。60.本领域技术人员应能理解上述数据处理设备11和数据库12仅为举例,其他现有的或今后可能出现的数据处理设备和数据库如可适用于本技术,也应包含在本技术保护范围以内,并在此以引用方式包含于此。61.基于上述图1所示的实施环境,本技术实施例提供一种数据处理的方法,以该方法应用于数据处理设备为例。如图2所示,本技术实施例提供的方法可以包括如下步骤。62.步骤201,获取第一sql语句和关系型数据,关系型数据包括已处理的sql语句和该已处理的sql语句的关键要素之间的对应关系。63.其中,sql是一门计算机语言,用来访问和操作数据库。例如,通过sql语句可以对数据库中的数据进行查询数据等操作。64.在一种可能的实现方式中,获取第一sql语句是指获取客户端发送给查询分析引擎的第一sql语句。示例性地,查询分析引擎为大数据查询分析引擎。客户端发送给查询分析引擎的第一sql语句是用户需要对数据库中的数据进行目标处理操作时输入到客户端的sql语句,可对应图3所示的数据处理的过程中的sql语句。本技术实施例不对第一sql语句是哪种具体的sql语句加以限定。例如,目标处理操作是选取数据,第一sql语句是进行选取数据的sql语句。65.示例性地,第一sql语句是进行选取数据的sql语句中对图4所示的表进行选取数据操作的sql语句。其中,图4所示的表是数据库中可利用sql语句进行操作的一个表,该表的名字标识为动物animals,该表中共有三列,分别为:身份标识(identification,id)401、名字(name)402、分布地(distribution)403。当用户需要选取该表中名字(name)402列的数据时,从表animals中选取名字(name)列402所示的数据的sql语句为:selectnamefromanimals,选取的结果为得到图4中名字(name)列402'所示的数据。其中,select为选取,name为表animals中的一列。66.除了获取用于处理数据的第一sql语句之外,本技术实施例提供的方法还利用了关系型数据,该关系型数据包括已处理的sql语句和已处理的sql语句的关键要素之间的对应关系。其中,已处理的sql语句是指进行过处理并得到结果的sql语句,sql语句的关键要素是指构成该sql语句不可缺少的要素,例如,该sql语句涉及表table的表名,所有列的数据类型,该sql语句涉及的操作为选取select等。67.在获取关系型数据之前,需要构建虚拟数据集,该虚拟数据集用于存放获取到的关系型数据。在一种可能的实现方式中,构建虚拟数据集是指在查询分析引擎之外构建一个可以存放数据的虚拟数据集。68.在一种可能的实现方式中,获取关系型数据是获取已经存在的关系型数据。可选地,关系型数据是物化视图,或者是关系型缓存,本技术实施例不对关系型数据的类型进行限定。其中,物化视图是包括一个查询结果的数据库对象,是远程数据的本地副本。物化视图与普通视图的区别在于虚拟的表不同,例如,物化视图是真实存在的、占有内存容量的、保存了数据的、可定义存储参数的表。物化视图可以与表一样使用选择(select)数据、插入(insert)数据、更新(update)数据和删除(delete)数据,或者用于生成基于数据表求和的汇总表。69.关系型缓存是以缓存的方式提供已处理的sql语句与该sql语句的关键要素之间的对应关系。无论关系型数据采用物化视图还是关系型缓存,示例性地,以图4为例,对应图4中的查询结果为名字(name)列402'所示的数据,关系型数据包括的sql语句为与名字(name)列402'所示的数据对应的sql语句:selectnamefromanimals。与该sql语句对应的关键要素包括:table为animals、sql语句涉及的操作为选取select、选取的对象为表animals中的name列数据,name字段类型是字符串类型。70.在获取关系型数据之后,需要将获取到的关系型数据存放至虚拟数据集。以该关系型数据是物化视图为例,将物化视图存放至虚拟数据集。将获取到的关系型数据存放至虚拟数据集对应图3中调度至虚拟数据集的过程。71.步骤202,获取第一sql语句的关键要素。72.在一种可能的实现方式中,获取第一sql语句的关键要素的过程包括步骤2021至步骤2025。73.步骤2021,对第一sql语句进行词法分析,得到第一词法分析结果。74.示例性地,对第一sql语句进行词法分析,得到第一词法分析结果指的是将第一sql语句中的字符逐个读取并依据构词规则识别出第一sql语句中的单词符号。对第一sql语句进行词法分析对应图3sql重写中的语法分析与词法分析(parse)。可选地,对第一sql语句中的字符进行逐个读取是按照从左到右的规则进行逐个读取。示例性地,当第一sql语句为从图4所示的表animals中选取姓名(name)列402所示的数据的sql语句:selectnamefromanimals时,词法分析是从select中的s开始读取,到animals中的s结束读取,最终根据构词规则分别识别出select、name、from和animals。75.步骤2022,对第一词法分析结果进行语法分析,得到第一语法分析结果。76.在一种可能的实现方式中,对第一词法分析结果进行语法分析,得到第一语法分析结果指的是在对第一sql语句进行词法分析的基础上,将词法分析得到的单词符号组合成语法短语。对第一词法分析结果进行语法分析是在图3的sql重写中的语法分析与词法分析(parse)中进行的。示例性地,当对第一sql语句词法分析的结果是得到select、name、from和animals时,语法分析则将select、name、from、animals进行组合,得到结构正确的sql语句:selectnamefromanimals。77.步骤2023,对第一语法分析结果进行语义分析,得到第一语义分析结果。78.在一种可能的实现方式中,对第一语法分析结果进行语义分析,得到第一语义分析结果是指在对第一sql语句进行语法分析得到结构正确的sql语句的基础上,对第一sql语句进行语义分析。对第一语法分析结果进行语义分析对应图3的sql重写中的语义分析(analyze)。对第一sql语句进行语义分析包括确定第一sql语句所涉及的内容,确定第一sql语句执行的顺序,得到第一sql语句对应的结构化数据。79.示例性地,第一sql语句为:selectnamefromanimals,对该语句进行语义分析可以确定的信息包括:该语句涉及的表table的名字标识为animals,需要选取的列column为name列,执行的操作为选取select等信息。执行该语句的先后顺序为找到表animals,去除表animals中除name列之外的其他列,进而得到需要选取的name列数据。结构化数据是根据sql语句所涉及的内容得到,第一sql语句:selectnamefromanimals的结构化数据如图5所示。图5中from作用的对象是表table,对应的是读取表table。80.步骤2024,基于第一语义分析结果,对第一sql语句进行检验。81.该步骤为可选步骤,也可以不执行该步骤2024,而默认第一sql语句是检验合格的,直接执行步骤2025。在一种可能的实现方式中,基于第一语义分析结果,对第一sql语句进行检验指的是对经语义分析确定的第一sql语句涉及到的模式schema的合法性、表table的存在性和列column的存在性等内容中的至少一个进行检验。对第一sql语句进行检验对应图3中检验(validate)。示例性地,第一sql语句所涉及到的模式schema不合法时,则判定第一sql语句为不合格。当第一sql语句所涉及到table不存在时,则判定第一sql语句为不合格;当第一sql语句所涉及到column不存在时,则判定第一sql语句为不合格。当第一sql语句所涉及到的模式schema合法、表table存在和列column存在时,则判定第一sql语句为检验合格。82.步骤2025,当第一sql语句检验合格,获取第一sql语句的关键要素。83.在一种可能的实现方式中,关键要素指的是构成sql语句不可缺少的信息,是查询分析引擎内部对sql语句的表示形式中的任意一种。例如,关键要素包括执行sql语句需要读取的表table、sql语句中要查询的数据类型、sql语句的执行顺序、sql语句执行的操作类型等。可选地,sql语句的关键要素可以采用关系表达式来表示,其中将sql语句变为关系表达式对应图3中的sql语句转关系表达式(sqltorel)。其中,元数据信息用于提供获取关键要素所需的信息,例如,表table的名字标识。因此,获取第一sql语句的关键要素时,可获取元数据信息,基于元数据信息获取第一sql语句的关键要素。84.示例性地,当用户的目标处理操作是从名字标识为员工表emps的表中选取编号deptno大于10的deptno列数据,并根据deptno列对选中的数据进行分组时,第一sql语句为:selectdeptnofromempswheredeptno》10groupbydeptno,将第一sql语句转变为关键要素,该关键要素以关系表达式表示,该关系表达式包括但不限于以下内容:85.logicalproject(deptno={$0});86.logicalaggregation(hash={deptno});87.logicalfilter(condition={》(deptno,10)});88.logicaltablescan(table={emps},layout={deptno:bigint})。89.其中,logicalproject(deptno={$0})对应第一sql语句中的selectdeptno部分,表示的是第一sql语句要求的输出为deptno列,编号为$0。logicalproject为逻辑投影,用于过滤掉emps表中除deptno列之外的其他列。90.logicalaggregation(hash={deptno})对应第一sql语句中的groupbydeptno部分,表示的是输出的数据需要根据deptno列中的内容进行聚合分组。logicalaggregation为逻辑聚合,用于对散列哈希hash所指定的列的内容进行聚合分组,hash={deptno}指的是hash所指定的列为deptno列。91.logicalfilter(condition={》(deptno,10)})对应第一sql语句中的wheredeptno》10部分,表示的是输出deptno列中deptno》10的部分。logicalfilter为逻辑过滤,用于过滤掉deptno列中不符合条件condition的数据,condition={》(deptno,10)}指的是筛选条件为deptno》10。92.logicaltablescan(table={emps},layout={deptno:bigint})对应第一sql语句中的fromemps部分,表示读取emps表,layout用于介绍deptno列的类型为bigint(一种数据类型),logicaltablescan为逻辑文件读取,用于读取表table指定的表,table={emps}指的是table指定的表为名字标识为emps的表,layout用于介绍指定列的数据类型。93.步骤203,基于已处理的sql语句的关键要素对第一sql语句的关键要素进行优化,得到优化后的关键要素。94.在一种可能的实现方式中,基于已处理的sql语句的关键要素对第一sql语句的关键要素进行优化,得到优化后的关键要素包括步骤2031至步骤2033。对第一sql语句的关键要素进行优化对应图3中的优化(optimize)。95.步骤2031,遍历关系型数据,将遍历到的关系型数据中的关键要素与第一sql语句的关键要素进行匹配,得到匹配结果。96.在一种可能的实现方式中,遍历关系型数据,将遍历到的关系型数据中的关键要素与第一sql语句的关键要素进行匹配,得到匹配结果是指遍历存放在虚拟数据集中的关系型数据,将在虚拟数据集中遍历到的关系型数据的关键要素与第一sql语句的关键要素进行匹配,筛选出与第一sql语句的关键要素相关的关系型数据。其中,与第一sql语句的关键要素相关的关系型数据指的是与第一sql语句的关键要素所涉及的表table、列column等信息具有相关性的关系型数据。97.示例性地,当第一sql语句所涉及的表table和列column与一个关系型数据所涉及表table和列column相同,操作类型均为选取select时,可认为第一sql语句与该关系型数据相关。例如,当用户的目标处理操作是从名字标识为员工表emps的表中选取编号deptno大于10的deptno列数据,并根据deptno列对选中的数据进行分组时,第一sql语句为:selectdeptnofromempswheredeptno》10groupbydeptno。仍以上述步骤2025为例,第一sql语句的关键要素可以用关系表达式表示为:98.logicalproject(deptno={$0});99.logicalaggregation(hash={deptno});100.logicalfilter(condition={》(deptno,10)});101.logicaltablescan(table={emps},layout={deptno:bigint})。102.在关系型数据中与第一sql的关键要素相关的一个关系型数据对应的第三sql语句为:selectempid,deptnofromempswheredeptno》5groupbydeptno。其中,第三sql语句可对数据库进行的操作是从名字标识为员工表emps的表中选取编号deptno大于5的deptno列数据和empid列数据,并根据deptno列对选中的数据进行分组。第三sql语句的关键要素可以用关系表达式表示为:103.logicalproject(deptno={$0},empid={$1});104.logicalaggregation(hash={deptno});105.logicalfilter(condition={》(deptno,5)});106.logicaltablescan(table={emps},layout={deptno:bigint,empid:bigint})。107.上述第三sql语句的关系表达式的解释可参考步骤2025中对第一sql语句的关系表达式的解释,此处不再赘述。108.其中,第一sql语句要求deptno》10,第三sql语句要求deptno》5,第三sql语句选取的列比第一sql语句选取的列多一个empid列,其余内容均相同。也即其余关键要素都相同,且第三sql语句对应的关系型数据的查询结果包括第一sql语句对应的查询结果。因此,可认定第三sql语句对应的关系型数据与第一sql的关键要素相关,第三sql语句对应的关系型数据可以为匹配结果。109.步骤2032,确定匹配结果中满足条件的关系型数据。110.示例性地,满足条件的关系型数据是指满足优化规则中设定的条件的关系型数据。对于优化规则是何种具体的规则,本技术实施例不做限制,可根据经验设置。可选地,优化规则是代价最优规则(cost-basedoptimization,cbo)。在一种可能的实现方式中,确定匹配结果中满足条件的关系型数据是指通过优化器提供的优化规则确定步骤2031所得的匹配结果中满足条件的关系型数据。其中,优化器提供的优化规则包括优化器内部的优化规则,或者是通过优化器提供的接口连接到的优化器外部,由外部输入的优化规则。由于优化规则可通过不同方式获取,增加了灵活性。111.示例性地,第一sql语句为:selectdeptnofromempswheredeptno》10groupbydeptno,第一sql语句的关键要素可使用关系表达式表示为:112.logicalproject(deptno={$0});113.logicalaggregation(hash={deptno});114.logicalfilter(condition={》(deptno,10)});115.logicaltablescan(table={emps},layout={deptno:bigint})。116.将第一sql语句的关键要素与从虚拟数据集遍历到的关系型数据进行匹配,匹配结果为得到的两个与第一sql语句的关键要相关的关系型数据。与第一sql语句的关键要素相关的两个关系型数据对应的sql语句是第三sql语句:selectempid,deptnofromempswheredeptno》5groupbydeptno,与第四sql语句:selectempid,deptnofromempswheredeptno》3groupbydeptno。第三sql语句和第四sql语句均为对emps表中的deptno列和empid列数据进行选取。117.其中,第三sql语句与第四sql语句的区别在于第三sql语句选取deptno列数据的限制条件是deptno》5,第四sql语句选取deptno列数据的限制条件是deptno》3。使用第四sql语句进行处理得到的数据包含使用第三sql语句进行处理得到的数据,所以第四sql语句对应的关系型数据所包含的数据量大于第三sql语句对应的关系型数据所包含的数据量。118.由于第一sql语句选取deptno列数据的限制条件是deptno》10,且选取的数据仅为deptno列数据。所以第三sql语句与第四sql语句进行处理得到的数据均包含第一sql语句进行处理得到的数据。根据cbo规则,应尽可能减少需要处理的数据量,所以确定第三sql语句对应的关系型数据为步骤2031所得的匹配结果中满足条件的关系型数据。119.步骤2033,基于满足条件的关系型数据对应的物理执行计划,对第一sql语句的关键要素进行优化,得到优化后的关键要素。120.在一种可能的实现方式中,基于满足条件的关系型数据对应的处理执行计划,对第一sql语句的关键要素进行优化,得到优化后的关键要素包括:基于满足条件的关系型数据对应的物理执行计划,修改关键要素中的部分信息得到优化后的关键要素;或者,基于满足条件的关系型数据对应的物理执行计划,修改关键要素中的全部信息得到优化后的关键要素。121.当满足条件的关系型数据对应的物理执行计划与第一sql语句的关键要素部分相同时,则利用该物理执行计划修改关键要素中的部分信息得到优化后的关键要素。当满足条件的关系型数据对应的物理执行计划与第一sql语句的关键要素全部相同时,则利用该物理执行计划修改关键要素中的全部信息得到优化后的关键要素。122.示例性地,sql重写架构如图6所示。第一sql语句为:selectdeptnofromempswheredeptno》10groupbydeptno,第一sql语句的关键要素使用关系表达式表示为:123.logicalproject(deptno={$0});124.logicalaggregation(hash={deptno});125.logicalfilter(condition={》(deptno,10)});126.logicaltablescan(table={emps},layout={deptno:bigint})。127.与第一sql语句的关键要素对应的满足条件的关系型数据对应的物理执行计划为:128.logicalproject(deptno={$0},empid={$1});129.logicalaggregation(hash={deptno});130.logicalfilter(condition={》(deptno,5)});131.logicaltablescan(table={emps},layout={deptno:bigint,empid:bigint})。132.其中,满足条件的关系型数据对应的sql语句为第三sql语句:selectempid,deptnofromempswheredeptno》5groupbydeptno。由于第一sql语句的关键要素与满足条件的关系型数据对应的查询计划除选取列的约束条件和选取的列不同外,其他均相同。所以,当满足条件的关系型数据的名字标识为数据data时,则利用上述物理执行计划修改第一sql语句的关系表达式中的部分信息得到的优化后的关系表达式为:133.logicalproject(deptno={$0});134.logicalaggregation(hash={deptno});135.logicalfilter(condition={》(deptno,10)});136.logicaltablescan(table={data},layout={deptno:bigint})。137.其中,优化后的关系表达式是优化后的关键要素的一种表示方式。138.示例性地,第一sql语句为:selectdeptnofromempswheredeptno》10groupbydeptno,第一sql语句的关键要素使用关系表达式表示为:139.logicalproject(deptno={$0});140.logicalaggregation(hash={deptno});141.logicalfilter(condition={》(deptno,10)});142.logicaltablescan(table={emps},layout={deptno:bigint})。143.与第一sql语句的关键要素对应的满足条件的关系型数据对应的物理执行计划与第一sql语句对应的关系表达式相同,且满足条件的关系型数的名字标识为数据data。则利用该查询计划修改第一sql语句对应的关系表达式中的全部信息得优化后的表达式为:144.logicaltablescan(table={data})。145.其中,优化后的关系表达式是优化后的关键要素的一种表示方式。146.步骤204,基于优化后的关键要素获取对第一sql语句重写得到的第二sql语句,基于第二sql语句进行数据处理。147.在一种可能的实现方式中,基于优化后的关键要素获取对第一sql语句重写得到的第二sql语句,基于第二sql语句进行数据处理是指将第一sql语句的关键要素在步骤2033完成优化后得到的关键要素重写为第二sql语句,再利用第二sql语句输入到查询分析引擎中进行数据处理。可选地,优化后的关键要素可使用关系表达式表示。其中,优化后的关系表达式转换为第二sql语句的过程对应图3中关系表达式转sql语句(reltosql)。148.示例性地,优化后的关键要素是步骤2033中使用满足条件的关系型数据对应的物理执行计划,修改第一sql语句的关键要素中的部分信息得到的优化后的关键要素使用关系表达式表示为:149.logicalproject(deptno={$0});150.logicalaggregation(hash={deptno});151.logicalfilter(condition={》(deptno,10)});152.logicaltablescan(table={data},layout={deptno:bigint})。153.根据优化后的关键要素可以得到第二sql语句为:selectdeptnofromdatawheredeptno》10groupbydeptno。154.在一种可能的实现方式中,得到第二sql语句后需要将第二sql语句与查询分析引擎进行语法适配。将第二sql语句与查询分析引擎进行语法适配是对应图3中的关系表达式转sql语句(reltosql)。在将第二sql语句与查询分析引擎进行语法适配过程中,第二sql语句所代表的实际内容不改变的情况下,将第二sql语句转变为查询分析引擎可以读取的适配后的第二sql语句。在实际应用中,不同的查询分析引擎会有不同的sql方言,直接将第二sql语句输入查询分析引擎可能会存在错误识别的问题。所以需要在将第二sql语句输入至查询分析引擎之前,先将第二sql语句与查询分析引擎进行语法适配,使适配后的第二sql语句可以被查询分析引擎可以读取,且适配前后第二sql语句代表的实际内容不发生改变。因此,通过将第二sql语句进行语法适配,增加后续处理的成功率。155.在一种可能的实现方式中,基于第二sql语句进行数据处理包括步骤2041至步骤2046。156.步骤2041,对第二sql语句进行词法分析,得到第二词法分析结果。157.在一种可能的实现方式中,对第二sql语句进行词法分析与步骤2021中对第一sql语句进行词法分析的过程相同。对第二sql语句进行词法分析指的是将第二sql语句中的字符逐个读取并依据构词规则识别出第二sql语句中的单词符号。对第二sql语句进行词法分析对应图3的协调器(coordinator)中的语法分析与词法分析(parse)。可选地,对第二sql语句中的字符进行逐个读取是按照从左到右的规则进行逐个读取。158.步骤2042,对第二词法分析结果进行语法分析,得到第二语法分析结果;159.对第二词法分析结果进行语法分析与步骤2022中对第一词法分析结果进行语法分析的过程相同。对第二词法分析结果进行语法分析指的是在对第二sql语句词法分析的基础上,将词法分析得到的单词符号组合成结构上正确的语法短句。对第二词法分析结果进行语法分析对应图3的协调器(coordinator)中的语法分析与词法分析(parse)。160.步骤2043,对第二语法分析结果进行语义分析,得到第二语义分析结果。161.在一种可能的实现方式中,对第二语法分析结果进行语义分析,得到第二语义分析结果与步骤2023中对第一语法分析结果进行语义分析的过程相同。对第二语法分析结果进行语义分析对应图3中协调器(coordinator)中的语义分析(analyze)。对第二语法分析结果进行语义分析,得到第二语义分析结果是指对步骤2042中得到的结构正确的第二sql语句进行语义分析。对第二sql语句进行语义分析包括确定第二sql语句所涉及的内容,确定第二sql语句执行的顺序,得到第二sql语句对应的结构化数据。162.示例性地,第二sql语句为步骤204中提到的第二sql语句:selectdeptnofromdatawheredeptno》10groupbydeptno,则对第二sql语句进行语义分析确定第二sql语句所涉及的信息为:执行的操作是选取select,读取的表为data,选取的列为表data中的deptno列,选取deptno》10的部分,根据列deptno进行聚合分组。第二sql语句执行的顺序为读取表data,选出deptno》10的部分,根据deptno进行聚合分组,去除deptno列外其他列,进而确定需要输出的结果。与第二sql语句对应的便于处理的结构化数据如图7所示。163.步骤2044,基于第二语义分析结果,生成逻辑执行计划。164.在一种可能的实现方式中,基于第二语义分析结果,生成逻辑执行计划是指利用查询分析引擎中的执行器解析与第二sql语句对应的结构化数据,得到逻辑执行计划。生成逻辑执行计划对应图3中执行计划(planner)。示例性地,第二sql语句为步骤204中提到的第二sql语句:selectdeptnofromdatawheredeptno》10groupbydeptno。根据第二sql语句对应的结构化数据得到的逻辑执行计划为:165.logicalproject(deptno={$0});166.logicalaggregation(hash={deptno});167.logicalfilter(condition={》(deptno,10)});168.logicaltablescan(table={data},layout={deptno:bigint})。169.步骤2045,基于逻辑执行计划,生成物理执行计划。170.在一种可能的实现方式中,基于逻辑执行计划,生成物理执行计划指的是基于步骤2044中得到的逻辑执行计划,生成可使查询分析引擎中的执行器worker执行数据查询的物理执行计划。示例性地,物理执行计划是根据逻辑执行计划生成的对应的算子,该算子可以被查询分析引擎识别并执行数据处理与结果收集。生成物理执行计划对应图3中的执行计划(planner)。查询分析引擎的架构如图8所示,图8中cli为命令行界面(command-lineinterface,cli),jdbc为数据库连接(javadatabaseconnectivity,jdbc)。171.步骤2046,基于物理执行计划进行数据处理。172.在一种能实现的方式中,基于物理执行计划进行数据处理指的是将步骤2045中生成的物理执行计划分发到查询分析引擎的执行器worker上进行执行,并将worker上返回的数据在协调器coordinator处进行汇总并返回。其中,基于物理执行计划进行数据处理对应图3中执行任务调度(schedule)。nullend204.》casewhenss1.store_sales》0thenss2.store_sales/ss1.store_saleselsenullend205.adncasewhenws2.web_sales》0thenws3.web_sales/ws2.web_saleselsenullend206.》casewhenss2.store_sales》0thenss3.store_sales/ss2.store_saleselsenullend//满足and中所有条件的可以被选取207.orderbyss1.ca_county;//针对ss1.ca_county列进行排序208.在对数据进行预处理中,将ss和ws两个子查询subquery的数据,作为查询结果的数据存放到关系型缓存当中,并将ss和ws命令为ss_mv和ws_mv。再将关系型缓存中的ss_mv和ws_mv存放至构建的虚拟数据集中。将ss和ws对应的子查询subquery创建关系缓存并命令为ss_mv和ws_mv的过程如下:209.withssas//对应关系型缓存的sql语句是:[0210][0211]客户端接收到第一sql语句后,将第一sql语句发送到图3中sql重写的语法分析与词法分析(parse)中进行处理,在语法分析与词法分析(parse)先对第一sql语句进行词法分析,得到第一词法分析结果。再对第一词法分析结果进行语法分析,得到第一语法分析结果。将第一语法分结果发送至语义分析,根据语义分析得到的第一语义分析结果对第一sql语句进行检验,获取检验合格后的第一sql语句的关键要素,再利用虚拟数据集中存放的ss_mv和ws_mv所对应的物理执行计划对第一sql语句的关键要素进行优化,再将优化后的关键要素转变为第二sql语句,得到第二sql语句为:[0212][0213][0214][0215]得到第二sql语句后,再对第二sql语句进行语法适配,使得第二sql语句可以被查询分析引擎读取。在查询分析引擎中,对第二sql语句依次进行词法分析、语法分析和语义分析,得到第二语义分析结果,再利用查询分析引擎中的执行器解析第二语义分析结果中的结构化数据,得到逻辑执行计划。之后,基于逻辑执行计划生成物理执行计划,然后,将物理执行分发至执行器worker进行查询,最终得到的查询结果并在协调器coordinator处进行汇总并返回。[0216]本技术实施例提供的数据处理的方法的整体架构如图9所示。通过对比第一sql语句与第二sql语句可以得到,输入的第一sql语句包含选取条件对应的17个join算子、聚合分组对应的6个aggregation算子和需要执行的命令对应的37个阶stage,使用本技术实施例提供的数据处理的方法中的sql重写后得到的第二sql语句包含选取条件对应的5个join算子、0个aggregation算子和需要执行的命令对应的9个阶stage。其中,aggregation和join均为算子类型。第二sql语句与第一sql语句相比,算子数量大大降低,对于计算资源的需求显著降低。同时,针对不同的查询分析引擎,均可以复用sql重写模块进行数据的查询,降低了开发的工作难度和工作量。[0217]以上介绍了本技术实施例的数据处理的方法,与上述方法对应,本技术实施例还提供了数据处理的装置。图10是本技术实施例提供的一种数据处理的装置的结构示意图。基于图10所示的如下多个模块,该图10所示的数据处理的装置能够执行上述图2所示的全部或部分操作。应理解到,该装置可以包括比所示模块更多的附加模块或者省略其中所示的一部分模块,本技术实施例对此并不进行限制。如图10所示,该装置包括:[0218]第一获取模块1001,用于获取第一sql语句和关系型数据,关系型数据包括已处理的sql语句和已处理的sql语句的关键要素之间的对应关系;[0219]第二获取模块1002,用于获取第一sql语句的关键要素;[0220]优化模块1003,用于基于已处理的sql语句的关键要素对第一sql语句的关键要素进行优化,得到优化后的关键要素;[0221]重写模块1004,用于基于优化后的关键要素获取对第一sql语句重写得到的第二sql语句;[0222]处理模块1005,用于基于第二sql语句进行数据处理。[0223]在一种可能的实现方式中,优化模块1003,用于遍历关系型数据,将遍历到的关系型数据中的关键要素与第一sql语句的关键要素进行匹配,得到匹配结果;确定匹配结果中满足条件的关系型数据;[0224]基于满足条件的关系型数据对应的物理执行计划,对第一sql语句的关键要素进行优化,得到优化后的关键要素。[0225]在一种可能的实现方式中,优化模块1003,用于通过优化器提供的优化规则确定满足条件的关系型数据。[0226]在一种可能的实现方式中,优化规则是优化器内部的优化规则,或者是通过优化器提供的接口连接到的优化器外部,由外部输入的优化规则。[0227]在一种可能的实现方式中,优化模块1003,用于基于满足条件的关系型数据对应的物理执行计划,修改第一sql语句的关键要素中的部分信息,得到优化后的关键要素;或者,基于满足条件的关系型数据对应的物理执行计划,修改第一sql语句的关键要素中的全部信息,得到优化后的关键要素。[0228]在一种可能的实现方式中,处理模块1005,用于将第二sql语句进行语法适配,按照适配后的sql语句进行数据处理。[0229]在一种可能的实现方式中,第二获取模块1002,用于对第一sql语句进行词法分析,得到第一词法分析结果;对第一词法分析结果进行语法分析,得到第一语法分析结果;[0230]对第一语法分析结果进行语义分析,得到第一语义分析结果;基于第一语义分析结果,对第一sql语句进行检验;当第一sql语句检验合格,获取第一sql语句的关键要素。[0231]在一种可能的实现方式中,第二获取模块1002,用于对第一sql语句所涉及到的模式schema的合法性、表table的存在性和列column的存在性中的至少一个进行检验。[0232]在一种可能的实现方式中,处理模块1005,用于对第二sql语句进行词法分析,得到第二词法分析结果;对第二词法分析结果进行语法分析,得到第二语法分析结果;[0233]对第二语法分析结果进行语义分析,得到第二语义分析结果;基于第二语义分析结果,生成逻辑执行计划;基于逻辑执行计划,生成物理执行计划;基于物理执行计划进行数据处理。[0234]在一种可能的实现方式中,关系型数据是物化视图,或者是关系型缓存。[0235]需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。[0236]参见图11,图11示出了本技术一个示例性实施例提供的网络设备2000的结构示意图。图11所示的网络设备2000用于执行上述图2所示的数据处理的方法所涉及的操作。该网络设备2000例如是交换机、路由器等,该网络设备2000可以由一般性的总线体系结构来实现。[0237]如图11所示,网络设备2000包括至少一个处理器2001、存储器2003以及至少一个通信接口2004。[0238]处理器2001例如是通用中央处理器(centralprocessingunit,cpu)、数字信号处理器(digitalsignalprocessor,dsp)、网络处理器(networkprocesser,np)、图形处理器(graphicsprocessingunit,gpu)、神经网络处理器(neural-networkprocessingunits,npu)、数据处理单元(dataprocessingunit,dpu)、微处理器或者一个或多个用于实现本技术方案的集成电路。例如,处理器2001包括专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。pld例如是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld)、现场可编程逻辑门阵列(field-programmablegatearray,fpga)、通用阵列逻辑(genericarraylogic,gal)或其任意组合。其可以实现或执行结合本发明实施例公开内容所描述的各种逻辑方框、模块和电路。处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,dsp和微处理器的组合等等。[0239]可选的,网络设备2000还包括总线。总线用于在网络设备2000的各组件之间传送信息。总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。[0240]存储器2003例如是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器2003例如是独立存在,并通过总线与处理器2001相连接。存储器2003也可以和处理器2001集成在一起。[0241]通信接口2004使用任何收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(ran)或无线局域网(wirelesslocalareanetworks,wlan)等。通信接口2004可以包括有线通信接口,还可以包括无线通信接口。具体的,通信接口2004可以为以太(ethernet)接口、快速以太(fastethernet,fe)接口、千兆以太(gigabitethernet,ge)接口,异步传输模式(asynchronoustransfermode,atm)接口,无线局域网(wirelesslocalareanetworks,wlan)接口,蜂窝网络通信接口或其组合。以太网接口可以是光接口,电接口或其组合。在本技术实施例中,通信接口2004可以用于网络设备2000与其他设备进行通信。[0242]在具体实现中,作为一种实施例,处理器2001可以包括一个或多个cpu,如图11中所示的cpu0和cpu1。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。[0243]在具体实现中,作为一种实施例,网络设备2000可以包括多个处理器,如图11中所示的处理器2001和处理器2005。这些处理器中的每一个可以是一个单核处理器(single-cpu),也可以是一个多核处理器(multi-cpu)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。[0244]在具体实现中,作为一种实施例,网络设备2000还可以包括输出设备和输入设备。输出设备和处理器2001通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquidcrystaldisplay,lcd)、发光二级管(lightemittingdiode,led)显示设备、阴极射线管(cathoderaytube,crt)显示设备或投影仪(projector)等。输入设备和处理器2001通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。[0245]在一些实施例中,存储器2003用于存储执行本技术方案的程序代码2010,处理器2001可以执行存储器2003中存储的程序代码2010。也即是,网络设备2000可以通过处理器2001以及存储器2003中的程序代码2010,来实现方法实施例提供的数据处理的方法。程序代码2010中可以包括一个或多个软件模块。可选地,处理器2001自身也可以存储执行本技术方案的程序代码或指令。[0246]在具体实施例中,本技术实施例的网络设备2000可对应于上述各个方法实施例中的数据处理的设备。[0247]其中,图2所示的数据处理的方法的各步骤通过网络设备2000的处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。[0248]图12是本技术实施例提供的一种服务器的结构示意图,该服务器可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(centralprocessingunits,cpu)1501和一个或多个存储器1502,其中,该一个或多个存储器1502中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器1501加载并执行,以使该服务器实现上述各个方法实施例提供的数据处理的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。[0249]本技术实施例还提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行数据处理的方法。[0250]应理解的是,上述处理器可以是cpu,还可以是其他通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advancedriscmachines,arm)架构的处理器。[0251]进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。[0252]该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用。例如,静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicrandomaccessmemory,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledatadatesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。[0253]本技术实施例还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行,以使计算机实现如上任一所述的数据处理的方法。[0254]本技术实施例还提供了一种计算机程序(产品),当计算机程序被计算机执行时,可以使得处理器或计算机执行上述方法实施例中对应的各个步骤和/或流程。[0255]本技术实施例还提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行如上任一所述的数据处理的方法。[0256]本技术实施例还提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行如上任一所述的数据处理的方法。[0257]在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如,固态硬盘(solidstatedisk))等。[0258]本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和模块,能够以软件、硬件、固件或者其任意组合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。[0259]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。[0260]当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。作为示例,本技术实施例的方法可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质二者中。[0261]用于实现本技术实施例的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。[0262]在本技术实施例的上下文中,计算机程序代码或者相关数据可以由任意适当载体承载,以使得设备、装置或者处理器能够执行上文描述的各种处理和操作。载体的示例包括信号、计算机可读介质等等。[0263]信号的示例可以包括电、光、无线电、声音或其它形式的传播信号,诸如载波、红外信号等。[0264]机器可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、光存储设备、磁存储设备,或其任意合适的组合。[0265]所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、设备和模块的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。[0266]在本技术所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、设备或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。[0267]该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本技术实施例方案的目的。[0268]另外,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。[0269]该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例中方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。[0270]本技术中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种所述示例的范围的情况下,第一图像可以被称为第二图像,并且类似地,第二图像可以被称为第一图像。第一图像和第二图像都可以是图像,并且在某些情况下,可以是单独且不同的图像。[0271]还应理解,在本技术的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。[0272]本技术中术语“至少一个”的含义是指一个或多个,本技术中术语“多个”的含义是指两个或两个以上,例如,多个第二报文是指两个或两个以上的第二报文。本文中术语“系统”和“网络”经常可互换使用。[0273]应理解,在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。[0274]还应理解,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本技术中的字符“/”,一般表示前后关联对象是一种“或”的关系。[0275]还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。[0276]还应理解,术语“若”和“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“若确定...”或“若检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。[0277]应理解,根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其它信息确定b。[0278]还应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1