CN115858556A - 一种数据处理方法、装置、存储介质及电子设备 - Google Patents
一种数据处理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN115858556A CN115858556A CN202211412477.1A CN202211412477A CN115858556A CN 115858556 A CN115858556 A CN 115858556A CN 202211412477 A CN202211412477 A CN 202211412477A CN 115858556 A CN115858556 A CN 115858556A
- Authority
- CN
- China
- Prior art keywords
- sql
- text
- engine
- target
- matching degree
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书公开了一种数据处理方法、装置、存储介质及电子设备,其中,方法包括:提取获取到的目标SQL文本的SQL文本特征,基于SQL文本特征确定目标SQL文本与至少一个SQL计算引擎的引擎匹配度,基于引擎匹配度从至少一个SQL计算引擎确定目标SQL计算引擎,以基于目标SQL文本控制目标SQL计算引擎进行执行处理。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置、存储介质及电子设备。
背景技术
随着通信网络的快速发展,数据呈现了飞快的增长趋势,数据类型也越来越复杂,常使用结构化数据技术(如结构化数据库)来满足目前大数据存储和分析的需求,在结构化数据技术所应有的数据处理场景中常会涉及到结构化查询语言(StructuredQueryLanguage,SQL),结构化查询语言SQL是关系型数据库的主要用户程序接口语言,诸如用户程序、网页、用户端等可以通过SQL实现对关系型数据库中数据的相关操作。
发明内容
本说明书提供了一种数据处理方法、装置、存储介质及电子设备,所述技术方案如下:
第一方面,本说明书提供了一种数据处理方法,所述方法包括:
获取目标SQL文本,提取所述目标SQL文本的SQL文本特征;
基于所述SQL文本特征确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度,基于所述引擎匹配度从所述至少一个SQL计算引擎确定目标SQL计算引擎;
基于所述目标SQL文本控制所述目标SQL计算引擎进行执行处理。
第二方面,本说明书提供了一种数据处理装置,所述装置包括:
特征提取模块,用于获取目标SQL文本,提取所述目标SQL文本的SQL文本特征;
引擎确定模块,用于基于所述SQL文本特征确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度,基于所述引擎匹配度从所述至少一个SQL计算引擎确定目标SQL计算引擎;
执行处理模块,用于基于所述目标SQL文本控制所述目标SQL计算引擎进行执行处理。
第三方面,本说明书提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
第四方面,本说明书提供一种电子设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
本说明书一些实施例提供的技术方案带来的有益效果至少包括:
在本说明书一个或多个实施例中,服务平台提取所获取的目标SQL文本中的SQL文本特征,基于SQL文本特征确定目标SQL文本与至少一个SQL计算引擎的引擎匹配度,以便于从至少一个SQL计算引擎确定目标SQL计算引擎,然后基于目标SQL文本控制目标SQL计算引擎进行执行处理。在获取到目标SQL文本后避免直接对目标SQL文本进行操作而是通过提取SQL文本特征,基于SQL文本特征确定目标SQL文本与SQL计算引擎的引擎匹配度,来选取目标SQL计算引擎对目标SQL文本进行执行处理,优化了SQL文本数据的数据处理流程,不需要耗费计算资源用于提前确定目标SQL文本的可执行SQL计算引擎,通过提取SQL文本特征可降低SQL计算引擎基于完整SQL文本进行处理时所导致的噪声敏感,实现了与若干SQL计算引擎的匹配程度的精细量化,提高了数据处理的效率和智能性。
附图说明
为了更清楚地说明本说明书或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书提供的一种数据处理系统的场景示意图;
图2是本说明书提供的一种数据处理方法的流程示意图;
图3是本说明书提供的另一种数据处理方法的流程示意图;
图4是本说明书提供的一种数据处理的场景示意图;
图5是本说明书提供的另一种数据处理方法的流程示意图;
图6是本说明书提供的另一种数据处理的场景示意图;
图7是本说明书提供的一种数据处理装置的结构示意图;
图8是本说明书提供的一种引擎确定模块的结构示意图;
图9是本说明书提供的一种电子设备的结构示意图;
图10是本说明书提供的操作系统和用户空间的结构示意图;
图11是图10中安卓操作系统的架构图;
图12是图10中IOS操作系统的架构图。
具体实施方式
下面将结合本说明书中的附图,对本说明书中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。词汇“/”一般表示前后关联对象是一种“或”的关系。
在相关技术中,服务平台会维护或关联用户大数据存储相关的SQL计算引擎,如Spark,Odps,BigQuery,Explorer,Flink等SQL计算引擎,不同SQL计算引擎通常对应有不同的SQL细节或语法规则,目前针对待执行的SQL文本,通常直接由指定SQL计算引擎直接进行执行处理,然而实际应用中,服务平台常常基于实际事务需求维护有多种SQL计算引擎,关于待执行的SQL文本,往往存在需要提前获取待执行SQL文本的可执行引擎、若干SQL计算引擎对于待执行SQL文本的错误代码等引起的噪声高度敏感、对于存在噪声的SQL文本没有高效的自适应机制等前述情形中的至少其一,基于此,可见存在数据处理效率较低,以及数据处理流程不便捷、不智能的情况。
下面结合具体的实施例对本申请进行详细说明。
请参见图1,为本说明书提供的一种数据处理系统的场景示意图。如图1所示,所述数据处理系统至少可以包括客户端集群和服务平台100。
所述客户端集群可以包括至少一个客户端,如图1所示,具体包括用户1对应的客户端1、用户2对应的客户端2、…、用户n对应的客户端n,n为大于0的整数。
客户端集群中的各客户端可以是具备通信功能的电子设备,该电子设备包括但不限于:可穿戴设备、手持设备、个人电脑、平板电脑、车载设备、智能手机、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中电子设备可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、个人数字处理(personal digital assistant,PDA)、5G网络或未来演进网络中的电子设备等。
所述服务平台100可以是单独的服务器设备,例如:机架式、刀片、塔式、或者机柜式的服务器设备,或采用工作站、大型计算机等具备较强计算能力硬件设备;也可以是采用多个服务器组成的服务器集群,所述服务集群中的各服务器可以是以对称方式组成的,其中每台服务器在事务链路中功能等价、地位等价,各服务器均可单独对外提供服务,所述单独提供服务可以理解为无需另外的服务器的辅助。
在本说明书的一个或多个实施例中,服务平台100与客户端集群中的至少一个客户端可建立通信连接,基于该通信连接完成数据处理过程中数据的交互,如客户端可以基于实际事务需求向服务平台100发送目标SQL文本,服务平台可以获取到目标SQL文本,通过执行本说明书一个或多个实施例的所述数据处理方法对目标SQL文本进行执行处理。
需要说明的是,服务平台100与客户端集群中的至少一个客户端通过网络建立通信连接进行交互通信,其中,网络可以是无线网络,也可以是有线网络,无线网络包括但不限于蜂窝网络、无线局域网、红外网络或蓝牙网络,有线网络包括但不限于以太网、通用串行总线(universal serial bus,USB)或控制器局域网络。在说明书一个或多个实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible Markup Language,XML)等的技术和/或格式来代表通过网络交换的数据(如目标压缩包)。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet Protocol Security,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
本说明书所提供的数据处理系统实施例与一个或多个实施例中的所述数据处理方法属于同一构思,在说明书一个或多个实施例涉及的所述数据处理方法对应的执行主体可以是上述服务平台100;具体基于实际应用环境确定。数据处理系统实施例其体现实现过程可详见下述的方法实施例,这里不再赘述。
基于图1所示的场景示意图,下面对本说明书一个或多个实施例提供的数据处理方法进行详细介绍。
请参见图2,为本说明书一个或多个实施例提供了一种数据处理方法的流程示意图,该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的数据处理装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。所述数据处理装置可以为服务平台。
具体的,该数据处理方法包括:
S102:获取目标SQL文本,提取所述目标SQL文本的SQL文本特征;
SQL也即结构化查询语言,结构化查询语言(StructuredQuery Language,SQL),结构化查询语言SQL是关系型数据库的主要用户程序接口语言,用户程序可以通过SQL实现对关系型数据库中的数据的查询、插入、删除、更新等操作。
SQL文本可以是被嵌入在使用各种编程语言(如C、C++、Java、Pathon等)编写的用户程序(源文件)中。目前,用户程序通过SQL文本可实现对服务平台所维护关系型数据库中相应数据的查询和操作,针对于服务平台而言,对SQL文本的执行处理主要基于SQL计算引擎实现的,可理解为服务平台通过控制SQL计算引擎对SQL文本进行执行处理,如对关系型数据库中的数据的查询、插入、删除、更新等操作。
在本说明书一个或多个实施例中,服务平台可基于实际应用需求维护多个SQL计算引擎,SQL计算引擎包括但不限于Spark计算引擎、Odps计算引擎、BigQuery计算引擎、Explorer计算引擎、Flink计算引擎等类型大数据存储计算引擎中一种或多种。实际应用中,常为了在特定SQL计算引擎上运行会基于标准SQL语言进行改进Sql语言,比如Hive SQL语言、Spark SQL语言、Flink SQL语言等等,基于特定SQL计算引擎的SQL语言所编码的SQL文本才能够被其对应的特定SQL计算引擎所执行,可以理解的每个SQL计算引擎有相应的SQL语法规则,不同SQL计算引擎存在SQL细节的差异和在SQL语法的差异。
在实际应用中,服务平台会选择以及维护多个不同的SQL计算引擎,为了提高效率同一SQL文本的事务逻辑可能会在一个或多个的SQL计算引擎上所执行,或,基于同一套事务策略,在不同的服务平台所维护的不同机房所部署,往往需要对历史的SQL文本关联或迁移到新的SQL计算引擎,因此需要保障数据处理的高效且稳健的进行。
在相关技术中,服务平台获取待执行的SQL文本需要耗费处理资源确定该SQL文本分发到具体哪一个SQL计算引擎进行执行,在本说明书一个或多个实施例中,通过执行所述数据处理方法,可避免耗费多余的处理资源提前向诸如用户端侧确定该SQL文本对应的SQL计算引擎,可以对待执行的SQL文本自动进行识别,提高数据处理效率较低,优化数据处理流程。
在一些实施例中,目标SQL文本可理解为待由服务平台所维护一个或多个SQL计算引擎进行数据处理的SQL文本,目标SQL文本可包括SQL语句、SQL代码等。
可选的,目标SQL文本可以是相应客户端以纯宿主语言编写,用户程序每次被调用,程序中的SQL文本被发送给服务平台以请求对数据库进行相应操作,通过服务平台可以通过SQL计算引擎对其进行编译执行处理。
可选的,目标SQL文本可以是以非宿主语言的语法嵌入在源文件中,源文件经过预编译后源文件中的SQL文本被提取出来并由服务平台所获取到。
示意性的,客户端可以向服务平台发送目标SQL文本,服务平台可以接收到该目标SQL文本,然后服务平台可以提取该目标SQL文本的SQL文本特征,以确定与若干SQL计算引擎的引擎匹配度。
所述SQL文本特征是基于SQL语法维度所提取的相应文本特征类型的SQL特征;进一步的,文本特征类型包括但不限于脚本特征类型、子句特征类型、表达式特征类型、函数特征类型、变量特征类型等特征类型中的至少一种。
在一些实施例中,所述SQL文本特征可以是基于SQL语法维度从目标SQL文本所提取出脚本特征类型对应的SQL脚本特征,可以是基于SQL语法维度从目标SQL文本所提取出子句特征类型对应的SQL子句特征,可以是基于SQL语法维度从目标SQL文本所提取出表达式特征类型对应的SQL表达式特征,可以是基于SQL语法维度从目标SQL文本所提取出函数特征类型对应的SQL函数特征,等等。
在本说明书一个或多个实施例,通常目标SQL文本的代码行较多,服务平台直接对目标SQL文本进行针对SQL计算引擎的全文本语法校验耗时较长,而SQL计算引擎的SQL语法检测对于错误代码噪声较敏感,只有全部文本代码正确才能够匹配成功,也即通常SQL计算引擎仅能够反馈SQL文本检验通过以及SQL文本检验不通过两种情况,在本说明书一个或多个实施例中,通过执行所述数据处理方法,可以先提取目标SQL文本的SQL文本特征,基于SQL文本特征来度量目标SQL文本与至少一个SQL计算引擎的引擎匹配度,以此来确定目标SQL计算引擎。
在本说明书一个或多个实施例,可以构建用于多层次结构提取器(可称之为结构提取器),结构提取器可用于提取目标SQL文本中相应文本特征类型的特定SQL结构、语法/代码细节等以得到SQL文本特征。采用预先构建的结构提取器来提取目标SQL文本中的SQL文本特征。
在本说明书一个或多个实施例,可以构建特征提取模型,对特征提取模型进行模型样本训练,得到训练好的特征提取模型,在实际应用中可以基于特征提取模型来提取目标SQL文本中的SQL文本特征。
S104:基于所述SQL文本特征确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度,基于所述引擎匹配度从所述至少一个SQL计算引擎确定目标SQL计算引擎;
所述引擎匹配度位衡量目标SQL文本与某SQL计算引擎的匹配程度,引擎匹配度通常以数值形式进行表征,如以百分比、比值等形式作为引擎匹配度的表征媒介。
在相关技术中,基于SQL计算引擎对原SQL文本进行SQL校验,只能检验出SQL检验通过和SQL检验不通过的结果,尤其针对包含错误语法代码的原SQL文本,直接基于相关SQL计算引擎的语法检验部分进行校验无法确定详细不通过情况,由于诸如SQL计算引擎开发时已经确定了处理逻辑等客观因素仅能够输出针对原SQL文本的SQL检验不通过结果。
在本说明书一个或多个实施例中,通过执行所述数据处理方法,不直接采用对原SQL文本进行SQL校验,而是先提取SQL文本特征,然后基于提取的SQL文本特征实现与至少一个SQL计算引擎进行匹配,来得到引擎匹配度,进一步对SQL计算引擎的匹配状况进行精准细化,实现不同层次特征维度的匹配检测,也即针对SQL文本的更细化检验维度能够进一步反馈SQL文本在不同层次特征维度的匹配检测情况,以便于后续诸如SQL纠错、SQL优化等策略提供参考。
在一种可行的实施方式中,预先可获取或构建不同SQL计算引擎分别对应的SQL语法规则,以SQL文本特征作为校验对象,SQL计算引擎对应的SQL语法规则为校验标准,对SQL文本特征进行不同SQL计算引擎的语法校验匹配处理,经语法校验匹配处理后可得到与SQL计算引擎的匹配度,该匹配度可一定程度上作为目标SQL文本与相应SQL计算引擎的引擎匹配度。进一步的,在服务平台所对应的SQL计算引擎的数量为多个的情况下,可以基于SQL文本特征确定目标SQL文本与多个SQL计算引擎的引擎匹配度,实现在多SQL计算引擎场景下基于引擎匹配度的SQL文本的分发,由确定的目标SQL计算引擎来执行目标SQL文本。
在一种可行的实施方式中,可以获取针对SQL计算引擎的语法校验单元,通常每个SQL计算引擎配置有语法校验单元,如Odps的语法校验单元,Spark的语法校验单元等,获取SQL计算引擎配置的语法校验单元,组成针对多个SQL计算引擎的语法校验器,然后将SQL文本特征输入至语法校验器中进行SQL计算引擎的语法校验,经语法校验处理后可得到与SQL计算引擎的匹配度,该匹配度可一定程度上作为目标SQL文本与相应SQL计算引擎的引擎匹配度。
在一种可行的实施方式中,可预先构建初始的引擎匹配模型,初始引擎匹配模型可以是基于机器学习模型构建的,通过获取大量的SQL文本特征样本,其中SQL文本特征样本可以预习标注匹配度标签,标注匹配度标签基于各个SQL计算引擎的语法检验规则对SQL文本特征样本进行人工检验所标注,将SQL文本特征样本输入至初始的引擎匹配模型进行训练,引擎匹配模型可以对这些SQL文本特征进行语法检验,输出各个SQL计算引擎的引擎匹配度。在训练过程中并结合引擎匹配度和标注匹配度标签采用反向传播的方式对引擎匹配模型进行模型误差调整,在训练完成之后,可以得到训练之后的引擎匹配模型;实际应用过程中,将SQL文本特征输入至引擎匹配模型中,可以输出与至少一个SQL计算引擎的引擎匹配度。
可选的,所述引擎匹配模型可以是基于卷积神经网络(Convolutional NeuralNetwork,CNN)模型,深度神经网络(Deep Neural Network,DNN)模型、循环神经网络(Recurrent Neural Networks,RNN)、模型、嵌入(embedding)模型、梯度提升决策树(Gradient Boosting Decision Tree,GBDT)模型、逻辑回归(Logistic Regression,LR)模型等机器学习模型中的一种或多种的拟合实现的。
可以理解的,服务平台基于SQL文本特征确定目标SQL文本与至少一个SQL计算引擎的引擎匹配度之后,然后基于引擎匹配度从至少一个SQL计算引擎确定目标SQL计算引擎。
可选的,服务平台选取引擎匹配度满足目标参数值(如100%)的SQL计算引擎确定为目标SQL计算引擎。
可选的,服务平台可以从多个引擎匹配度选取最高参数值指示的SQL计算引擎确定为目标SQL计算引擎。
在一些实施例中,若多个引擎匹配度中最高引擎匹配度不满足目标参数值(如100%),则可以按照最高引擎匹配度对应的目标SQL计算引擎为参考,对目标SQL文本进行SQL语句/代码纠错处理以优化SQL代码,然后得到优化后的目标SQL文本,在目标SQL文本与目标SQL计算引擎的引擎匹配度满足目标参数值(如100%)时,执行S106。
S106:基于所述目标SQL文本控制所述目标SQL计算引擎进行执行处理。
可以理解的,服务平台从至少一个个SQL计算引擎确定目标SQL计算引擎之后,控制所述目标SQL计算引擎对目标SQL文本进行SQL执行处理,以通过SQL文本实现对服务平台维护的关系型数据库中的诸如数据的查询、插入、删除、更新等操作。
在一种可行的实施方式中,所确定的目标SQL计算引擎可能是多个,当所述目标SQL计算引擎的数量为多个时,服务平台基于所述目标SQL文本控制所述目标SQL计算引擎进行执行处理,可以是:
可选的,服务平台可以将目标SQL文本同时发送至多个目标SQL计算引擎,控制各个目标SQL计算引擎对目标SQL文本进行执行处理;
可选的,服务平台可以获取各目标SQL计算引擎对应的集群信息,通过引入集群信息从引擎状态维度对若干目标SQL计算引擎进行筛选,得到筛选后的第一SQL计算引擎,基于所述目标SQL文本控制所述第一SQL计算引擎进行执行处理。
集群信息包括但不限于反馈SQL计算引擎状况的引擎状态参数、引擎闲置率、富余资源量、运行任务数量等等;
以集群信息至少包括引擎状态参数为例,通过引入引擎状态参数从引擎状态维度对若干目标SQL计算引擎进行筛选,得到筛选后的第一SQL计算引擎,基于所述目标SQL文本控制所述第一SQL计算引擎进行执行处理。
示意性的,引擎状态参数可以是引擎闲置率、富余资源量、运行任务数量等等,通过引擎状态参数可以对多个目标SQL计算引擎进行优先级排序,根据排序级别取指定数量的(如1个)第一SQL计算引擎。
可选的,服务平台可以获取各目标SQL计算引擎对应的引擎优先级,引擎优先级可以理解为预先根据实际应用事务规则对多个SQL计算引擎所设置的优先级别,基于各个目标SQL计算引擎的引擎优先级从各所述目标SQL计算引擎中确定第一SQL计算引擎(如可以将最高优先级的目标SQL计算引擎作为第一SQL计算引擎),然后基于目标SQL文本控制第一SQL计算引擎进行执行处理。
在本说明书一个或多个实施例中,服务平台提取所获取的目标SQL文本中的SQL文本特征,基于SQL文本特征确定目标SQL文本与至少一个SQL计算引擎的引擎匹配度,以便于从至少一个SQL计算引擎确定目标SQL计算引擎,然后基于目标SQL文本控制目标SQL计算引擎进行执行处理。在获取到目标SQL文本后避免直接对目标SQL文本进行操作而是通过提取SQL文本特征,基于SQL文本特征确定目标SQL文本与SQL计算引擎的引擎匹配度,来选取目标SQL计算引擎对目标SQL文本进行执行处理,优化了SQL文本数据的数据处理流程,不需要耗费计算资源用于提前确定目标SQL文本的可执行SQL计算引擎,通过提取SQL文本特征可降低SQL计算引擎基于完整SQL文本进行处理时所导致的噪声敏感,实现了与若干SQL计算引擎的匹配程度的精细量化,提高了数据处理的效率和智能性。
请参见图3,图3是本说明书一个或多个实施例提出的一种数据处理方法的另一种实施例的流程示意图。具体的:
S202:获取目标SQL文本,确定针对所述目标SQL文本的至少一个文本特征类型;
示意性的,所述文本特征类型包括但不限于脚本特征类型、子句特征类型、表达式特征类型、函数特征类型、变量特征类型等特征类型一种或多种的拟合;
进一步的,脚本特征类型、子句特征类型可以反馈SQL文本在整体的语法结构上的SQL特征,基于脚本特征类型、子句特征类型提取的特征可以用于在后续聚焦到SQL文本的语法结构维度,从语法结构维度来指示或反馈目标SQL文本与若干SQL计算引擎的匹配状况。
进一步的,表达式特征类型、函数特征类型、变量特征类型可以反馈SQL文本在细微的语法细节上的SQL特征,基于表达式特征类型、函数特征类型、变量特征类型提取的特征可以用于在后续聚焦到SQL文本的语法组成细节维度,从语法组成细节维度来指示或反馈目标SQL文本与若干SQL计算引擎的匹配状况。
具体的,预先可基于实际应用情况设置所提取SQL特征的文本特征类型,基于该文本特征类型来指示相应文本特征类型的特征的提取,如可以针对SQL文本设置脚本特征类型和子句特征类型;如可以针对SQL文本设置脚本特征类型、子句特征类型、表达式特征类型、函数特征类型、变量特征类型,等等。
S204:基于各所述文本特征类型分别提取所述目标SQL文本对应的至少一类SQL文本特征;
在本说明书一个或多个实施例中文本特征类型包括但不限于脚本特征类型、子句特征类型、表达式特征类型、函数特征类型、变量特征类型等特征类型一种或多种的拟合;
在一种可行的实施方式中,服务平台可以获取各所述文本特征类型对应的结构提取器,通过控制各结构提取器提取目标SQL文本对应的至少一类SQL文本特征。
可选的,若所述文本特征类型包括所述脚本特征类型,则服务平台基于脚本特征类型提取所述目标SQL文本对应的SQL脚本特征;
示意性的,假设脚本特征类型对应的结构提取器为L1结构提取器,L1结构提取器:用于提取脚本特征类型对应的SQL脚本特征,SQL脚本特征常为提取单独的SQL脚本;
示意性的,一个大的SQL文本,可以包括有多个SQL脚本,通常用分号做分隔符,在本说明书一个或多个实施例中,脚本特征类型对应的结构提取器用于根据分号分隔符来提取多个SQL脚本,也可称之为分号分隔符的提取器,把一个大的SQL文本,提取为多个可以独立运行的SQL脚本。
示意性的:一个SQL文本内容如下:
select*from t1;select*from t2;
经脚本特征类型对应的结构提取器对目标SQL文本进行特征提取,可以得到:select*from t1和select*from t1两个脚本,这两个脚本也即SQL脚本特征。
可选的,若所述文本特征类型包括所述子句特征类型,则服务平台基于子句特征类型提取所述目标SQL文本对应的SQL子句特征;
示意性的,假设子句特征类型对应的结构提取器为L2结构提取器,L2结构提取器:用于提取子句特征类型对应的SQL子句特征,SQL子句特征常为提取单独的SQL子句;
示意性的:每个可以独立运行的SQL脚本中,可以包括若干子句,标准的SQL结构以查询为例,SQL子句可以是:select子句、from子句、left join子句等等,子句通常包含在select中的语句块,from后面的语句块,join等其他连接词后面的语句块,子句不能单独运行,但是可以通过拼接简单的分号和select关键字,变成一个独立脚本,子句特征类型对应的结构提取器可以基于前述子句编码特性来提取诸如select子句、from子句、left join子句等等,以得到SQL子句特征。
可选的,若所述文本特征类型包括所述表达式特征类型,则服务平台基于表达式特征类型提取所述目标SQL文本对应的SQL表达式特征;
示意性的,假设表达式特征类型对应的结构提取器为L3结构提取器,L3结构提取器:用于提取SQL中的表达式三元组;
示意性的,比如SQL语句:select count(*)as cnt from t where a=1;
其中,SQL语句中a=1和count(*)as cnt就是表达式(特征),表达式最常见的出现方式是三个元素一组,a=1,其实可以分为'a','=',‘1’三部分,count(*)as cnt分为'count(*)','as',‘cnt’,三部分。实际应用中,表达式特征类型对应的结构提取器,可以按照上述三元组的特性提取SQL表达式特征,
若所述文本特征类型包括所述函数特征类型,则基于函数特征类型提取所述目标SQL文本对应的SQL函数特征;
示意性的,假设函数特征类型对应的结构提取器为L4结构提取器,L4结构提取器:用于提取函数特征类型对应的SQL函数特征,SQL函数特征常为提取SQL函数;
示意性的,比如SQL语句:select count(*)as cnt from t where a=1;其中count()就是一个函数特征,函数特征类型对应的结构提取器可以基于函数编码特性来提取SQL函数特征;
若所述文本特征类型包括所述变量特征类型,则基于变量特征类型提取所述目标SQL文本对应的SQL变量特征。
示意性的,假设变量特征类型对应的结构提取器为L5结构提取器,L5结构提取器:用于提取变量特征类型对应的SQL函数特征,SQL函数特征常为提取SQL变量,变量特征类型对应的结构提取器可以基于变量编码特性来提取SQL变量特征;
可以理解的,服务平台基于各文本特征类型分别提取所述目标SQL文本对应的至少一类SQL文本特征之后,然后可以基于SQL文本特征确定目标SQL文本与至少一个SQL计算引擎的引擎匹配度;
S206:对所述SQL文本特征进行至少一个SQL计算引擎的语法校验处理,得到语法检验处理后的词汇检验结果;
在本说明书一个或多个实施例中,在服务平台所对应的SQL计算引擎的数量为多个的情况下,可以基于SQL文本特征确定目标SQL文本与多个SQL计算引擎的引擎匹配度。
可以理解的,服务平台在提取文本特征类型时,按照所确定的若干文本特征类型分别提取相应文本特征类型对应的SQL文本特征,如提取出子句特征类型对应的SQL子句特征、提取出表达式特征类型对应的SQL表达式特征,在进行语法校验时是分别对不同文本特征类型对应的SQL文本特征进行校验的,可得到不同文本特征类型维度的校验结果。
实际应用中,服务平台可以确定针对SQL文本特征的至少一个文本特征类型;如SQL文本特征是按照子句特征类型、表达式特征类型所分别提取的特征,通常确定的针对SQL文本特征文本特征类型为子句特征类型、表达式特征类型。
进一步的,服务平台从SQL文本特征中获取各文本特征类型分别对应的参考SQL文本特征;参考SQL文本特征可以是基于实际特征提取状况所对应的SQL脚本特征、SQL子句特征、SQL表达式特征、SQL函数特征、SQL变量特征等特征中的一种或多种,
进一步的,服务平台在获取各文本特征类型分别对应的各类参考SQL文本特征之后,然后分别对参考SQL文本特征进行至少一个SQL计算引擎的语法校验处理,从而得到语法检验处理后的参考词汇检验结果,以生成包含所有参考词汇检验结果的词汇检验结果;
所述参考词汇检验结果为参考文本特征类型对应的参考SQL文本特征的词汇检验结果,如子句特征类型对应SQL子句特征的词汇子句检验结果,如脚本特征类型对应SQL脚本特征的词汇脚本检验结果,如表达式特征类型对应SQL表达式特征的词汇表达式检验结果,如函数特征类型对应SQL函数特征的词汇函数检验结果,如变量特征类型对应SQL变量特征的词汇变量检验结果。
在本说明书一个或多个实施例中,可以预先获取针对SQL计算引擎的语法校验单元,通常每个SQL计算引擎配置有语法校验单元,如Odps的语法校验单元,Spark的语法校验单元等,获取SQL计算引擎配置的语法校验单元,组成针对多个SQL计算引擎的语法校验器,然后将SQL文本特征输入至语法校验器中进行SQL计算引擎的语法校验,可以得到词汇检验结果,词汇检验结果通常为各SQL计算引擎分别对应的词汇通过数量;
在一种可行的实施方式中,对诸如参考SQL文本特征等SQL文本特征进行至少一个SQL计算引擎的语法校验处理,可以是:
服务平台获取针对至少一个SQL计算引擎对应的语法校验器,将SQL文本特征输入至语法校验器进行词汇文本校验,输出针对各SQL计算引擎分别对应的词汇通过数量,将各SQL计算引擎分别对应的词汇通过数量作为词汇检验结果。
示意性的,以SQL文本特征包括若干参考SQL文本特征:SQL脚本特征、SQL子句特征、SQL表达式特征为例。
示意性的,服务平台获取针对若干SQL计算引擎对应的语法校验器,将SQL脚本特征输入至语法校验器进行词汇文本(脚本)校验,输出针对各SQL计算引擎分别对应的词汇(脚本)通过数量;服务平台获取针对若干SQL计算引擎对应的语法校验器,将SQL子句特征输入至语法校验器进行词汇文本(子句)校验,输出针对各SQL计算引擎分别对应的词汇(子句)通过数量;服务平台获取针对若干SQL计算引擎对应的语法校验器,将SQL子句特征输入至语法校验器进行词汇文本(表达式)校验,输出针对各SQL计算引擎分别对应的词汇(表达式)通过数量。
示意性的,然后将词汇(子句)通过数量、词汇(脚本)通过数量、词汇(表达式)通过数量作为词汇检验结果。在SQL计算引擎的数量为n个的情况下,会得到n个SQL计算引擎的词汇检验结果。
进一步的,词汇检验结果包括词汇(子句)通过数量、词汇(脚本)通过数量、词汇(表达式)通过数量,后续引擎匹配度计算的为:基于词汇(子句)通过数量确定的引擎(子句)匹配度、引擎(脚本)匹配度、引擎(表达式)匹配度。
S208:基于所述词汇检验结果确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度。
可以理解的,服务平台得到语法检验处理后的词汇检验结果之后,获取词汇检验结果对应的针对各所述SQL计算引擎的词汇通过数量,以及确定SQL文本对应的检验词汇总数量;
所述检验词汇总数量非目标SQL文本进行文本分割所得到的词汇数量而是SQL文本特征进行文本分割所得到的词汇数量。
服务平台然后基于所述检验词汇总数量以及各所述SQL计算引擎对应的所述词汇通过数量,确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度。
示意性的,以词汇检验结果包括词汇(子句)通过数量、词汇(脚本)通过数量、词汇(表达式)通过数量为例,检验词汇总数量分别为SQL子句特征的词汇数量、SQL脚本特征的词汇数量、SQL表达式特征的词汇数量,后续引擎匹配度计算的为:基于“词汇(子句)通过数量”和“SQL子句特征的词汇数量”确定引擎(子句)匹配度、基于“词汇(脚本)通过数量”和“SQL脚本特征的词汇数量”确定引擎(脚本)匹配度、基于“词汇(表达式)通过数量”和“SQL表达式特征的词汇数量”确定引擎(表达式)匹配度。
示意性的,在SQL计算引擎的数量为n个的情况下,会得到n个SQL计算引擎的词汇检验结果,以基于n个SQL计算引擎的词汇检验结果得到n个引擎匹配度,然后基于这n个引擎匹配度进一步确定目标SQL计算引擎。
在一种可行的实施方式中,服务平台执行所述基于所述检验词汇总数量以及各所述SQL计算引擎对应的所述词汇通过数量,确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度,可以是:
计算各所述SQL计算引擎对应的所述词汇通过数量与所述检验词汇总数量的目标比值,将所述目标比值作为所述目标SQL文本与所述SQL计算引擎的引擎匹配度。
示意性的,以词汇检验结果包括词汇(子句)通过数量、词汇(脚本)通过数量、词汇(表达式)通过数量为例,检验词汇总数量分别为SQL子句特征的词汇数量、SQL脚本特征的词汇数量、SQL表达式特征的词汇数量,后续引擎匹配度计算的为:基于“词汇(子句)通过数量”和“SQL子句特征的词汇总数量”的目标比值确定引擎(子句)匹配度、基于“词汇(脚本)通过数量”和“SQL脚本特征的词汇总数量”的目标比值确定引擎(脚本)匹配度、基于“词汇(表达式)通过数量”和“SQL表达式特征的词汇总数量”的目标比值确定引擎(表达式)匹配度。
在一种具体的实施场景中,如图4所示,图4是一种数据处理的场景示意图,在图4中,服务平台获取到目标SQL文本,确定针对目标SQL文本的至少一个文本特征类型,具体为脚本特征类型、子句特征类型、表达式特征类型、函数特征类型。多个文本特征类型用于指示提取相应特征维度的SQL特征。进一步的,如图4所示,服务平台可以获取各文本特征类型对应的结构提取器,具体为用于提取脚本特征类型特征的L1结构提取器、提取子句特征类型特征的L2结构提取器、提取表达式特征类型特征的L3结构提取器、提取函数特征类型特征的L4结构提取器;
示意性的,基于L1结构提取器提取目标SQL文本的SQL脚本特征;基于L2结构提取器提取目标SQL文本的SQL子句特征;基于L3结构提取器提取目标SQL文本的SQL表达式特征;基于L4结构提取器提取目标SQL文本的SQL函数特征;
示意性的,以针对某个SQL计算引擎计算引擎匹配度为例:1、基于SQL脚本特征采用语法校验器进行脚本校验(也即图4所示的L1校验),得到词汇(脚本)通过数量以及针对SQL脚本特征的检验(脚本)词汇总数量;2、基于SQL子句特征采用语法校验器进行子句校验(也即图4所示的L2校验),得到词汇(子句)通过数量以及针对SQL脚本特征的检验(子句)词汇总数量;3、基于SQL表达式特征采用语法校验器进行表达式校验(也即图4所示的L3校验),得到词汇(脚本)通过数量以及针对SQL脚本特征的检验(脚本)词汇总数量;4、基于SQL函数特征采用语法校验器进行函数校验(也即图4所示的L4校验),得到词汇(函数)通过数量以及针对SQL脚本特征的检验(函数)词汇总数量。
示意性的,然后会基于所述检验词汇总数量以及各所述SQL计算引擎对应的所述词汇通过数量,确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度,如:基于“词汇(脚本)通过数量”和“SQL脚本特征的词汇总数量”的目标比值确定引擎(脚本)匹配度“L1:A”;如:基于“词汇(子句)通过数量”和“SQL子句特征的词汇总数量”的目标比值确定引擎(子句)匹配度“L2:B”;如:基于“词汇(表达式)通过数量”和“SQL表达式特征的词汇总数量”的目标比值确定引擎(表达式)匹配度“L3:C”;如:基于“词汇(函数)通过数量”和“SQL函数特征的词汇总数量”的目标比值确定引擎(函数)匹配度“L4:D”;
在一种具体的实施场景中:假设语法校验器用的是Odps的语法校验器,基于多层提取SQL文本特征,计算引擎匹配度之后,可以做以下几类分层处理:
类别1:引擎(脚本)匹配度为目标参数值(如100%),
此时:当引擎(脚本)匹配度100%时。说明目标SQL文本和这个引擎目标参数值(如100%)匹配,因为是从整体语法架构到细微语法细节的校验方式,引擎(子句)匹配度、引擎(表达式)匹配度通常也是目标参数值(如100%),也说明这个脚本可以在Odps引擎上执行,以及目标SQL文本可以在Odps引擎上执行。
类别2:引擎(脚本)匹配度和引擎(子句)匹配度的匹配不为100%,引擎(表达式)匹配度或者引擎(函数)匹配度中接近目标参数值(如100%),或者远高于引擎(脚本)匹配度和引擎(子句)匹配度
此时:引擎(表达式)匹配度或者引擎(函数)匹配度或引擎(变量)匹配度,代表SQL的语法细节,说明语法细节匹配度高,但是代表整体结构的引擎(脚本)匹配度和引擎(子句)匹配度低,说明和该引擎大概率匹配,但是可能结构错误,比如分号位置错误,括号不匹配等,后续可进行纠错。
类别3:“引擎(脚本)匹配度和引擎(子句)匹配度”远远高于“引擎(表达式)匹配度或者引擎(函数)匹配度或引擎(变量)匹配度”。
分析方法:引擎(脚本)匹配度和引擎(子句)匹配度代表整体的语法结构正确,但是涉及到语法细节的函数、变量等错误率较高,可能是函数写错,也可能是用了错误的语法分析器,需要针对下一个SQL引擎进行语法校验分析。
类别4:“引擎(脚本)匹配度、引擎(子句)匹配度引擎、(表达式)匹配度、引擎(函数)匹配度、引擎(变量)匹配度”匹配度都很低
分析方法:大概率不是Odps引擎能运行,需要针对下一个SQL引擎进行语法校验分析。
如果语法检查器针对所有的SQL引擎的引擎匹配度都不到目标参数值(如100%),说明后续可进行纠错,以使得引擎匹配度满足某个SQL引擎执行的要求。
S210:基于所述引擎匹配度从所述至少一个SQL计算引擎确定目标SQL计算引擎;
可以理解的,服务平台基于SQL文本特征确定目标SQL文本与至少一个SQL计算引擎的引擎匹配度之后,然后基于引擎匹配度所包含的若干维度的匹配度(引擎(脚本)匹配度、引擎(子句)匹配度引擎、(表达式)匹配度、引擎(函数)匹配度、引擎(变量)匹配度)从至少一个SQL计算引擎确定目标SQL计算引擎。
在一些实施例中,还可对引擎匹配度所包含的若干维度的匹配度(引擎(脚本)匹配度、引擎(子句)匹配度引擎、(表达式)匹配度、引擎(函数)匹配度、引擎(变量)匹配度)进行匹配度拟合,可以是采用加权拟合的方式,预先赋予(引擎(脚本)匹配度、引擎(子句)匹配度引擎、引擎(表达式)匹配度、引擎(函数)匹配度、引擎(变量)匹配度)不同的权重,然后采用加权求和的方式得到总的匹配度作为引擎匹配度。
可选的,服务平台选取引擎匹配度满足目标参数值(如100%)的SQL计算引擎确定为目标SQL计算引擎,可以理解为引擎匹配度所包含的若干维度的匹配度(引擎(脚本)匹配度、引擎(子句)匹配度引擎、(表达式)匹配度、引擎(函数)匹配度、引擎(变量)匹配度)均满足目标参数值(如100%)。
可选的,服务平台可以从多个引擎匹配度选取最高参数值指示的SQL计算引擎确定为目标SQL计算引擎。
在一些实施例中,若多个引擎匹配度中最高引擎匹配度不满足目标参数值(如100%),则可以按照最高引擎匹配度对应的目标SQL计算引擎为参考,对目标SQL文本进行SQL语句/代码纠错处理以优化SQL代码,然后得到优化后的目标SQL文本,在目标SQL文本与目标SQL计算引擎的引擎匹配度满足目标参数值(如100%)时,执行基于所述目标SQL文本控制所述目标SQL计算引擎进行执行处理。
S212:基于所述目标SQL文本控制所述目标SQL计算引擎进行执行处理。
具体可参考本说明书其他实施例的方法步骤,此处不再赘述。
在本说明书一个或多个实施例中,服务平台提取所获取的目标SQL文本中的SQL文本特征,基于SQL文本特征确定目标SQL文本与至少一个SQL计算引擎的引擎匹配度,以便于从至少一个SQL计算引擎确定目标SQL计算引擎,然后基于目标SQL文本控制目标SQL计算引擎进行执行处理。在获取到目标SQL文本后避免直接对目标SQL文本进行操作而是通过提取SQL文本特征,基于SQL文本特征确定目标SQL文本与SQL计算引擎的引擎匹配度,来选取目标SQL计算引擎对目标SQL文本进行执行处理,优化了SQL文本数据的数据处理流程,不需要耗费计算资源用于提前确定目标SQL文本的可执行SQL计算引擎,通过提取SQL文本特征可降低SQL计算引擎基于完整SQL文本进行处理时所导致的噪声敏感,实现了与若干SQL计算引擎的匹配程度的精细量化,提高了数据处理的效率和智能性;以及新引入了一种基于多维度SQL文本特征衡量SQL文本与计算引擎匹配度的度量方式,在这种度量方式上,把SQL文本和引擎的匹配关系从匹配/不匹配的情形,转换成一个相似问题,引擎匹配度反馈的相似度越高,代表原SQL文本和引计算擎的匹配度越高,匹配度也是后续纠错更新和分发引擎的依据。
请参见图5,图5是本说明书一个或多个实施例提出的一种数据处理方法的另一种实施例的流程示意图。具体的:
S302:获取目标SQL文本;
S304:提取所述目标SQL文本的SQL文本特征,基于所述SQL文本特征确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度;
具体可参考本说明书其他实施例的方法步骤,此处不再赘述。
S306:检测所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度中是否存在满足目标参数值的目标引擎匹配度;
所述目标参数值可以基于实际应用场景所设置,如将目标参数值设置为100%。
S308:若存在满足目标参数值的目标引擎匹配度,则从所述至少一个SQL计算引擎中,确定所述目标引擎匹配度指示的目标SQL计算引擎。
示意性的,假设服务平台包括3个SQL计算引擎,确定目标SQL文本与3个SQL计算引擎的引擎匹配度分别为:引擎匹配度A、引擎匹配度B、引擎匹配度C,“引擎匹配度A、引擎匹配度B、引擎匹配度C”中存在引擎匹配度C满足目标参数值(如100%),则引擎匹配度C为目标引擎匹配度,确定目标引擎匹配度-引擎匹配度C指示的目标SQL计算引擎。
S310:若不存在满足目标参数值的目标引擎匹配度,则对所述目标SQL文本进行SQL纠错更新处理,得到纠错更新处理后的参考SQL文本;
示意性的,假设服务平台包括4个SQL计算引擎,确定目标SQL文本与3个SQL计算引擎的引擎匹配度分别为:引擎匹配度A、引擎匹配度B、引擎匹配度C、引擎匹配度D,“引擎匹配度A、引擎匹配度B、引擎匹配度C、引擎匹配度D”均不满足目标参数值(如100%),服务平台可以对目标SQL文本进行SQL纠错更新处理,得到纠错更新处理后的参考SQL文本。
可以理解的,引擎匹配度可以包含多个不同层次特征维度的匹配,如脚本特征类型维度、子句特征类型维度、表达式特征类型维度等等,可以根据不同层次特征维度的引擎匹配度进行针对性纠错,如子句特征类型维度的引擎匹配度不满足目标参数值(如100%),则可以按照相应SQL计算引擎进行相应特征类型维度的针对性纠错,提高数据处理效率。
可选的,纠错更新处理可以包括机器自动纠错处理形式的第一纠错处理以及专家纠错服务形式对于的第二纠错处理;通常机器自动纠错处理形式的第一纠错处理较之于专家纠错服务形式对于的第二纠错处理更方便,第一纠错处理的纠错准确率以及纠错覆盖面要低于第二纠错处理。
可选的,本说明书涉及的第一纠错处理和/或第二纠错处理,可基于之前“对SQL文本特征进行至少一个SQL计算引擎的语法校验处理”过程中的未通过词汇,未通过词汇可基于语法校验处理过程输出词汇通过数量的同时输出基于相应特征维度的SQL文本特征所确定的未通过词汇,未通过词汇可直接反馈具体的脚本特征维度、子句特征维度、表达式特征维度、函数特征维度、变量特征维度等细化特征维度的噪声,在后续纠错处理过程可直接聚焦未通过词汇可针对性结合相应SQL计算引擎的语法规则进行纠错更新,如脚本特征维度、子句特征维度的未通过词汇可反馈整体结构上的噪声,纠错处理环节即可直接聚焦脚本特征维度、子句特征维度中通过未通过词汇直接进行整体语法结构纠错,如表达式特征维度、函数特征维度、变量特征维度等可反馈语法细节上的噪声,纠错处理环节即可直接聚焦表达式特征维度、函数特征维度、变量特征维度中通过未通过词汇直接进行语法细节纠错,实现更快速定位错误,提高纠错效率。
在一种可行的实施方式中,可以基于实际匹配度情况选取合适的纠错处理形式,服务平台执行所述对所述目标SQL文本进行SQL纠错更新处理,可以是:
A2:检测所述引擎匹配度是否大于引擎匹配度阈值;
引擎匹配度阈值可以基于实际应用情况设置,引擎匹配度阈值用于衡量采用何种纠错处理对目标SQL文本进行SQL纠错更新处理。
示意性的,引擎匹配度阈值设置的阀值可以是70%,实际应用中可以动态调整引擎匹配度阈值,但通常可以不低于50%。
A4:若所述引擎匹配度大于引擎匹配度阈值,则基于针对参考SQL计算引擎对应的SQL语法纠错规则对所述目标SQL文本进行第一纠错处理,所述参考SQL计算引擎为各所述SQL计算引擎中的至少其一;
所述SQL语法纠错规则基于实际环境下所使用的SQL计算引擎的开发规范所设置。
可选的,服务平台执行所述基于针对参考SQL计算引擎对应的SQL语法纠错规则对所述目标SQL文本进行第一纠错处理或第二纠错处理之前,还可以执行以下步骤:
服务平台可以从所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度确定最高引擎匹配度,将所述最高引擎匹配度指示的所述SQL计算引擎作为参考SQL计算引擎。
可以理解的,服务平台维护多个SQL计算引擎的情况下,多个SQL计算引擎分别对应一个或一组引擎匹配度,可以仅将引擎匹配度最高的目标SQL计算引擎,可理解为引擎匹配度最高的参考SQL计算引擎,目标SQL文本越契合参考SQL计算引擎的SQL语法规则,仅需按照目标SQL计算引擎的SQL语法规则进行资源消耗量较少的纠错调整。
针对第一纠错处理,第一纠错处理结合具体特征类型维度的引擎匹配进行,在一些实施例中,引擎(脚本)匹配度、引擎(子句)匹配度引擎通常反馈整体的语法结构,如果引擎(脚本)匹配度、引擎(子句)匹配度交底,也即脚本、子句出现错误,通常是文本语法结构错误。因为脚本特征最常用的是“分号”分割符,但是在一些有噪声的文本中,有一些注释,乱码和多行空格可能影响提取效果。第一纠错处理配置了去除乱码,去除注释重新提取等纠错规则以对目标SQL文本进行纠错处理。
在一些实施例中,(表达式)匹配度、引擎(函数)匹配度、引擎(变量)匹配度)反馈的是诸如表达式、函数、变量等细微的文本语法细节,通常会根据整体的匹配引擎,只会根据具体的引擎来配置细节规则。在第一纠错处理中,配置的纠错规包括但不限于函数名称大小写转换,L3层的空格消除,比如‘a=1',变成'a=1’,可以避免部分引擎自定义函数的大小写错误导致的错误。
第一纠错处理后得到纠错更新处理后的参考SQL文本,如果参考SQL文本无法满足目标参数值,可用专家纠错服务对所述目标SQL文本进行第二纠错处理,直至针对某个SQL计算引起的引擎匹配度满足目标参数值
A6:若所述引擎匹配度小于或等于引擎匹配度阈值,则调用专家纠错服务对所述目标SQL文本进行第二纠错处理。
所述专家纠错服务可以理解为服务平台向本领域的专家端请求对目标SQL文本进行纠错处理,专家端可以是SQL开发者所处的开发端、SQL测试者所处的测试端、SQL维护者所处的维护端等等。通过调用专家纠错服务由本领域的专家端进行人工纠错更新处理,得到纠错更新处理后的参考SQL文本。
示意性的,在实际场景中,开发者大多数情况下通常用“复制-粘贴”的方式来编写SQL脚本,比如函数的输入错误,max写成mxa,通过复制粘贴,会导致SQL文本全文有一样的错误函数,在纠错更新处理时,可以自动标记相似的函数,然后一键执行全部修改,提高修改效率。也即服务平台在执行所述对所述目标SQL文本进行SQL纠错更新处理,可以是:
服务平台通过确定针对目标SQL文本的至少一个文本特征类型对应的SQL错误片段,从各SQL错误片段确定至少一个参考SQL错误片段,各所述参考SQL错误片段为同一文本特征类型对应的文本相似片段;找到一类文本相似片段后,服务平台可以对各参考SQL错误片段中的第一参考SQL错误片段(第一参考SQL错误片段可以理解为同一文本特征类型对应的文本相似片段中的其一)进行片段纠错更新,得到参考SQL纠错片段,参考SQL纠错片段可以理解为对第一参考SQL错误片段进行纠错更新之后的片段。
进一步的,服务平台然后可以基于参考SQL纠错片段对各参考SQL错误片段中的至少一个第二参考SQL错误片段进行片段替换处理,从而提高修改效率,实现一键执行全部修改。所述至少一个参考SQL错误片段包括所述第一参考SQL错误片段和所述少一个第二参考SQL错误片段。
S312:将所述参考SQL文本作为所述目标SQL文本,并执行所述提取所述目标SQL文本的SQL文本特征的步骤。
通过纠错更新处理后,将纠错更新处理后的参考SQL文本作为所述目标SQL文本,然后执行提取所述目标SQL文本的SQL文本特征的步骤,直至改到至少有一个SQL引擎的匹配率达到了目标参数值,此时既可以进行引擎的分发,然后控制相应的SQL引擎对目标SQL文本进行执行。
在一种具体的实施场景中,如图6所示,图6是本说明书涉及的一种数据处理的场景示意图,在图6中,服务平台获取到目标SQL文本通过执行本说明书一个或多个实施例的数据处理方式,对目标SQL文本提取多个类型SQL文本特征,然后进行特征校验确定与相应SQL计算引擎的引擎匹配度,若存在满足目标参数值的目标引擎匹配度,则从至少一个SQL计算引擎中确定目标引擎匹配度指示的目标SQL计算引擎;
示意性的,若不存在满足目标参数值的目标引擎匹配度,则可以对目标SQL文本进行SQL纠错更新处理,具体可以是:检测所述引擎匹配度是否大于引擎匹配度阈值,若引擎匹配度大于引擎匹配度阈值,则基于针对某SQL计算引擎对应的SQL语法纠错规则对目标SQL文本进行第一纠错处理(也即机器自动纠错处理),若引擎匹配度小于或等于引擎匹配度阈值,则可以调用专家纠错服务对目标SQL文本进行第二纠错处理;
示意性的,在纠错处理的过程中,SQL文本全文有可能有一样的错误函数,在纠错更新处理时,可以自动标记相似的函数,然后一键执行全部修改进行同层自动替换操作,提高修改效率。
示意性的,在经第一纠错处理/第二纠错处理之后,可以得到纠错更新处理后的参考SQL文本,将所述参考SQL文本作为所述目标SQL文本,并执行所述提取所述目标SQL文本的SQL文本特征的步骤,直至与相应SQL计算引擎的引擎匹配度中存在满足目标参数值的目标引擎匹配度,以便从至少一个SQL计算引擎中确定目标引擎匹配度指示的目标SQL计算引擎。
在本说明书一个或多个实施例中,当所述目标SQL计算引擎的数量为多个时,服务平台可以获取各目标SQL计算引擎对应的集群信息,通过引入集群信息从引擎状态维度对若干目标SQL计算引擎进行筛选,得到筛选后的第一SQL计算引擎,基于所述目标SQL文本控制所述第一SQL计算引擎进行执行处理。
S314:基于所述目标SQL文本控制所述目标SQL计算引擎进行执行处理。
具体可参考本说明书其他实施例的方法步骤,此处不再赘述。
在本说明书一个或多个实施例中,服务平台提取所获取的目标SQL文本中的SQL文本特征,基于SQL文本特征确定目标SQL文本与至少一个SQL计算引擎的引擎匹配度,以便于从至少一个SQL计算引擎确定目标SQL计算引擎,然后基于目标SQL文本控制目标SQL计算引擎进行执行处理。在获取到目标SQL文本后避免直接对目标SQL文本进行操作而是通过提取SQL文本特征,基于SQL文本特征确定目标SQL文本与SQL计算引擎的引擎匹配度,来选取目标SQL计算引擎对目标SQL文本进行执行处理,优化了SQL文本数据的数据处理流程,不需要耗费计算资源用于提前确定目标SQL文本的可执行SQL计算引擎,通过提取SQL文本特征可降低SQL计算引擎基于完整SQL文本进行处理时所导致的噪声敏感,实现了与若干SQL计算引擎的匹配程度的精细量化,提高了数据处理的效率和智能性;以及新引入了一种基于多维度SQL文本特征衡量SQL文本与计算引擎匹配度的度量方式,可以从整体到细节分别提取文本特征,便于进行分层校验和纠错,对纠错后的SQL再进行自动分发,且在这种度量方式上,把SQL文本和引擎的匹配关系从匹配/不匹配的情形,转换成一个相似问题,引擎匹配度反馈的相似度越高,代表原SQL文本和引计算擎的匹配度越高,匹配度也是后续纠错更新和分发引擎的依据;以及,基于本说明涉及的匹配度和纠错更新等方法,对于特定计算引擎能根据其引擎匹配度,可以快速配置和应用对应的自动纠错规则,提高纠错效率。
下面将结合图7,对本说明书提供的数据处理装置进行详细介绍。需要说明的是,图7所示的数据处理装置,用于执行本申请图1~图6所示实施例的方法,为了便于说明,仅示出了与本说明书相关的部分,具体技术细节未揭示的,请参照本申请图1~图6所示的实施例。
请参见图7,其示出本说明书的数据处理装置的结构示意图。该数据处理装置1可以通过软件、硬件或者两者的结合实现成为用户终端的全部或一部分。根据一些实施例,该数据处理装置1包括特征提取模块11、引擎确定模块12和执行处理模块13,具体用于:
特征提取模块11,用于获取目标SQL文本,提取所述目标SQL文本的SQL文本特征;
引擎确定模块12,用于基于所述SQL文本特征确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度,基于所述引擎匹配度从所述至少一个SQL计算引擎确定目标SQL计算引擎;
执行处理模块13,用于基于所述目标SQL文本控制所述目标SQL计算引擎进行执行处理。
可选的,所述特征提取模块11,用于:
确定针对所述目标SQL文本的至少一个文本特征类型,基于各所述文本特征类型分别提取所述目标SQL文本对应的至少一类SQL文本特征。
可选的,所述特征提取模块11,用于:
获取各所述文本特征类型对应的结构提取器;
控制各所述结构提取器提取所述目标SQL文本对应的至少一类SQL文本特征。
可选的,所述文本特征类型包括脚本特征类型、子句特征类型、表达式特征类型、函数特征类型、变量特征类型中的至少一种;
所述特征提取模块11,用于:
若所述文本特征类型包括所述脚本特征类型,则基于脚本特征类型提取所述目标SQL文本对应的SQL脚本特征;
若所述文本特征类型包括所述子句特征类型,则基于子句特征类型提取所述目标SQL文本对应的SQL子句特征;
若所述文本特征类型包括所述表达式特征类型,则基于表达式特征类型提取所述目标SQL文本对应的SQL表达式特征;
若所述文本特征类型包括所述函数特征类型,则基于函数特征类型提取所述目标SQL文本对应的SQL函数特征;
若所述文本特征类型包括所述变量特征类型,则基于变量特征类型提取所述目标SQL文本对应的SQL变量特征。
可选的,如图8所示,所述引擎确定模块12,包括:
语法检验单元121,用于对所述SQL文本特征进行至少一个SQL计算引擎的语法校验处理,得到语法检验处理后的词汇检验结果;
引擎处理单元122,用于基于所述词汇检验结果确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度。
可选的,所述引擎处理单元122,用于:
确定针对所述SQL文本特征的至少一个文本特征类型,从所述SQL文本特征中获取各所述文本特征类型分别对应的参考SQL文本特征;
分别对所述参考SQL文本特征进行至少一个SQL计算引擎的语法校验处理,得到语法检验处理后的参考词汇检验结果,所述参考词汇检验结果为参考文本特征类型对应的参考SQL文本特征的词汇检验结果;
生成包含所有参考词汇检验结果的词汇检验结果。
可选的,所述语法检验单元121,用于:
获取针对所述至少一个SQL计算引擎对应的语法校验器;
将所述SQL文本特征输入至所述语法校验器进行词汇文本校验,输出针对各所述SQL计算引擎分别对应的词汇通过数量;
将各所述SQL计算引擎分别对应的所述词汇通过数量作为词汇检验结果。
可选的,所述引擎处理单元122,用于:
获取所述词汇检验结果对应的针对各所述SQL计算引擎的词汇通过数量,以及确定针对所述SQL文本对应的检验词汇总数量;
基于所述检验词汇总数量以及各所述SQL计算引擎对应的所述词汇通过数量,确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度。
可选的,所述引擎处理单元122,用于:
计算各所述SQL计算引擎对应的所述词汇通过数量与所述检验词汇总数量的目标比值,将所述目标比值作为所述目标SQL文本与所述SQL计算引擎的引擎匹配度。
可选的,所述引擎确定模块12,用于:
检测所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度中是否存在满足目标参数值的目标引擎匹配度;
若存在满足目标参数值的目标引擎匹配度,则从所述至少一个SQL计算引擎中,确定所述目标引擎匹配度指示的至少一个目标SQL计算引擎。
可选的,所述装置1,还用于:
若不存在满足目标参数值的目标引擎匹配度,则对所述目标SQL文本进行SQL纠错更新处理,得到纠错更新处理后的参考SQL文本;
将所述参考SQL文本作为所述目标SQL文本,并执行所述提取所述目标SQL文本的SQL文本特征的步骤。
可选的,所述装置1,还用于:
检测所述引擎匹配度是否大于引擎匹配度阈值;
若所述引擎匹配度大于引擎匹配度阈值,则基于针对参考SQL计算引擎对应的SQL语法纠错规则对所述目标SQL文本进行第一纠错处理,所述参考SQL计算引擎为各所述SQL计算引擎中的至少其一;
若所述引擎匹配度小于或等于引擎匹配度阈值,则调用专家纠错服务对所述目标SQL文本进行第二纠错处理。
可选的,所述装置1,还用于:
从所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度确定最高引擎匹配度,将所述最高引擎匹配度指示的所述SQL计算引擎作为参考SQL计算引擎。
可选的,所述装置1,还用于:
确定针对所述目标SQL文本的至少一个文本特征类型对应的SQL错误片段;
从各所述SQL错误片段确定至少一个参考SQL错误片段,对各所述参考SQL错误片段中的第一参考SQL错误片段进行片段纠错更新,得到参考SQL纠错片段,各所述参考SQL错误片段为同一文本特征类型对应的文本相似片段;
基于所述参考SQL纠错片段对各所述参考SQL错误片段中的至少一个第二参考SQL错误片段进行片段替换处理,所述至少一个参考SQL错误片段包括所述第一参考SQL错误片段和所述少一个第二参考SQL错误片段。
可选的,当所述目标SQL计算引擎的数量为多个时,可选的,所述装置1,还用于:获取各所述目标SQL计算引擎对应的集群信息,基于所述集群信息从各所述目标SQL计算引擎中确定至少一个第一SQL计算引擎,基于所述目标SQL文本控制所述第一SQL计算引擎进行执行处理。
需要说明的是,上述实施例提供的数据处理装置在执行数据处理方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据处理装置与数据处理方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本说明书序号仅仅为了描述,不代表实施例的优劣。
在本说明书一个或多个实施例中,服务平台提取所获取的目标SQL文本中的SQL文本特征,基于SQL文本特征确定目标SQL文本与至少一个SQL计算引擎的引擎匹配度,以便于从至少一个SQL计算引擎确定目标SQL计算引擎,然后基于目标SQL文本控制目标SQL计算引擎进行执行处理。在获取到目标SQL文本后避免直接对目标SQL文本进行操作而是通过提取SQL文本特征,基于SQL文本特征确定目标SQL文本与SQL计算引擎的引擎匹配度,来选取目标SQL计算引擎对目标SQL文本进行执行处理,优化了SQL文本数据的数据处理流程,不需要耗费计算资源用于提前确定目标SQL文本的可执行SQL计算引擎,通过提取SQL文本特征可降低SQL计算引擎基于完整SQL文本进行处理时所导致的噪声敏感,实现了与若干SQL计算引擎的匹配程度的精细量化,提高了数据处理的效率和智能性。
本说明书还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1~图6所示实施例的所述数据处理方法,具体执行过程可以参见图1~图6所示实施例的具体说明,在此不进行赘述。
本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行如上述图1~图6所示实施例的所述数据处理方法,具体执行过程可以参见图1~图6所示实施例的具体说明,在此不进行赘述。
请参考图9,其示出了本申请一个示例性实施例提供的电子设备的结构方框图。本申请中的电子设备可以包括一个或多个如下部件:处理器110、存储器120、输入装置130、输出装置140和总线150。处理器110、存储器120、输入装置130和输出装置140之间可以通过总线150连接。
处理器110可以包括一个或者多个处理核心。处理器110利用各种接口和线路连接整个电子设备内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(digital signal processing,DSP)、现场可编程门阵列(field-programmable gate array,FPGA)、可编程逻辑阵列(programmable logicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中心处理器(centralprocessing unit,CPU)、图像处理器(graphics processing unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(random Access Memory,RAM),也可以包括只读存储器(read-only memory,ROM)。可选地,该存储器120包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等,该操作系统可以是安卓(Android)系统,包括基于Android系统深度开发的系统、苹果公司开发的IOS系统,包括基于IOS系统深度开发的系统或其它系统。存储数据区还可以存储电子设备在使用中所创建的数据比如电话本、音视频数据、聊天记录数据,等。
参见图10所示,存储器120可分为操作系统空间和用户空间,操作系统即运行于操作系统空间,原生及第三方应用程序即运行于用户空间。为了保证不同第三方应用程序均能够达到较好的运行效果,操作系统针对不同第三方应用程序为其分配相应的系统资源。然而,同一第三方应用程序中不同应用场景对系统资源的需求也存在差异,比如,在本地资源加载场景下,第三方应用程序对磁盘读取速度的要求较高;在动画渲染场景下,第三方应用程序则对GPU性能的要求较高。而操作系统与第三方应用程序之间相互独立,操作系统往往不能及时感知第三方应用程序当前的应用场景,导致操作系统无法根据第三方应用程序的具体应用场景进行针对性的系统资源适配。
为了使操作系统能够区分第三方应用程序的具体应用场景,需要打通第三方应用程序与操作系统之间的数据通信,使得操作系统能够随时获取第三方应用程序当前的场景信息,进而基于当前场景进行针对性的系统资源适配。
以操作系统为Android系统为例,存储器120中存储的程序和数据如图11所示,存储器120中可存储有Linux内核层320、系统运行时库层340、应用框架层360和应用层380,其中,Linux内核层320、系统运行库层340和应用框架层360属于操作系统空间,应用层380属于用户空间。Linux内核层320为电子设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、摄像头驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。系统运行库层340通过一些C/C++库来为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL/ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。在系统运行时库层340中还提供有安卓运行时库(Android runtime),它主要提供了一些核心库,能够允许开发者使用Java语言来编写Android应用。应用框架层360提供了构建应用程序时可能用到的各种API,开发者也可以通过使用这些API来构建自己的应用程序,比如活动管理、窗口管理、视图管理、通知管理、内容提供者、包管理、通话管理、资源管理、定位管理。应用层380中运行有至少一个应用程序,这些应用程序可以是操作系统自带的原生应用程序,比如联系人程序、短信程序、时钟程序、相机应用等;也可以是第三方开发者所开发的第三方应用程序,比如游戏类应用程序、即时通信程序、相片美化程序等。
以操作系统为IOS系统为例,存储器120中存储的程序和数据如图12所示,IOS系统包括:核心操作系统层420(Core OS layer)、核心服务层440(Core Services layer)、媒体层460(Media layer)、可触摸层480(Cocoa Touch Layer)。核心操作系统层420包括了操作系统内核、驱动程序以及底层程序框架,这些底层程序框架提供更接近硬件的功能,以供位于核心服务层440的程序框架所使用。核心服务层440提供给应用程序所需要的系统服务和/或程序框架,比如基础(Foundation)框架、账户框架、广告框架、数据存储框架、网络连接框架、地理位置框架、运动框架等等。媒体层460为应用程序提供有关视听方面的接口,如图形图像相关的接口、音频技术相关的接口、视频技术相关的接口、音视频传输技术的无线播放(AirPlay)接口等。可触摸层480为应用程序开发提供了各种常用的界面相关的框架,可触摸层480负责用户在电子设备上的触摸交互操作。比如本地通知服务、远程推送服务、广告框架、游戏工具框架、消息用户界面接口(User Interface,UI)框架、用户界面UIKit框架、地图框架等等。
在图12所示出的框架中,与大部分应用程序有关的框架包括但不限于:核心服务层440中的基础框架和可触摸层480中的UIKit框架。基础框架提供许多基本的对象类和数据类型,为所有应用程序提供最基本的系统服务,和UI无关。而UIKit框架提供的类是基础的UI类库,用于创建基于触摸的用户界面,iOS应用程序可以基于UIKit框架来提供UI,所以它提供了应用程序的基础架构,用于构建用户界面,绘图、处理和用户交互事件,响应手势等等。
其中,在IOS系统中实现第三方应用程序与操作系统数据通信的方式以及原理可参考Android系统,本申请在此不再赘述。
其中,输入装置130用于接收输入的指令或数据,输入装置130包括但不限于键盘、鼠标、摄像头、麦克风或触控设备。输出装置140用于输出指令或数据,输出装置140包括但不限于显示设备和扬声器等。在一个示例中,输入装置130和输出装置140可以合设,输入装置130和输出装置140为触摸显示屏,该触摸显示屏用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作,以及显示各个应用程序的用户界面。触摸显示屏通常设置在电子设备的前面板。触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本说明书对此不加以限定。
除此之外,本领域技术人员可以理解,上述附图所示出的电子设备的结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,电子设备中还包括射频电路、输入单元、传感器、音频电路、无线保真(wireless fidelity,WiFi)模块、电源、蓝牙模块等部件,在此不再赘述。
在本说明书中,各步骤的执行主体可以是上文介绍的电子设备。可选地,各步骤的执行主体为电子设备的操作系统。操作系统可以是安卓系统,也可以是IOS系统,或者其它操作系统,本说明书对此不作限定。
本说明书的电子设备,其上还可以安装有显示设备,显示设备可以是各种能实现显示功能的设备,例如:阴极射线管显示器(cathode ray tubedisplay,简称CR)、发光二极管显示器(light-emitting diode display,简称LED)、电子墨水屏、液晶显示屏(liquidcrystal display,简称LCD)、等离子显示面板(plasma display panel,简称PDP)等。用户可以利用电子设备101上的显示设备,来查看显示的文字、图像、视频等信息。所述电子设备可以是智能手机、平板电脑、游戏设备、AR(Augmented Reality,增强现实)设备、汽车、数据存储装置、音频播放装置、视频播放装置、笔记本、桌面计算设备、可穿戴设备诸如电子手表、电子眼镜、电子头盔、电子手链、电子项链、电子衣物等设备。
在图9所示的电子设备中,其中电子设备可以是一种终端,处理器110可以用于调用存储器120中存储的网络优化应用程序,并具体执行以下操作:
获取目标SQL文本,提取所述目标SQL文本的SQL文本特征;
基于所述SQL文本特征确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度,基于所述引擎匹配度从所述至少一个SQL计算引擎确定目标SQL计算引擎;
基于所述目标SQL文本控制所述目标SQL计算引擎进行执行处理。
在一个实施例中,所述处理器110在执行所述提取所述目标SQL文本的SQL文本特征时,执行以下操作:
确定针对所述目标SQL文本的至少一个文本特征类型,基于各所述文本特征类型分别提取所述目标SQL文本对应的至少一类SQL文本特征。
在一个实施例中,所述处理器110在执行所述基于各所述文本特征类型分别提取所述目标SQL文本对应的至少一类SQL文本特征时,执行以下步骤:
获取各所述文本特征类型对应的结构提取器;
控制各所述结构提取器提取所述目标SQL文本对应的至少一类SQL文本特征。
在一个实施例中,所述文本特征类型包括脚本特征类型、子句特征类型、表达式特征类型、函数特征类型、变量特征类型中的至少一种;所述处理器110在执行所述基于各所述文本特征类型分别提取所述目标SQL文本对应的至少一类SQL文本特征时,执行以下步骤:
若所述文本特征类型包括所述脚本特征类型,则基于脚本特征类型提取所述目标SQL文本对应的SQL脚本特征;
若所述文本特征类型包括所述子句特征类型,则基于子句特征类型提取所述目标SQL文本对应的SQL子句特征;
若所述文本特征类型包括所述表达式特征类型,则基于表达式特征类型提取所述目标SQL文本对应的SQL表达式特征;
若所述文本特征类型包括所述函数特征类型,则基于函数特征类型提取所述目标SQL文本对应的SQL函数特征;
若所述文本特征类型包括所述变量特征类型,则基于变量特征类型提取所述目标SQL文本对应的SQL变量特征。
在一个实施例中,所述处理器110在执行所述基于所述SQL文本特征确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度时,执行以下步骤:
对所述SQL文本特征进行至少一个SQL计算引擎的语法校验处理,得到语法检验处理后的词汇检验结果;
基于所述词汇检验结果确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度。
在一个实施例中,所述处理器110在执行所述对所述SQL文本特征进行至少一个SQL计算引擎的语法校验处理,得到语法检验处理后的词汇检验结果时,执行以下步骤:
确定针对所述SQL文本特征的至少一个文本特征类型,从所述SQL文本特征中获取各所述文本特征类型分别对应的参考SQL文本特征;
分别对所述参考SQL文本特征进行至少一个SQL计算引擎的语法校验处理,得到语法检验处理后的参考词汇检验结果,所述参考词汇检验结果为参考文本特征类型对应的参考SQL文本特征的词汇检验结果;
生成包含所有参考词汇检验结果的词汇检验结果。
在一个实施例中,所述处理器110在执行所述对所述SQL文本特征进行至少一个SQL计算引擎的语法校验处理,得到语法检验处理后的词汇检验结果,包括:
获取针对所述至少一个SQL计算引擎对应的语法校验器;
将所述SQL文本特征输入至所述语法校验器进行词汇文本校验,输出针对各所述SQL计算引擎分别对应的词汇通过数量;
将各所述SQL计算引擎分别对应的所述词汇通过数量作为词汇检验结果。
在一个实施例中,所述处理器110在执行所述基于所述词汇检验结果确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度时,执行以下步骤:
获取所述词汇检验结果对应的针对各所述SQL计算引擎的词汇通过数量,以及确定针对所述SQL文本对应的检验词汇总数量;
基于所述检验词汇总数量以及各所述SQL计算引擎对应的所述词汇通过数量,确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度。
在一个实施例中,所述处理器110在执行所述基于所述检验词汇总数量以及各所述SQL计算引擎对应的所述词汇通过数量,确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度时,执行以下步骤:
计算各所述SQL计算引擎对应的所述词汇通过数量与所述检验词汇总数量的目标比值,将所述目标比值作为所述目标SQL文本与所述SQL计算引擎的引擎匹配度。
在一个实施例中,所述处理器110在执行所述基于所述引擎匹配度从所述至少一个SQL计算引擎确定目标SQL计算引擎时,执行以下步骤:
检测所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度中是否存在满足目标参数值的目标引擎匹配度;
若存在满足目标参数值的目标引擎匹配度,则从所述至少一个SQL计算引擎中,确定所述目标引擎匹配度指示的至少一个目标SQL计算引擎。
在一个实施例中,所述处理器110在执行所述数据处理方法时,还执行以下步骤:
若不存在满足目标参数值的目标引擎匹配度,则对所述目标SQL文本进行SQL纠错更新处理,得到纠错更新处理后的参考SQL文本;
将所述参考SQL文本作为所述目标SQL文本,并执行所述提取所述目标SQL文本的SQL文本特征的步骤。
在一个实施例中,所述处理器110在执行所述对所述目标SQL文本进行SQL纠错更新处理时,执行以下步骤:
检测所述引擎匹配度是否大于引擎匹配度阈值;
若所述引擎匹配度大于引擎匹配度阈值,则基于针对参考SQL计算引擎对应的SQL语法纠错规则对所述目标SQL文本进行第一纠错处理,所述参考SQL计算引擎为各所述SQL计算引擎中的至少其一;
若所述引擎匹配度小于或等于引擎匹配度阈值,则调用专家纠错服务对所述目标SQL文本进行第二纠错处理。
在一个实施例中,所述处理器110在执行所述基于针对参考SQL计算引擎对应的SQL语法纠错规则对所述目标SQL文本进行第一纠错处理之前,还包括:
从所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度确定最高引擎匹配度,将所述最高引擎匹配度指示的所述SQL计算引擎作为参考SQL计算引擎。
在一个实施例中,所述处理器110在执行所述对所述目标SQL文本进行SQL纠错更新处理时,执行以下步骤:
确定针对所述目标SQL文本的至少一个文本特征类型对应的SQL错误片段;
从各所述SQL错误片段确定至少一个参考SQL错误片段,对各所述参考SQL错误片段中的第一参考SQL错误片段进行片段纠错更新,得到参考SQL纠错片段,各所述参考SQL错误片段为同一文本特征类型对应的文本相似片段;
基于所述参考SQL纠错片段对各所述参考SQL错误片段中的至少一个第二参考SQL错误片段进行片段替换处理,所述至少一个参考SQL错误片段包括所述第一参考SQL错误片段和所述少一个第二参考SQL错误片段。
在一个实施例中,当所述目标SQL计算引擎的数量为多个时,所述处理器110在执行所述基于所述目标SQL文本控制所述目标SQL计算引擎进行执行处理时,执行以下步骤:
获取各所述目标SQL计算引擎对应的集群信息,基于所述集群信息从各所述目标SQL计算引擎中确定至少一个第一SQL计算引擎,基于所述目标SQL文本控制所述第一SQL计算引擎进行执行处理。
在本说明书一个或多个实施例中,服务平台提取所获取的目标SQL文本中的SQL文本特征,基于SQL文本特征确定目标SQL文本与至少一个SQL计算引擎的引擎匹配度,以便于从至少一个SQL计算引擎确定目标SQL计算引擎,然后基于目标SQL文本控制目标SQL计算引擎进行执行处理。在获取到目标SQL文本后避免直接对目标SQL文本进行操作而是通过提取SQL文本特征,基于SQL文本特征确定目标SQL文本与SQL计算引擎的引擎匹配度,来选取目标SQL计算引擎对目标SQL文本进行执行处理,优化了SQL文本数据的数据处理流程,不需要耗费计算资源用于提前确定目标SQL文本的可执行SQL计算引擎,通过提取SQL文本特征可降低SQL计算引擎基于完整SQL文本进行处理时所导致的噪声敏感,实现了与若干SQL计算引擎的匹配程度的精细量化,提高了数据处理的效率和智能性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (19)
1.一种数据处理方法,应用于服务平台,所述方法包括:
获取目标SQL文本,提取所述目标SQL文本的SQL文本特征;
基于所述SQL文本特征确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度,基于所述引擎匹配度从所述至少一个SQL计算引擎确定目标SQL计算引擎;
基于所述目标SQL文本控制所述目标SQL计算引擎进行执行处理。
2.根据权利要求1所述的方法,所述提取所述目标SQL文本的SQL文本特征,包括:
确定针对所述目标SQL文本的至少一个文本特征类型,基于各所述文本特征类型分别提取所述目标SQL文本对应的至少一类SQL文本特征。
3.根据权利要求2所述的方法,所述基于各所述文本特征类型分别提取所述目标SQL文本对应的至少一类SQL文本特征,包括:
获取各所述文本特征类型对应的结构提取器;
控制各所述结构提取器提取所述目标SQL文本对应的至少一类SQL文本特征。
4.根据权利要求2所述的方法,所述文本特征类型包括脚本特征类型、子句特征类型、表达式特征类型、函数特征类型、变量特征类型中的至少一种;
所述基于各所述文本特征类型分别提取所述目标SQL文本对应的至少一类SQL文本特征,包括:
若所述文本特征类型包括所述脚本特征类型,则基于脚本特征类型提取所述目标SQL文本对应的SQL脚本特征;
若所述文本特征类型包括所述子句特征类型,则基于子句特征类型提取所述目标SQL文本对应的SQL子句特征;
若所述文本特征类型包括所述表达式特征类型,则基于表达式特征类型提取所述目标SQL文本对应的SQL表达式特征;
若所述文本特征类型包括所述函数特征类型,则基于函数特征类型提取所述目标SQL文本对应的SQL函数特征;
若所述文本特征类型包括所述变量特征类型,则基于变量特征类型提取所述目标SQL文本对应的SQL变量特征。
5.根据权利要求1所述的方法,所述基于所述SQL文本特征确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度,包括:
对所述SQL文本特征进行至少一个SQL计算引擎的语法校验处理,得到语法检验处理后的词汇检验结果;
基于所述词汇检验结果确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度。
6.根据权利要求5所述的方法,所述对所述SQL文本特征进行至少一个SQL计算引擎的语法校验处理,得到语法检验处理后的词汇检验结果,包括:
确定针对所述SQL文本特征的至少一个文本特征类型,从所述SQL文本特征中获取各所述文本特征类型分别对应的参考SQL文本特征;
分别对所述参考SQL文本特征进行至少一个SQL计算引擎的语法校验处理,得到语法检验处理后的参考词汇检验结果,所述参考词汇检验结果为参考文本特征类型对应的参考SQL文本特征的词汇检验结果;
生成包含所有参考词汇检验结果的词汇检验结果。
7.根据权利要求5所述的方法,所述对所述SQL文本特征进行至少一个SQL计算引擎的语法校验处理,得到语法检验处理后的词汇检验结果,包括:
获取针对所述至少一个SQL计算引擎对应的语法校验器;
将所述SQL文本特征输入至所述语法校验器进行词汇文本校验,输出针对各所述SQL计算引擎分别对应的;
将各所述SQL计算引擎分别对应的所述词汇通过数量作为词汇检验结果。
8.根据权利要求5所述的方法,所述基于所述词汇检验结果确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度,包括:
获取所述词汇检验结果对应的针对各所述SQL计算引擎的词汇通过数量,以及确定针对所述SQL文本对应的检验词汇总数量;
基于所述检验词汇总数量以及各所述SQL计算引擎对应的所述词汇通过数量,确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度。
9.根据权利要求8所述的方法,所述基于所述检验词汇总数量以及各所述SQL计算引擎对应的所述词汇通过数量,确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度,包括:
计算各所述SQL计算引擎对应的所述词汇通过数量与所述检验词汇总数量的目标比值,将所述目标比值作为所述目标SQL文本与所述SQL计算引擎的引擎匹配度。
10.根据权利要求1所述的方法,所述基于所述引擎匹配度从所述至少一个SQL计算引擎确定目标SQL计算引擎,包括:
检测所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度中是否存在满足目标参数值的目标引擎匹配度;
若存在满足目标参数值的目标引擎匹配度,则从所述至少一个SQL计算引擎中,确定所述目标引擎匹配度指示的至少一个目标SQL计算引擎。
11.根据权利要求10所述的方法,所述方法还包括:
若不存在满足目标参数值的目标引擎匹配度,则对所述目标SQL文本进行SQL纠错更新处理,得到纠错更新处理后的参考SQL文本;
将所述参考SQL文本作为所述目标SQL文本,并执行所述提取所述目标SQL文本的SQL文本特征的步骤。
12.根据权利要求11所述的方法,所述对所述目标SQL文本进行SQL纠错更新处理,包括:
检测所述引擎匹配度是否大于引擎匹配度阈值;
若所述引擎匹配度大于引擎匹配度阈值,则基于针对参考SQL计算引擎对应的SQL语法纠错规则对所述目标SQL文本进行第一纠错处理,所述参考SQL计算引擎为各所述SQL计算引擎中的至少其一;
若所述引擎匹配度小于或等于引擎匹配度阈值,则调用专家纠错服务对所述目标SQL文本进行第二纠错处理。
13.根据权利要求11所述的方法,所述基于针对参考SQL计算引擎对应的SQL语法纠错规则对所述目标SQL文本进行第一纠错处理之前,还包括:
从所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度确定最高引擎匹配度,将所述最高引擎匹配度指示的所述SQL计算引擎作为参考SQL计算引擎。
14.根据权利要求11所述的方法,所述对所述目标SQL文本进行SQL纠错更新处理,包括:
确定针对所述目标SQL文本的至少一个文本特征类型对应的SQL错误片段;
从各所述SQL错误片段确定至少一个参考SQL错误片段,对各所述参考SQL错误片段中的第一参考SQL错误片段进行片段纠错更新,得到参考SQL纠错片段,各所述参考SQL错误片段为同一文本特征类型对应的文本相似片段;
基于所述参考SQL纠错片段对各所述参考SQL错误片段中的至少一个第二参考SQL错误片段进行片段替换处理,所述至少一个参考SQL错误片段包括所述第一参考SQL错误片段和所述少一个第二参考SQL错误片段。
15.根据权利要求1-14任一项所述的方法,当所述目标SQL计算引擎的数量为多个时,
所述基于所述目标SQL文本控制所述目标SQL计算引擎进行执行处理,包括:
获取各所述目标SQL计算引擎对应的集群信息,基于所述集群信息从各所述目标SQL计算引擎中确定至少一个第一SQL计算引擎,基于所述目标SQL文本控制所述第一SQL计算引擎进行执行处理。
16.一种数据处理装置,所述装置包括:
特征提取模块,用于获取目标SQL文本,提取所述目标SQL文本的SQL文本特征;
引擎确定模块,用于基于所述SQL文本特征确定所述目标SQL文本与至少一个SQL计算引擎的引擎匹配度,基于所述引擎匹配度从所述至少一个SQL计算引擎确定目标SQL计算引擎;
执行处理模块,用于基于所述目标SQL文本控制所述目标SQL计算引擎进行执行处理。
17.一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~15任意一项的方法步骤。
18.一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行如权利要求1~15任意一项的方法步骤。
19.一种电子设备,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~15任意一项的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211412477.1A CN115858556A (zh) | 2022-11-11 | 2022-11-11 | 一种数据处理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211412477.1A CN115858556A (zh) | 2022-11-11 | 2022-11-11 | 一种数据处理方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115858556A true CN115858556A (zh) | 2023-03-28 |
Family
ID=85663173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211412477.1A Pending CN115858556A (zh) | 2022-11-11 | 2022-11-11 | 一种数据处理方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115858556A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116991874A (zh) * | 2023-09-26 | 2023-11-03 | 海信集团控股股份有限公司 | 一种文本纠错、基于大模型的sql语句生成方法及设备 |
-
2022
- 2022-11-11 CN CN202211412477.1A patent/CN115858556A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116991874A (zh) * | 2023-09-26 | 2023-11-03 | 海信集团控股股份有限公司 | 一种文本纠错、基于大模型的sql语句生成方法及设备 |
CN116991874B (zh) * | 2023-09-26 | 2024-03-01 | 海信集团控股股份有限公司 | 一种文本纠错、基于大模型的sql语句生成方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11206229B2 (en) | Directed acyclic graph based framework for training models | |
US20210304075A1 (en) | Batching techniques for handling unbalanced training data for a chatbot | |
CN112148275A (zh) | 用于改进的软件开发效率的上下文和复杂度感知推荐系统的方法、系统、制品和装置 | |
US11989523B2 (en) | Composite entity for rule driven acquisition of input data to chatbots | |
CN111447107A (zh) | 网络状态确定方法、装置、存储介质及电子设备 | |
CN115858556A (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
CN115049068A (zh) | 一种模型处理方法、装置、存储介质及电子设备 | |
CN110442803A (zh) | 由计算设备执行的数据处理方法、装置、介质和计算设备 | |
WO2022040547A1 (en) | Techniques for providing explanations for text classification | |
CN116737928A (zh) | 平台用户需求的文本挖掘方法、系统及云平台 | |
CN116823537A (zh) | 一种保险报案处理方法、装置、存储介质及电子设备 | |
WO2023151397A1 (zh) | 应用程序部署方法、装置、设备及介质 | |
CN116228391A (zh) | 一种风险识别方法、装置、存储介质及电子设备 | |
CN112328339B (zh) | 通知消息的显示方法、装置、存储介质及电子设备 | |
CN113972989B (zh) | 数据校验方法及存储介质、电子设备 | |
CN117236347B (zh) | 交互文本翻译的方法、交互文本的显示方法和相关装置 | |
CN117688484A (zh) | 数据异常检测方法、装置、存储介质及电子设备 | |
CN116934395A (zh) | 一种特征处理方法、装置、存储介质及电子设备 | |
CN118095493A (zh) | 事实评估模型训练方法、事实评估方法及装置 | |
CN118070923A (zh) | 模型训练数据生成方法、装置、存储介质及电子设备 | |
CN115827833A (zh) | 一种对话结构处理方法、装置、存储介质及电子设备 | |
CN118035546A (zh) | 文本意图识别模型训练方法、文本意图识别方法及装置 | |
CN117573137A (zh) | 一种插桩处理方法、装置、存储介质及电子设备 | |
CN116302235A (zh) | 一种弹窗处理方法、装置、存储介质及电子设备 | |
CN118101750A (zh) | 信息推送方法、装置、电子设备及计算机存储介质 |
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 |