CN111367936B - 一种结构化查询语言语法的离线校验方法及装置 - Google Patents

一种结构化查询语言语法的离线校验方法及装置 Download PDF

Info

Publication number
CN111367936B
CN111367936B CN202010130139.3A CN202010130139A CN111367936B CN 111367936 B CN111367936 B CN 111367936B CN 202010130139 A CN202010130139 A CN 202010130139A CN 111367936 B CN111367936 B CN 111367936B
Authority
CN
China
Prior art keywords
grammar
information
checking
checked
verification
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.)
Active
Application number
CN202010130139.3A
Other languages
English (en)
Other versions
CN111367936A (zh
Inventor
宋虎
黄炳
裴洪斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202010130139.3A priority Critical patent/CN111367936B/zh
Publication of CN111367936A publication Critical patent/CN111367936A/zh
Application granted granted Critical
Publication of CN111367936B publication Critical patent/CN111367936B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供结构化查询语言语法的离线校验方法及装置,所述方法包括:接收客户端发送的语法校验请求,所述语法校验请求包括源表字段信息和待校验SQL语句信息;根据所述源表字段信息生成临时表并加载注册函数;其中,所述注册函数是预先设置的;根据所述临时表和所述注册函数以及语法校验规则对所述待校验SQL语句信息进行语法校验,获得语法校验结果;将所述语法校验结果返回给所述客户端。所述装置用于执行上述方法。本发明实施例提供的结构化查询语言语法的离线校验方法及装置,提高了SQL语法校验的效率。

Description

一种结构化查询语言语法的离线校验方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及一种结构化查询语言语法的离线校验方法及装置。
背景技术
Spark SQL是Spark软件栈中的一员,主要用于进行结构化数据的处理,在大数据分析和人工智能等领域得到广泛应用。
在机器学习建模的应用场景,通常需要进行数据预处理。数据预处理可以通过Spark引擎处理计算加工数据湖Hive数据方式进行。在数据预处理的过程中,建模人员需要编写大量的Hive SQL来访问处理Hive数据。目前Hive SQL语法校验主要通过提交ExplainSQL语句信息到集群服务器进行语法校验,但是由于客户端依赖集群服务器的配置且需要安装集群客户端程序,将需要语法验证的SQL提交到集群服务器运行并反馈结果到客户端需要较长的时间,从而导致SQL语法校验的效率较低。
发明内容
针对现有技术中的问题,本发明实施例提供一种结构化查询语言语法的离线校验方法及装置,能够至少部分地解决现有技术中存在的问题。
一方面,本发明提出一种结构化查询语言语法的离线校验方法,包括:
接收客户端发送的语法校验请求,所述语法校验请求包括源表字段信息和待校验SQL语句信息;
根据所述源表字段信息生成临时表并加载注册函数;其中,所述注册函数是预先设置的;
根据所述临时表和所述注册函数以及语法校验规则对所述待校验SQL语句信息进行语法校验,获得语法校验结果;
将所述语法校验结果返回给所述客户端。
另一方面,本发明提供一种结构化查询语言语法的离线校验装置,包括:
接收单元,用于接收客户端发送的语法校验请求,所述语法校验请求包括源表字段信息和待校验SQL语句信息;
生成单元,用于根据所述源表字段信息生成临时表并加载注册函数;其中,所述注册函数是预先设置的;
校验单元,用于根据所述临时表和所述注册函数以及语法校验规则对所述待校验SQL语句信息进行语法校验,获得语法校验结果;
返回单元,用于将所述语法校验结果返回给所述客户端。
再一方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述结构化查询语言语法的离线校验方法的步骤。
又一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述结构化查询语言语法的离线校验方法的步骤。
本发明实施例提供的结构化查询语言语法的离线校验方法及装置,能够接收客户端发送的包括源表字段信息和待校验SQL语句信息的语法校验请求,根据源表字段信息生成临时表,根据临时表以及语法校验规则对待校验SQL语句信息进行语法校验,获得语法校验结果,将语法校验结果返回给所述客户端,无需依赖集群服务器的配置,离线完成SQL语法校验,提高了SQL语法校验的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例提供的结构化查询语言语法的离线校验方法的流程示意图。
图2是本发明另一实施例提供的结构化查询语言语法的离线校验方法的流程示意图。
图3是本发明一实施例提供的结构化查询语言语法的离线校验装置的结构示意图。
图4是本发明另一实施例提供的结构化查询语言语法的离线校验装置的结构示意图。
图5是本发明又一实施例提供的结构化查询语言语法的离线校验装置的结构示意图。
图6是本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1是本发明一实施例提供的结构化查询语言语法的离线校验方法的流程示意图,如图1所示,本发明实施例提供的结构化查询语言语法的离线校验方法,包括:
S101、接收客户端发送的语法校验请求,所述语法校验请求包括源表字段信息和待校验SQL语句信息;
具体地,当需要对结构化查询语言(Structured Query Language,简称SQL)语法进行校验时,客户端可以向服务器发送语法校验请求,所述语法校验请求包括源表字段信息和待校验SQL语句信息。所述服务器会接收所述语法校验请求。其中,源表字段信息是所述待校验SQL语句信息中用到的源表名称和字段名称,根据实际需要进行设置,本发明实施例不做限定。所述待校验SQL语句信息为需要进行语法校验的SQL语句。
S102、根据所述源表字段信息生成临时表并加载注册函数;其中,所述注册函数是预先设置的;
具体地,所述服务器在接收到所述语法校验请求之后,会根据所述语法校验请求包括的源表字段信息构建临时表,所述临时表包括所述源表名称和字段名称,所述临时表用于对所述待校验SQL语句信息进行校验。所述服务器还会加载注册函数,所述注册函数可以包括自定义函数和自定义窗口函数,用于对所述待校验SQL语句信息进行校验。所述注册函数是预先设置的,根据实际需要进行设置,本发明实施例不做限定。
例如,所述服务器可以根据源表字段信息调用Spark函数,创建空矩阵数据表(Dataframe),然后调用Spark接口,将空Dataframe注册为临时表。
例如,所述服务器通过调用Spark接口将注册函数注册为临时函数,在上述临时函数服务周期内有效,上述临时函数注册加载完成之后,可以生成对外服务的Restful API,以便于调用上述临时函数。其中,所述注册函数可以加载HiveContext服务进行创建,所述注册函数可以包括自定义函数和自定义窗口函数,所述自定义函数是单输入单输出的函数,所述自定义窗口函数是多输入单输出的函数。
S103、根据所述临时表以及语法校验规则对所述待校验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语句信息没有通过校验。
在上述各实施例的基础上,进一步地,本发明实施例提供的结构化查询语言语法的离线校验方法还包括:
在接收所述客户端发送的语法校验请求之前,建立语法校验服务。
具体地,所述服务器在接收所述客户端发送的语法校验请求之前,需要建立语法校验服务,即通过语法校验服务的应用服务包将所述语法校验服务部署在所述服务器上。其中,所述语法校验服务的应用服务包可以通过Spark JAR包构建,所述语法校验服务的应用服务包根据实际需要进行设置,本发明实施例不做限定。所述语法校验服务的应用服务包能够部署在独立的服务器上,使得SQL语法校验与集群服务器解耦。
例如,可以通过spark-sql、spark-core、spark-hive、parquet和hive-exec这些Spark基础JAR包构建一个所述语法校验服务的应用服务包。
在上述各实施例的基础上,进一步地,本发明实施例提供的结构化查询语言语法的离线校验方法还包括:
若判断获知所述语法校验请求不包括所述源表字段信息或者待校验SQL语句信息,则向所述客户端返回错误提示信息。
具体地,所述服务器在接收到所述语法校验请求之后,会判断所述语法校验请求是否包括所述源表字段信息或者所述待校验SQL语句信息,如果不包括所述源表字段信息或者所述待校验SQL语句信息,那么无法完成对SQL语法的校验,可以向所述客户端返回错误提示信息。
例如,所述语法校验请求采用设定的格式,所述服务器在检测到源表字段信息为空时,可以判断出所述语法校验请求不包括源表字段信息;所述服务器在检测到待校验SQL语句信息为空时,可以判断出所述语法校验请求不包括待校验SQL语句信息。
下面以一个具体的实施例来说明本发明实施例提供的结构化查询语言语法的离线校验方法的实现过程,如图2所示,具体流程如下:
第一步、服务器接收并解析来自客户端的语法校验请求。其中,所述服务器已经构建语法校验服务器,并启动离线模式SparkContext服务和HiveContext服务,服务注册为单例模式。
第二步、所述服务器校验所述语法校验请求中是否包含源表字段信息和待校验SQL语句信息;如果所述语法校验请求中不包括所述源表字段信息或者待校验SQL语句信息,那么进入第五步;如果所述语法校验请求中包括所述源表字段信息和待校验SQL语句信息,那么进入第三步。
第三步、所述服务器根据所述源表字段信息生成临时表,并加载注册函数。所述服务器可以调用Spark函数根据所述源表字段信息创建空Dataframe,并调用Spark接口,将空Dataframe注册为临时表。所述可以通过Restful API加载注册函数,所述注册函数是预先设置的。
第四步、所述服务器对所述待校验SQL语句信息进行语法校验。所述服务器可以调用Spark接口,执行所述待校验SQL语句信息包括的SQL语句,并对SQL执行结果进行解析,从而完成SQL语法校验,获得语法校验结果。
第五步、所述服务器向所述客户端返回语法校验结果。其中,如果是第二步所述语法校验请求中不包括所述源表字段信息或者待校验SQL语句信息,可以提示语法校验请求格式错误;如果是第四步语法校验出现错误,那么可以返回报错信息;如果是第四步语法校验正确,那么可以返回语法校验通过提示信息。
图3是本发明一实施例提供的结构化查询语言语法的离线校验装置的结构示意图,如图3所示,本发明实施例提供的结构化查询语言语法的离线校验装置包括接收单元301、生成单元302、校验单元303和返回单元304,其中:
接收单元301用于接收客户端发送的语法校验请求,所述语法校验请求包括源表字段信息和待校验SQL语句信息;生成单元302用于根据所述源表字段信息生成临时表并加载注册函数;其中,所述注册函数是预先设置的;校验单元303用于根据所述临时表和所述注册函数以及语法校验规则对所述待校验SQL语句信息进行语法校验,获得语法校验结果;返回单元304用于将所述语法校验结果返回给所述客户端。
具体地,当需要对结构化查询语言(Structured Query Language,简称SQL)语法进行校验时,客户端可以向接收单元301发送语法校验请求,所述语法校验请求包括源表字段信息和待校验SQL语句信息。接收单元301会接收所述语法校验请求。其中,源表字段信息是所述待校验SQL语句信息中用到的源表名称和字段名称,根据实际需要进行设置,本发明实施例不做限定。所述待校验SQL语句信息为需要进行语法校验的SQL语句。
在接收到所述语法校验请求之后,生成单元302会根据所述语法校验请求包括的源表字段信息构建临时表,所述临时表包括所述源表名称和字段名称,所述临时表用于对所述待校验SQL语句信息进行校验。生成单元302还会加载注册函数,所述注册函数可以包括自定义函数和自定义窗口函数,用于对所述待校验SQL语句信息进行校验。所述注册函数是预先设置的,根据实际需要进行设置,本发明实施例不做限定。
在获得所述临时表之后,校验单元303会根据所述临时表以及语法校验规则对所述待校验SQL语句信息进行语法校验,获得语法校验结果。如果对所述待校验SQL语句信息进行语法校验时,没有发现问题,那么可以生成语法校验正确结果。如果对所述待校验SQL语句信息进行语法校验时,发现存在语法错误,那么可以生成报错信息,所述报错信息可以包括错误的语句以及修改提示。其中,所述语法校验规则是预设的。
在获得所述语法校验结果之后,返回单元304可以将所述语法校验结果返回给所述客户端。如果是语法校验正确结果,可以通过正确返回码发送给所述客户端;如果是报错信息,可以通过错误返回码发送给所述客户端。其中,所述正确返回码是预设的,与语法校验正确结果对应;所述错误返回码是预设的,与所述报错信息对应。
本发明实施例提供的结构化查询语言语法的离线校验装置,能够接收客户端发送的包括源表字段信息和待校验SQL语句信息的语法校验请求,根据源表字段信息生成临时表,根据临时表以及语法校验规则对待校验SQL语句信息进行语法校验,获得语法校验结果,将语法校验结果返回给所述客户端,无需依赖集群服务器的配置,离线完成SQL语法校验,提高了SQL语法校验的效率。
在上述各实施例的基础上,进一步地,生成单元302具体用于:
根据所述临时表以及所述语法校验规则对所述待校验SQL语句信息引用的表和字段进行校验。
具体地,在生成临时表之后,生成单元302可以执行所述待校验SQL语句信息包括的SQL语句,查询SQL语句中所引用的源表名称和字段名称是否包括在所述临时表中,如果SQL语句中所引用的源表名称和字段名称包括在所述临时表中,说明所述待校验SQL语句信息通过校验;如果SQL语句中所引用的源表名称和字段名称存在不包括在所述临时表中的源表名称或者字段名称,说明所述待校验SQL语句信息没有通过校验。
在上述各实施例的基础上,进一步地,生成单元302具体用于:
根据所述注册函数以及所述语法校验规则对所述待校验SQL语句信息引用的函数进行校验。
具体地,在加载所述注册函数之后,生成单元302可以执行所述待校验SQL语句信息包括的SQL语句,查询SQL语句中所引用的函数是否包括在所述注册函数中,如果SQL语句中所引用的函数都包括在所述注册函数中,说明所述待校验SQL语句信息通过校验;如果SQL语句中所引用的函数中存在不包括在所述注册函数中的函数,说明所述待校验SQL语句信息没有通过校验。
图4是本发明另一实施例提供的结构化查询语言语法的离线校验装置的结构示意图,如图4所示,在上述各实施例的基础上,进一步地,本发明实施例提供的结构化查询语言语法的离线校验装置还包括建立单元305,其中:
建立单元305用于在接收所述客户端发送的语法校验请求之前,建立语法校验服务。
具体地,在接收所述客户端发送的语法校验请求之前,建立单元305建立语法校验服务,即通过语法校验服务的应用服务包将所述语法校验服务部署在建立单元305上。其中,所述语法校验服务的应用服务包可以通过Spark JAR包构建,所述语法校验服务的应用服务包根据实际需要进行设置,本发明实施例不做限定。所述语法校验服务的应用服务包能够部署在独立的服务器上,使得SQL语法校验与集群服务器解耦。
图5是本发明又一实施例提供的结构化查询语言语法的离线校验装置的结构示意图。,如图5所示,在上述各实施例的基础上,进一步,地本发明实施例提供的结构化查询语言语法的离线校验装置还包括提示单元306,其中:
提示单元306用于在判断获知所述语法校验请求不包括源表字段信息或者待校验SQL语句信息之后,向所述客户端返回错误提示信息。
具体地,在接收到所述语法校验请求之后,提示单元306会判断所述语法校验请求是否包括所述源表字段信息或者所述待校验SQL语句信息,如果不包括所述源表字段信息或者所述待校验SQL语句信息,那么无法完成对SQL语法的校验,可以向所述客户端返回错误提示信息。
本发明实施例提供的结构化查询语言语法的离线校验装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图6是本发明一实施例提供的电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)601、通信接口(Communications Interface)602、存储器(memory)603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信。处理器601可以调用存储器603中的逻辑指令,以执行如下方法:接收客户端发送的语法校验请求,所述语法校验请求包括源表字段信息和待校验SQL语句信息;根据所述源表字段信息生成临时表并加载注册函数;其中,所述注册函数是预先设置的;根据所述临时表和所述注册函数以及语法校验规则对所述待校验SQL语句信息进行语法校验,获得语法校验结果;将所述语法校验结果返回给所述客户端。
此外,上述的存储器603中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收客户端发送的语法校验请求,所述语法校验请求包括源表字段信息和待校验SQL语句信息;根据所述源表字段信息生成临时表并加载注册函数;其中,所述注册函数是预先设置的;根据所述临时表和所述注册函数以及语法校验规则对所述待校验SQL语句信息进行语法校验,获得语法校验结果;将所述语法校验结果返回给所述客户端。
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收客户端发送的语法校验请求,所述语法校验请求包括源表字段信息和待校验SQL语句信息;根据所述源表字段信息生成临时表并加载注册函数;其中,所述注册函数是预先设置的;根据所述临时表和所述注册函数以及语法校验规则对所述待校验SQL语句信息进行语法校验,获得语法校验结果;将所述语法校验结果返回给所述客户端。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种结构化查询语言语法的离线校验方法,其特征在于,包括:
接收客户端发送的语法校验请求,所述语法校验请求包括源表字段信息和待校验SQL语句信息;其中,所述源表字段信息是所述待校验SQL语句信息中用到的源表名称和字段名称;
根据所述源表字段信息生成临时表并加载注册函数;其中,所述注册函数是预先设置的;所述临时表包括所述源表名称和字段名称,所述临时表用于对所述待校验SQL语句信息进行校验;
根据所述临时表和所述注册函数以及语法校验规则对所述待校验SQL语句信息进行语法校验,获得语法校验结果;
将所述语法校验结果返回给所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述根据所述临时表以及语法校验规则对所述待校验SQL语句信息进行语法校验包括:
根据所述临时表以及所述语法校验规则对所述待校验SQL语句信息引用的表和字段进行校验。
3.根据权利要求1所述的方法,其特征在于,所述根据所述注册函数以及语法校验规则对所述待校验SQL语句信息进行语法校验包括:
根据所述注册函数以及所述语法校验规则对所述待校验SQL语句信息引用的函数进行校验。
4.根据权利要求1所述的方法,其特征在于,还包括:
在接收所述客户端发送的语法校验请求之前,建立语法校验服务。
5.根据权利要求1至4任一项所述的方法,其特征在于,还包括:
若判断获知所述语法校验请求不包括所述源表字段信息或者待校验SQL语句信息,则向所述客户端返回错误提示信息。
6.一种结构化查询语言语法的离线校验装置,其特征在于,包括:
接收单元,用于接收客户端发送的语法校验请求,所述语法校验请求包括源表字段信息和待校验SQL语句信息;其中,所述源表字段信息是所述待校验SQL语句信息中用到的源表名称和字段名称;
生成单元,用于根据所述源表字段信息生成临时表并加载注册函数;其中,所述注册函数是预先设置的;所述临时表包括所述源表名称和字段名称,所述临时表用于对所述待校验SQL语句信息进行校验;
校验单元,用于根据所述临时表和所述注册函数以及语法校验规则对所述待校验SQL语句信息进行语法校验,获得语法校验结果;
返回单元,用于将所述语法校验结果返回给所述客户端。
7.根据权利要求6所述的装置,其特征在于,所述生成单元具体用于:
根据所述临时表以及所述语法校验规则对所述待校验SQL语句信息引用的表和字段进行校验。
8.根据权利要求6所述的装置,其特征在于,所述生成单元具体用于:
根据所述注册函数以及所述语法校验规则对所述待校验SQL语句信息引用的函数进行校验。
9.根据权利要求6所述的装置,其特征在于,还包括:
建立单元,用于在接收所述客户端发送的语法校验请求之前,建立语法校验服务。
10.根据权利要求6至9任一项所述的装置,其特征在于,还包括:
提示单元,用于在判断获知所述语法校验请求不包括源表字段信息或者待校验SQL语句信息之后,向所述客户端返回错误提示信息。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任一项所述方法的步骤。
CN202010130139.3A 2020-02-28 2020-02-28 一种结构化查询语言语法的离线校验方法及装置 Active CN111367936B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010130139.3A CN111367936B (zh) 2020-02-28 2020-02-28 一种结构化查询语言语法的离线校验方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010130139.3A CN111367936B (zh) 2020-02-28 2020-02-28 一种结构化查询语言语法的离线校验方法及装置

Publications (2)

Publication Number Publication Date
CN111367936A CN111367936A (zh) 2020-07-03
CN111367936B true CN111367936B (zh) 2023-08-22

Family

ID=71211155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010130139.3A Active CN111367936B (zh) 2020-02-28 2020-02-28 一种结构化查询语言语法的离线校验方法及装置

Country Status (1)

Country Link
CN (1) CN111367936B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905622A (zh) * 2021-01-26 2021-06-04 广州海量数据库技术有限公司 数据查询方法及装置
CN113467985A (zh) * 2021-07-28 2021-10-01 浙江大华技术股份有限公司 一种函数校验方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018045753A1 (zh) * 2016-09-12 2018-03-15 星环信息科技(上海)有限公司 用于分布式图计算的方法与设备
CN108388606A (zh) * 2018-02-06 2018-08-10 福建星瑞格软件有限公司 一种校验Sql语句中库表字段名的方法以及计算机设备
CN108733720A (zh) * 2017-04-24 2018-11-02 北京京东尚科信息技术有限公司 多数据库类型的sql查询的在线校验方法和校验系统
CN110399388A (zh) * 2019-07-29 2019-11-01 中国工商银行股份有限公司 数据查询方法、系统和设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120239612A1 (en) * 2011-01-25 2012-09-20 Muthian George User defined functions for data loading
CN110109940B (zh) * 2018-02-01 2024-03-29 微软技术许可有限责任公司 将函数式的图遍历语言转换成扩展的结构化查询语言

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018045753A1 (zh) * 2016-09-12 2018-03-15 星环信息科技(上海)有限公司 用于分布式图计算的方法与设备
CN108733720A (zh) * 2017-04-24 2018-11-02 北京京东尚科信息技术有限公司 多数据库类型的sql查询的在线校验方法和校验系统
CN108388606A (zh) * 2018-02-06 2018-08-10 福建星瑞格软件有限公司 一种校验Sql语句中库表字段名的方法以及计算机设备
CN110399388A (zh) * 2019-07-29 2019-11-01 中国工商银行股份有限公司 数据查询方法、系统和设备

Also Published As

Publication number Publication date
CN111367936A (zh) 2020-07-03

Similar Documents

Publication Publication Date Title
CN111367936B (zh) 一种结构化查询语言语法的离线校验方法及装置
WO2021057252A1 (zh) 一种业务处理流程配置方法、业务请求处理方法及装置
CN112905459B (zh) 服务接口测试方法、装置、电子设备及存储介质
CN112257733B (zh) 一种模型迭代方法、第二电子设备及存储介质
CN105389256A (zh) 一种单元测试方法及系统
CN111752846B (zh) 一种接口测试方法及装置
CN114048701A (zh) 网表eco方法、装置、设备及可读存储介质
CN108984567A (zh) 一种业务数据管理系统及方法
CN106648761B (zh) 在qt程序中自动更新的方法及装置
CN113886590A (zh) 数据汇总方法、装置、计算机设备及存储介质
CN112131100A (zh) 一种基于元数据的前后端校验方法及装置
CN113886199B (zh) 一种数据处理方法及装置
CN111367705B (zh) 一种sql报错的处理方法及装置
CN113342353B (zh) 一种mock数据生成方法和装置
CN114090146A (zh) 一种数据加载完成确定方法、装置及设备
CN111190575A (zh) 一种构造接口的方法、系统、介质及设备
CN112181825A (zh) 测试案例库构建方法、装置、电子设备及介质
CN111078571A (zh) 模拟响应的测试方法、终端设备及计算机可读存储介质
US20150127578A1 (en) Stateless simulation service
US9800692B2 (en) Expression based declarative data service execution chaining
CN112667491A (zh) 虚拟机的功能测试方法及装置
CN112307589A (zh) 单位工况创建方法、装置、电子设备及存储介质
CN114579202B (zh) 任务处理方法、装置、计算机设备及计算机可读存储介质
CN117556809B (zh) 参数校验结果生成方法及装置、校验平台及存储介质
CN111159198B (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
GR01 Patent grant
GR01 Patent grant