CN115237938A - 基于人工智能的数据处理方法、装置、电子设备及介质 - Google Patents
基于人工智能的数据处理方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN115237938A CN115237938A CN202210828432.6A CN202210828432A CN115237938A CN 115237938 A CN115237938 A CN 115237938A CN 202210828432 A CN202210828432 A CN 202210828432A CN 115237938 A CN115237938 A CN 115237938A
- Authority
- CN
- China
- Prior art keywords
- conversion
- database table
- result
- node
- data processing
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
- G06F16/24528—Standardisation; Simplification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及大数据技术领域,提供一种基于人工智能的数据处理方法、装置、电子设备及介质,所述方法包括:获取第一数据库表;解析所述第一数据库表,得到解析结果;构建转换策略,基于所述转换策略对所述解析结果中的语法树的每个节点进行转换,得到转换结果;当所述转换结果为转换成功时,校验与所述转换结果关联的第二数据库表;当确定所述第二数据库表校验合格时,执行所述第二数据库表中的任务,得到数据处理结果。本发明通过对第一数据库表进行解析及转换后得到第二数据库表,并在第二数据库表校验合格后执行任务,提高了任务执行的容错性。
Description
技术领域
本发明涉及大数据技术领域,具体涉及一种基于人工智能的数据处理方法、装置、电子设备及介质。
背景技术
随着Spark计算引擎发展,其优越的内存计算性能相比Hadoop原生MapReduce引擎计算更快,对分布式集群内存资源利用率更高,但在大数据的数据集运算稳定性方面,MapReduce引擎相对Spark更高。
目前,当前Spark SQL语法和Hive SQL语法不完全兼容,存在差异,执行任务过程中无法确保任务执行的容错性。
发明内容
鉴于以上内容,有必要提出一种基于人工智能的数据处理方法、装置、电子设备及介质,通过对第一数据库表进行解析及转换后得到第二数据库表,并在第二数据库表校验合格后执行任务,提高了任务执行的容错性。
本发明的第一方面提供一种基于人工智能的数据处理方法,所述方法包括:
响应于接收的数据处理请求,获取第一数据库表;
解析所述第一数据库表,得到解析结果;
构建转换策略,基于所述转换策略对所述解析结果中的语法树的每个节点进行转换,得到转换结果;
当所述转换结果为转换成功时,校验与所述转换结果关联的第二数据库表;
当确定所述第二数据库表校验合格时,执行所述第二数据库表中的任务,得到数据处理结果。
可选地,所述执行所述第二数据库表中的任务,得到数据处理结果包括:
当侦测到所述第二数据库表中的任意一个任务执行失败时,获取所述第一数据库表,并执行所述第一数据库表中的任务;
当所述第一数据库表中的每个任务执行成功时,确定数据处理结果为任务执行结束;
当所述第一数据库表中的任意一个任务执行失败时,确定数据处理结果为触发异常任务处理指令。
可选地,所述解析所述第一数据库表,得到解析结果包括:
获取所述第一数据库表对应的语法规则集;
基于所述语法规则集生成语法分析器;
采用所述语法分析器对所述第一数据库表中的第一查询语句进行语法解析,得到对应的语法元素;
确定每个语法元素的节点位置,并按照所述节点位置对每个语法元素进行布局,生成对应的语法树,将所述语法树确定为解析结果。
可选地,所述构建转换策略包括:
识别所述第一数据库表的第一语法与所述第二数据库表的第二语法之间的差异;
基于所述差异采用预设的函数构建转换策略。
可选地,所述基于所述转换策略对所述解析结果中的语法树的每个节点进行转换,得到转换结果包括:
识别所述语法树的每个节点的转换策略;
基于所述每个节点的转换策略对每个节点的第一查询语句进行转换;
当转换得到的是每个节点的第二查询语句时,确定转换结果为转换成功,并将所述转换结果与第二数据库表进行关联,其中,所述第二数据库表是将每个节点的第二查询语句写入预设的数据库表中得到的;
当转换得到的不是每个节点的第二查询语句时,确定转换结果为转换失败。
可选地,所述方法还包括:
当转换结果为转换失败时,调整转换策略对失败节点的第一查询语句进行二次转换。
可选地,所述方法还包括:
当确定所述第二数据库表校验不合格时,获取校验失败的失败节点的第一失败信息,将所述第一失败信息发送至客户端;
接收所述客户端基于所述第一失败信息上报的新的转换策略,基于所述新的转换策略对所述失败节点的第一查询语句进行二次转换;
当转换得到的是所述失败节点的第二查询语句时,确定转换结果为转换成功,转换结束,或者,当转换得到的不是所述失败节点的第二查询语句时,确定转换结果为转换失败,重复上述步骤,直至所述失败节点的第一查询语句转换成功,转换结束;
对转换得到的失败节点的第二查询语句进行迭代校验,直至所述第二数据库表校验合格。
本发明的第二方面提供一种基于人工智能的数据处理装置,所述装置包括:
获取模块,用于响应于接收的数据处理请求,获取第一数据库表;
解析模块,用于解析所述第一数据库表,得到解析结果;
转换模块,用于构建转换策略,基于所述转换策略对所述解析结果中的语法树的每个节点进行转换,得到转换结果;
校验模块,用于当所述转换结果为转换成功时,校验与所述转换结果关联的第二数据库表;
执行模块,用于当确定所述第二数据库表校验合格时,执行所述第二数据库表中的任务,得到数据处理结果。
本发明的第三方面提供一种电子设备,所述电子设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的基于人工智能的数据处理方法。
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的基于人工智能的数据处理方法。
综上所述,本发明所述的基于人工智能的数据处理方法、装置、电子设备及介质,能够推动智慧城市的建设,应用于智慧建筑、智慧安防、智慧社区、智慧生活、物联网等领域,通过解析所述第一数据库表,得到解析结果,便于后续基于所述解析结果对所述第一数据库表进行转换,提高了第一数据库表的转换效率。构建转换策略,基于所述转换策略对所述解析结果中的语法树的每个节点进行转换,得到转换结果,通过预先构建转换策略,通过调用转换策略,将所述语法树中的每个节点的第一查询语句按照对应的转换策略转换为第二查询语句,无需人为参与,实现了自动化转换,提高了数据转换效率。当所述转换结果为转换成功时,校验与所述转换结果关联的第二数据库表,并在所述第二数据库表校验合格时,执行所述第二数据库表中的任务,得到数据处理结果,在确保转换结果成功和校验结果合格的情况下,执行所述第二数据库表中的任务,在第二数据库表中的任意一个任务执行失败时,可以切换至第一数据库表中执行任务,避免了第二数据库表中的任意一个任务执行失败导致任务无法执行的现象,提高了执行任务的容错性。
附图说明
图1是本发明实施例一提供的基于人工智能的数据处理方法的流程图。
图2是本发明实施例二提供的基于人工智能的数据处理装置的结构图。
图3是本发明实施例三提供的电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
实施例一
图1是本发明实施例一提供的基于人工智能的数据处理方法的流程图。
在本实施例中,所述基于人工智能的数据处理方法可以应用于电子设备中,对于需要进行基于人工智能的数据处理的电子设备,可以直接在电子设备上集成本发明的方法所提供的基于人工智能的数据处理的功能,或者以软件开发工具包(SoftwareDevelopment Kit,SDK)的形式运行在电子设备中。
本发明实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习、深度学习等几大方向。
如图1所示,所述基于人工智能的数据处理方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。
S11,响应于接收的数据处理请求,获取第一数据库表。
本实施例中,结构化查询语言(Structured Query Language,SQL)是一种用于数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系型数据库。由于Hive平台和Spark平台的设计机制不一样,Hive采用Mapreduce的机制进行数据的运算,而Spark采用RDD的机制进行SQL的解析和执行,执行不同的SQL语句,速度不同。
本实施例中,所述数据处理请求用于请求获取待处理的HiveSQL文件,将所述HiveSQL文件确定为第一数据库表。
S12,解析所述第一数据库表,得到解析结果。
本实施例中,所述解析结果是指对所述第一数据库表中的语法进行解析后得到的。
在一个可选的实施例中,所述解析所述第一数据库表,得到解析结果包括:
获取所述第一数据库表对应的语法规则集;
基于所述语法规则集生成语法分析器;
采用所述语法分析器对所述第一数据库表中的第一查询语句进行语法解析,得到对应的语法元素;
确定每个语法元素的节点位置,并按照所述节点位置对每个语法元素进行布局,生成对应的语法树,将所述语法树确定为解析结果。
具体地,所述语法分析器可以是ANTLR语法分析器,所述ANTLR(Another Tool forLanguage Recognition)语法分析器是一个用Java语言编写的识别器工具,将语法规则集中的ANTLR语法规则直接生成目标语言的解析器。
本实施例中,通过对所述第一数据库表中的第一查询语句进行语法解析,识别出所述第一查询语句中的语法元素,例如,所述语法元素可以为关键词(如SELECT、FROM、WHERE)、语法表达式等,根据所述语法元素及对应的节点位置生成语法树,所述语法树是根据所述第一数据库表对应的语法规则集对所述第一数据库表进行推导得到的。
本实施例中,通过解析出所述第一数据库表的语法结构,便于后续基于所述语法结构对所述第一数据库表进行转换,提高了第一数据库表的转换效率。
S13,构建转换策略,基于所述转换策略对所述解析结果中的语法树的每个节点进行转换,得到转换结果。
本实施例中,所述转换结果中包含有第二数据库表,其中,所述第二数据库表是指采用所述构建的转换策略对所述第一数据库表的语法树转换后得到的,具体地,所述第二数据库表是指SparkSQL文件,即通过构建的转换策略将Hive SQL文件转换为了Spark SQL文件。
本实施例中,Spark SQL从Shark发展而来,Shark为了实现Hive兼容,通过对第一数据库表,即HiveSQL文件进行语法解析转换为SparkSQL文件。
在一个可选的实施例中,所述构建转换策略包括:
识别所述第一数据库表的第一语法与所述第二数据库表的第二语法之间的差异;
基于所述差异采用预设的函数构建转换策略。
本实施例中,所述预设的函数可以为UDF(user-defined function)函数,具体地,所述UDF函数是用户定义函数,由一个或者多个SQL语句组成的子程序,用于封装代码重新使用,通过根据所述第一数据库表的第一语法与所述第二数据库表的第二语法之间的差异,采用用户定义函数构建转换策略。
在一个可选的实施例中,所述基于所述转换策略对所述解析结果中的语法树的每个节点进行转换,得到转换结果包括:
识别所述语法树的每个节点的转换策略;
基于所述每个节点的转换策略对每个节点的第一查询语句进行转换;
当转换得到的是每个节点的第二查询语句时,确定转换结果为转换成功,并将所述转换结果与第二数据库表进行关联,其中,所述第二数据库表是将每个节点的第二查询语句写入预设的数据库表中得到的;
当转换得到的不是每个节点的第二查询语句时,确定转换结果为转换失败。
本实施例中,所述第一查询语句是指第一数据库表中的查询语句,所述第二查询语句是基于所述转换策略转换第一查询语句后的得到的查询语句。
本实施例中,在转换成功时,才能够得到每个节点的第二查询语句,故在基于所述每个节点的转换策略对每个节点的第一查询语句进行转换的过程中,当任意一个节点的第一查询语句转换得到的不是第二查询语句时,确定转换结果为转换失败。
本实施例中,可以预先构建转换策略,通过调用转换策略,将所述语法树中的每个节点的第一查询语句按照对应的转换策略转换为第二查询语句,无需人为参与,实现了自动化转换,提高了数据转换效率。
S14,当所述转换结果为转换成功时,校验与所述转换结果关联的第二数据库表。
本实施例中,在将Hive SQL文件转换为Spark SQL文件的过程中,可能会由于转换策略不符合要求出现转换失败的情况,当转换失败时,根据转换失败的失败信息不断调整转换策略进行迭代转换,直至转换成功,无需对全部节点进行重新转换,提高了Hive SQL文件转换为Spark SQL文件的转换效率。
在一个可选的实施例中,所述校验与所述转换结果关联的第二数据库表包括:
获取所述第二数据库表中的第二查询语句;
提取每个第二查询语句的目标语法;
基于所述每个第二查询语句的目标语法遍历所述第二数据库表对应的标准语法库;
当在所述标准语法库中遍历到每个第二查询语句的目标语法时,确定所述第二数据库表校验合格;
当在所述标准语法库中未遍历到任意一个第二查询语句的目标语法时,确定所述第二数据库表校验不合格。
本实施例中,标准语法库是指所述SparkSQL语法库,包含有多个SparkSQL语法,当在所述标准语法库中未遍历到每个第二查询语句的目标语法时,确定转换失败,即转换得到的第二数据库表校验不合格。
在其他可选的实施例中,在所述校验所述第二数据库表之前,所述方法还包括:
基于构建的转换策略获取目标运算模板;
将所述第二数据库表的第二查询语句的映射关系写入所述目标运算模板的对应转换策略中,生成转换报告。
本实施例中,所述转换报告是基于转换结果生成的,根据构建的转换策略确定对应的目标运算模板,并将所述第二数据库表的第二查询语句的映射关系放入对应的转换策略中,后续可以快速的根据转换报告中定位出的失败节点的失败信息获取改造和优化转换策略指南,提升了数据处理效率。
S15,当确定所述第二数据库表校验合格时,执行所述第二数据库表中的任务,得到数据处理结果。
本实施例中,所述数据处理结果中包含有任务执行结束和触发异常任务处理指令。
在一个可选的实施例中,所述执行所述第二数据库表中的任务,得到数据处理结果包括:
当侦测到所述第二数据库表中的任意一个任务执行失败时,获取所述第一数据库表,并执行所述第一数据库表中的任务;
当所述第一数据库表中的每个任务执行成功时,确定数据处理结果为任务执行结束;
当所述第一数据库表中的任意一个任务执行失败时,确定数据处理结果为触发异常任务处理指令。
本实施例中,在第二数据库表中的任意一个任务执行失败时,可以切换至第一数据库表中执行任务,避免了第二数据库表中的任意一个任务执行失败导致任务无法执行的现象,提高了执行任务的容错性。
在一个可选的实施例中,所述执行所述第二数据库表中的任务,得到数据处理结果还包括:
当侦测到所述第二数据库表中的每个任务执行成功时,任务执行结束。
在其他可选的实施例中,所述方法还包括:
当确定所述第二数据库表校验合格时,输出所述第二数据库表的有向无环图。
本实施例中,将所述第二数据库表输出为有向无环图,直观的确定出第二数据库表中的各个任务,且各个任务之间都是独立存在,在后续可以并行处理执行的任务,提高了数据处理效率。
进一步地,所述方法还包括:
当确定所述第二数据库表校验不合格时,获取校验失败的失败节点的第一失败信息,将所述第一失败信息发送至客户端;
接收所述客户端基于所述第一失败信息上报的新的转换策略,基于所述新的转换策略对所述失败节点的第一查询语句进行二次转换;
当转换得到的是所述失败节点的第二查询语句时,确定转换结果为转换成功,转换结束,或者,当转换得到的不是所述失败节点的第二查询语句时,确定转换结果为转换失败,重复上述步骤,直至所述失败节点的第一查询语句转换成功,转换结束;
对转换得到的失败节点的第二查询语句进行迭代校验,直至所述第二数据库表校验合格。
本实施例中,在所述第二数据库校验不合格时,通过不断调整转换策略,直至所述第二数据库表校验合格,提高了得到的第二数据库表的准确率。
进一步地,所述方法还包括:
当转换结果为转换失败时,调整转换策略对失败节点的第一查询语句进行二次转换。
本实施例中,当转换失败时,将转换失败得到的失败信息发送至客户端,所述客户端根据所述失败原因重新调整转换策略,并基于调整后的新的转换策略对失败节点的第一查询语句重新进行转换,直至转换成功。
本实施例中,通过不断的优化转换策略,提高了数据转换的准确率。
在一个可选的实施例中,所述当转换结果为转换失败时,调整转换策略对失败节点的第一查询语句进行二次转换包括:
获取转换失败的失败节点的第二失败信息,将所述第二失败信息发送至客户端;
接收所述客户端基于所述第二失败信息上报的新的转换策略,基于所述新的转换策略对所述失败节点的第一查询语句进行二次转换;
当转换得到的是所述失败节点的第二查询语句时,确定转换结果为转换成功,转换结束;
当转换得到的不是所述失败节点的第二查询语句时,确定转换结果为转换失败,重复上述步骤,直至所述失败节点的第一查询语句转换成功。
综上所述,本实施例所述的基于人工智能的数据处理方法,通过解析所述第一数据库表,得到解析结果,便于后续基于所述解析结果对所述第一数据库表进行转换,提高了第一数据库表的转换效率。构建转换策略,基于所述转换策略对所述解析结果中的语法树的每个节点进行转换,得到转换结果,通过预先构建转换策略,通过调用转换策略,将所述语法树中的每个节点的第一查询语句按照对应的转换策略转换为第二查询语句,无需人为参与,实现了自动化转换,提高了数据转换效率。当所述转换结果为转换成功时,校验与所述转换结果关联的第二数据库表,并在所述第二数据库表校验合格时,执行所述第二数据库表中的任务,得到数据处理结果,在确保转换结果成功和校验结果合格的情况下,执行所述第二数据库表中的任务,在第二数据库表中的任意一个任务执行失败时,可以切换至第一数据库表中执行任务,避免了第二数据库表中的任意一个任务执行失败导致任务无法执行的现象,提高了执行任务的容错性。
实施例二
图2是本发明实施例二提供的基于人工智能的数据处理装置的结构图。
在一些实施例中,所述基于人工智能的数据处理装置20可以包括多个由程序代码段所组成的功能模块。所述基于人工智能的数据处理装置20中的各个程序段的程序代码可以存储于电子设备的存储器中,并由所述至少一个处理器所执行,以执行(详见图1描述)基于人工智能的数据处理的功能。
本实施例中,所述基于人工智能的数据处理装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:获取模块201、解析模块202、转换模块203、校验模块204、执行模块205、输出模块206及调整模块207。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机可读指令段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
获取模块201,用于响应于接收的数据处理请求,获取第一数据库表。
本实施例中,结构化查询语言(Structured Query Language,SQL)是一种用于数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系型数据库。由于Hive平台和Spark平台的设计机制不一样,Hive采用Mapreduce的机制进行数据的运算,而Spark采用RDD的机制进行SQL的解析和执行,执行不同的SQL语句,速度不同。
本实施例中,所述数据处理请求用于请求获取待处理的HiveSQL文件,将所述HiveSQL文件确定为第一数据库表。
解析模块202,用于解析所述第一数据库表,得到解析结果。
本实施例中,所述解析结果是指对所述第一数据库表中的语法进行解析后得到的。
在一个可选的实施例中,所述解析模块202解析所述第一数据库表,得到解析结果包括:
获取所述第一数据库表对应的语法规则集;
基于所述语法规则集生成语法分析器;
采用所述语法分析器对所述第一数据库表中的第一查询语句进行语法解析,得到对应的语法元素;
确定每个语法元素的节点位置,并按照所述节点位置对每个语法元素进行布局,生成对应的语法树,将所述语法树确定为解析结果。
具体地,所述语法分析器可以是ANTLR语法分析器,所述ANTLR(Another Tool forLanguage Recognition)语法分析器是一个用Java语言编写的识别器工具,将语法规则集中的ANTLR语法规则直接生成目标语言的解析器。
本实施例中,通过对所述第一数据库表中的第一查询语句进行语法解析,识别出所述第一查询语句中的语法元素,例如,所述语法元素可以为关键词(如SELECT、FROM、WHERE)、语法表达式等,根据所述语法元素及对应的节点位置生成语法树,所述语法树是根据所述第一数据库表对应的语法规则集对所述第一数据库表进行推导得到的。
本实施例中,通过解析出所述第一数据库表的语法结构,便于后续基于所述语法结构对所述第一数据库表进行转换,提高了第一数据库表的转换效率。
转换模块203,用于构建转换策略,基于所述转换策略对所述解析结果中的语法树的每个节点进行转换,得到转换结果。
本实施例中,所述转换结果中包含有第二数据库表,其中,所述第二数据库表是指采用所述构建的转换策略对所述第一数据库表的语法树转换后得到的,具体地,所述第二数据库表是指Spark SQL文件,即通过构建的转换策略将Hive SQL文件转换为了Spark SQL文件。
本实施例中,Spark SQL从Shark发展而来,Shark为了实现Hive兼容,通过对第一数据库表,即HiveSQL文件进行语法解析转换为SparkSQL文件。
在一个可选的实施例中,所述转换模块203构建转换策略包括:
识别所述第一数据库表的第一语法与所述第二数据库表的第二语法之间的差异;
基于所述差异采用预设的函数构建转换策略。
本实施例中,所述预设的函数可以为UDF(user-defined function)函数,具体地,所述UDF函数是用户定义函数,由一个或者多个SQL语句组成的子程序,用于封装代码重新使用,通过根据所述第一数据库表的第一语法与所述第二数据库表的第二语法之间的差异,采用用户定义函数构建转换策略。
在一个可选的实施例中,所述转换模块203基于所述转换策略对所述解析结果中的语法树的每个节点进行转换,得到转换结果包括:
识别所述语法树的每个节点的转换策略;
基于所述每个节点的转换策略对每个节点的第一查询语句进行转换;
当转换得到的是每个节点的第二查询语句时,确定转换结果为转换成功,并将所述转换结果与第二数据库表进行关联,其中,所述第二数据库表是将每个节点的第二查询语句写入预设的数据库表中得到的;
当转换得到的不是每个节点的第二查询语句时,确定转换结果为转换失败。
本实施例中,所述第一查询语句是指第一数据库表中的查询语句,所述第二查询语句是基于所述转换策略转换第一查询语句后的得到的查询语句。
本实施例中,在转换成功时,才能够得到每个节点的第二查询语句,故在基于所述每个节点的转换策略对每个节点的第一查询语句进行转换的过程中,当任意一个节点的第一查询语句转换得到的不是第二查询语句时,确定转换结果为转换失败。
本实施例中,可以预先构建转换策略,通过调用转换策略,将所述语法树中的每个节点的第一查询语句按照对应的转换策略转换为第二查询语句,无需人为参与,实现了自动化转换,提高了数据转换效率。
校验模块204,用于当所述转换结果为转换成功时,校验与所述转换结果关联的第二数据库表。
本实施例中,在将Hive SQL文件转换为Spark SQL文件的过程中,可能会由于转换策略不符合要求出现转换失败的情况,当转换失败时,根据转换失败的失败信息不断调整转换策略进行迭代转换,直至转换成功,无需对全部节点进行重新转换,提高了Hive SQL文件转换为Spark SQL文件的转换效率。
在一个可选的实施例中,所述校验模块204校验与所述转换结果关联的第二数据库表包括:
获取所述第二数据库表中的第二查询语句;
提取每个第二查询语句的目标语法;
基于所述每个第二查询语句的目标语法遍历所述第二数据库表对应的标准语法库;
当在所述标准语法库中遍历到每个第二查询语句的目标语法时,确定所述第二数据库表校验合格;
当在所述标准语法库中未遍历到任意一个第二查询语句的目标语法时,确定所述第二数据库表校验不合格。
本实施例中,标准语法库是指所述Spark SQL语法库,包含有多个Spark SQL语法,当在所述标准语法库中未遍历到每个第二查询语句的目标语法时,确定转换失败,即转换得到的第二数据库表校验不合格。
在其他可选的实施例中,在所述校验所述第二数据库表之前,基于构建的转换策略获取目标运算模板;将所述第二数据库表的第二查询语句的映射关系写入所述目标运算模板的对应转换策略中,生成转换报告。
本实施例中,所述转换报告是基于转换结果生成的,根据构建的转换策略确定对应的目标运算模板,并将所述第二数据库表的第二查询语句的映射关系放入对应的转换策略中,后续可以快速的根据转换报告中定位出的失败节点的失败信息获取改造和优化转换策略指南,提升了数据处理效率。
执行模块205,用于当确定所述第二数据库表校验合格时,执行所述第二数据库表中的任务,得到数据处理结果。
本实施例中,所述数据处理结果中包含有任务执行结束和触发异常任务处理指令。
在一个可选的实施例中,所述执行模块205执行所述第二数据库表中的任务,得到数据处理结果包括:
当侦测到所述第二数据库表中的任意一个任务执行失败时,获取所述第一数据库表,并执行所述第一数据库表中的任务;
当所述第一数据库表中的每个任务执行成功时,确定数据处理结果为任务执行结束;
当所述第一数据库表中的任意一个任务执行失败时,确定数据处理结果为触发异常任务处理指令。
本实施例中,在第二数据库表中的任意一个任务执行失败时,可以切换至第一数据库表中执行任务,避免了第二数据库表中的任意一个任务执行失败导致任务无法执行的现象,提高了执行任务的容错性。
在一个可选的实施例中,所述执行模块205执行所述第二数据库表中的任务,得到数据处理结果还包括:
当侦测到所述第二数据库表中的每个任务执行成功时,任务执行结束。
在其他可选的实施例中,输出模块206,用于当确定所述第二数据库表校验合格时,输出所述第二数据库表的有向无环图。
本实施例中,将所述第二数据库表输出为有向无环图,直观的确定出第二数据库表中的各个任务,且各个任务之间都是独立存在,在后续可以并行处理执行的任务,提高了数据处理效率。
进一步地,当确定所述第二数据库表校验不合格时,获取校验失败的失败节点的第一失败信息,将所述第一失败信息发送至客户端;接收所述客户端基于所述第一失败信息上报的新的转换策略,基于所述新的转换策略对所述失败节点的第一查询语句进行二次转换;当转换得到的是所述失败节点的第二查询语句时,确定转换结果为转换成功,转换结束,或者,当转换得到的不是所述失败节点的第二查询语句时,确定转换结果为转换失败,重复上述步骤,直至所述失败节点的第一查询语句转换成功,转换结束;对转换得到的失败节点的第二查询语句进行迭代校验,直至所述第二数据库表校验合格。
本实施例中,在所述第二数据库校验不合格时,通过不断调整转换策略,直至所述第二数据库表校验合格,提高了得到的第二数据库表的准确率。
调整模块207,用于当转换结果为转换失败时,调整转换策略对失败节点的第一查询语句进行二次转换。
本实施例中,当转换失败时,将转换失败得到的失败信息发送至客户端,所述客户端根据所述失败原因重新调整转换策略,并基于调整后的新的转换策略对失败节点的第一查询语句重新进行转换,直至转换成功。
本实施例中,通过不断的优化转换策略,提高了数据转换的准确率。
在一个可选的实施例中,所述调整模块207当转换结果为转换失败时,调整转换策略对失败节点的第一查询语句进行二次转换包括:
获取转换失败的失败节点的第二失败信息,将所述第二失败信息发送至客户端;
接收所述客户端基于所述第二失败信息上报的新的转换策略,基于所述新的转换策略对所述失败节点的第一查询语句进行二次转换;
当转换得到的是所述失败节点的第二查询语句时,确定转换结果为转换成功,转换结束;
当转换得到的不是所述失败节点的第二查询语句时,确定转换结果为转换失败,重复上述步骤,直至所述失败节点的第一查询语句转换成功。
综上所述,本实施例所述的基于人工智能的数据处理装置,通过解析所述第一数据库表,得到解析结果,便于后续基于所述解析结果对所述第一数据库表进行转换,提高了第一数据库表的转换效率。构建转换策略,基于所述转换策略对所述解析结果中的语法树的每个节点进行转换,得到转换结果,通过预先构建转换策略,通过调用转换策略,将所述语法树中的每个节点的第一查询语句按照对应的转换策略转换为第二查询语句,无需人为参与,实现了自动化转换,提高了数据转换效率。当所述转换结果为转换成功时,校验与所述转换结果关联的第二数据库表,并在所述第二数据库表校验合格时,执行所述第二数据库表中的任务,得到数据处理结果,在确保转换结果成功和校验结果合格的情况下,执行所述第二数据库表中的任务,在第二数据库表中的任意一个任务执行失败时,可以切换至第一数据库表中执行任务,避免了第二数据库表中的任意一个任务执行失败导致任务无法执行的现象,提高了执行任务的容错性。
实施例三
参阅图3所示,为本发明实施例三提供的电子设备的结构示意图。在本发明较佳实施例中,所述电子设备3包括存储器31、至少一个处理器32、至少一条通信总线33及收发器34。
本领域技术人员应该了解,图3示出的电子设备的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述电子设备3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。
在一些实施例中,所述电子设备3是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述电子设备3还可包括客户设备,所述客户设备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。
需要说明的是,所述电子设备3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
在一些实施例中,所述存储器31用于存储程序代码和各种数据,例如安装在所述电子设备3中的基于人工智能的数据处理装置20,并在电子设备3的运行过程中实现高速、自动地完成程序或数据的存取。所述存储器31包括只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
在一些实施例中,所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述至少一个处理器32是所述电子设备3的控制核心(Control Unit),利用各种接口和线路连接整个电子设备3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行电子设备3的各种功能和处理数据。
在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。
尽管未示出,所述电子设备3还可以包括给各个部件供电的电源(比如电池),可选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备3还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。
在进一步的实施例中,结合图2,所述至少一个处理器32可执行所述电子设备3的操作装置以及安装的各类应用程序(如所述的基于人工智能的数据处理装置20)、程序代码等,例如,上述的各个模块。
所述存储器31中存储有程序代码,且所述至少一个处理器32可调用所述存储器31中存储的程序代码以执行相关的功能。例如,图2中所述的各个模块是存储在所述存储器31中的程序代码,并由所述至少一个处理器32所执行,从而实现所述各个模块的功能以达到基于人工智能的数据处理的目的。
示例性的,所述程序代码可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器31中,并由所述处理器32执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述程序代码在所述电子设备3中的执行过程。例如,所述程序代码可以被分割成获取模块201、解析模块202、转换模块203、校验模块204、执行模块205、输出模块206及调整模块207。
在本发明的一个实施例中,所述存储器31存储多个计算机可读指令,所述多个计算机可读指令被所述至少一个处理器32所执行以实现基于人工智能的数据处理的功能。
具体地,所述至少一个处理器32对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。本发明中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种基于人工智能的数据处理方法,其特征在于,所述方法包括:
响应于接收的数据处理请求,获取第一数据库表;
解析所述第一数据库表,得到解析结果;
构建转换策略,基于所述转换策略对所述解析结果中的语法树的每个节点进行转换,得到转换结果;
当所述转换结果为转换成功时,校验与所述转换结果关联的第二数据库表;
当确定所述第二数据库表校验合格时,执行所述第二数据库表中的任务,得到数据处理结果。
2.如权利要求1所述的基于人工智能的数据处理方法,其特征在于,所述执行所述第二数据库表中的任务,得到数据处理结果包括:
当侦测到所述第二数据库表中的任意一个任务执行失败时,获取所述第一数据库表,并执行所述第一数据库表中的任务;
当所述第一数据库表中的每个任务执行成功时,确定数据处理结果为任务执行结束;
当所述第一数据库表中的任意一个任务执行失败时,确定数据处理结果为触发异常任务处理指令。
3.如权利要求1所述的基于人工智能的数据处理方法,其特征在于,所述解析所述第一数据库表,得到解析结果包括:
获取所述第一数据库表对应的语法规则集;
基于所述语法规则集生成语法分析器;
采用所述语法分析器对所述第一数据库表中的第一查询语句进行语法解析,得到对应的语法元素;
确定每个语法元素的节点位置,并按照所述节点位置对每个语法元素进行布局,生成对应的语法树,将所述语法树确定为解析结果。
4.如权利要求1所述的基于人工智能的数据处理方法,其特征在于,所述构建转换策略包括:
识别所述第一数据库表的第一语法与所述第二数据库表的第二语法之间的差异;
基于所述差异采用预设的函数构建转换策略。
5.如权利要求1所述的基于人工智能的数据处理方法,其特征在于,所述基于所述转换策略对所述解析结果中的语法树的每个节点进行转换,得到转换结果包括:
识别所述语法树的每个节点的转换策略;
基于所述每个节点的转换策略对每个节点的第一查询语句进行转换;
当转换得到的是每个节点的第二查询语句时,确定转换结果为转换成功,并将所述转换结果与第二数据库表进行关联,其中,所述第二数据库表是将每个节点的第二查询语句写入预设的数据库表中得到的;
当转换得到的不是每个节点的第二查询语句时,确定转换结果为转换失败。
6.如权利要求5所述的基于人工智能的数据处理方法,其特征在于,所述方法还包括:
当转换结果为转换失败时,调整转换策略对失败节点的第一查询语句进行二次转换。
7.如权利要求1所述的基于人工智能的数据处理方法,其特征在于,所述方法还包括:
当确定所述第二数据库表校验不合格时,获取校验失败的失败节点的第一失败信息,将所述第一失败信息发送至客户端;
接收所述客户端基于所述第一失败信息上报的新的转换策略,基于所述新的转换策略对所述失败节点的第一查询语句进行二次转换;
当转换得到的是所述失败节点的第二查询语句时,确定转换结果为转换成功,转换结束,或者,当转换得到的不是所述失败节点的第二查询语句时,确定转换结果为转换失败,重复上述步骤,直至所述失败节点的第一查询语句转换成功,转换结束;
对转换得到的失败节点的第二查询语句进行迭代校验,直至所述第二数据库表校验合格。
8.一种基于人工智能的数据处理装置,其特征在于,所述装置包括:
获取模块,用于响应于接收的数据处理请求,获取第一数据库表;
解析模块,用于解析所述第一数据库表,得到解析结果;
转换模块,用于构建转换策略,基于所述转换策略对所述解析结果中的语法树的每个节点进行转换,得到转换结果;
校验模块,用于当所述转换结果为转换成功时,校验与所述转换结果关联的第二数据库表;
执行模块,用于当确定所述第二数据库表校验合格时,执行所述第二数据库表中的任务,得到数据处理结果。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现如权利要求1至7中任意一项所述的基于人工智能的数据处理方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的基于人工智能的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210828432.6A CN115237938A (zh) | 2022-07-13 | 2022-07-13 | 基于人工智能的数据处理方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210828432.6A CN115237938A (zh) | 2022-07-13 | 2022-07-13 | 基于人工智能的数据处理方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115237938A true CN115237938A (zh) | 2022-10-25 |
Family
ID=83674271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210828432.6A Pending CN115237938A (zh) | 2022-07-13 | 2022-07-13 | 基于人工智能的数据处理方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115237938A (zh) |
-
2022
- 2022-07-13 CN CN202210828432.6A patent/CN115237938A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022160707A1 (zh) | 结合rpa和ai的人机互动方法、装置、存储介质及电子设备 | |
CN110069572B (zh) | 基于大数据平台的hive任务调度方法、装置、设备及存储介质 | |
CN106777101B (zh) | 数据处理引擎 | |
CN108229799B (zh) | 一种多源异构电网运行实时数据接入系统及方法 | |
CN111026670B (zh) | 测试用例的生成方法、测试用例的生成装置及存储介质 | |
CN112579267A (zh) | 一种去中心化大数据作业流调度方法及装置 | |
US20200371902A1 (en) | Systems and methods for software regression detection | |
CN115335821B (zh) | 卸载统计收集 | |
CN113886111B (zh) | 一种基于工作流的数据分析模型计算引擎系统及运行方法 | |
CN114416849A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN109241157B (zh) | 数据调用方法、装置、通信设备及存储介质 | |
CN106843822B (zh) | 一种执行代码生成方法及设备 | |
CN115237938A (zh) | 基于人工智能的数据处理方法、装置、电子设备及介质 | |
CN110109986B (zh) | 任务处理方法、系统、服务器及任务调度系统 | |
CN115237706A (zh) | 埋点数据处理方法、装置、电子设备及存储介质 | |
CN111158653B (zh) | 基于sql语言的实时计算程序的集成开发及执行系统 | |
CN114418585A (zh) | 智能合约生成方法、装置及相关设备 | |
CN113590217A (zh) | 基于引擎的函数管理方法、装置、电子设备及存储介质 | |
CN113835706A (zh) | 基于人工智能的骨架屏生成方法、装置、电子设备及介质 | |
CN113220436A (zh) | 一种分布式环境下的通用批量作业执行方法及装置 | |
CN112148854B (zh) | 一种对话管理方法及装置 | |
CN116089473A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN114637564B (zh) | 数据可视化方法、装置、电子设备及存储介质 | |
CN114969261B (zh) | 基于人工智能的数据查询方法、装置、电子设备及介质 | |
CN116974949B (zh) | 基于多模态生成式ai的技术运维机器人控制方法及系统 |
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 |