CN114116268A - Flink SQL语句的校验方法、装置、计算机设备和存储介质 - Google Patents
Flink SQL语句的校验方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114116268A CN114116268A CN202111288534.5A CN202111288534A CN114116268A CN 114116268 A CN114116268 A CN 114116268A CN 202111288534 A CN202111288534 A CN 202111288534A CN 114116268 A CN114116268 A CN 114116268A
- Authority
- CN
- China
- Prior art keywords
- verification
- information
- sql statement
- result
- flink sql
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- 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/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
Abstract
本申请涉及一种Flink SQL语句的校验方法、装置、计算机设备和存储介质。所述方法包括:接收终端提交的Flink SQL语句的校验请求;根据预先配置的校验信息对所述校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据;根据所述校验信息对所述元数据中的目标数进行校验,生成校验结果;将所述检验结果发送至所述终端展示。采用本方法能够根据校验信息在Flink SQL任务再提交运行之前对Flink SQL任务中的Flink SQL语句进行解析和校验,实现Flink SQL语句校验的灵活性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种Flink SQL语句的校验方法、装置、计算机设备和存储介质。
背景技术
随着公司业务急速发展,产生的数据成井喷式增长,实时平台部门需要为业务部门提供易用、稳定和高效的实时数据服务,基于大数据实时计算的业务作业越来越多的投入线上使用,在互联网领域发挥着重要作用,例如实时推荐、双十一实时大屏统计、实时反欺诈等。越来越来的业务开发者青睐Flink SQL任务。然而SQL任务在提交运行之前需要做一些合法性校验及相关元数据的落地,以备后续开发和程序管理。而如何快速的对FlinkSQL任务进行校验,成为我们工具平台迫在眉睫要思考和解决的问题。
目前Flink SQL校验主要通过提交Flink SQL语句信息到集群服务器上运行,看运行过程中的报错信息,报错信息从集群服务器反馈至客户端需要较长的时间,从而导致Flink SQL校验的效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种Flink SQL语句的校验方法、装置、计算机设备和存储介质。
一种Flink SQL语句的校验方法,方法包括:
接收终端提交的Flink SQL语句的校验请求;
根据预先配置的校验信息对校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据;
根据校验信息对元数据中的目标数进行校验,生成校验结果;
将检验结果发送至终端展示。
在其中一个实施例中,上述的对校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据,包括:
根据校验信息生成语法分析器以及词法分析器;
根据语法分析器以及词法分析器对待校验Flink SQL语句进行解析,生成抽象语法树;
根据抽象语法树,生成元数据。
在其中一个实施例中,上述的校验信息包括业务校验信息,上述的校验结果包括第一结果,上述的根据校验信息对元数据中的目标数进行校验,生成校验结果,包括:
从元数据中提取与业务校验信息匹配的元数据,得到目标数据;
根据业务校验信息对元数据中的目标数进行业务校验,生成第一结果。
在其中一个实施例中,上述的校验信息包括语法校验信息,上述的校验结果包括第二结果,上述的根据校验信息对元数据中的目标数进行校验,生成校验结果,包括:
根据语法校验信息对元数据中的目标数进行语法校验,生成第二结果。
在其中一个实施例中,上述的目标数据包括待校验Flink SQL语句中引用的数据源的ID以及数据源所属系统的系统标识,上述的根据业务校验信息对元数据中的目标数进行业务校验,生成第一结果,包括:
当根据数据源所属系统的系统标识查询到数据源所属系统中不存在数据源的ID时,和/或当查询到与校验请求关联的当前账户不具有数据源的引用权限时,生成目标数据校验失败的校验结果。
在其中一个实施例中,上述的目标数据包括待校验Flink SQL语句中引用的消息队列的队列标识以及消息队列所属系统的系统标识,上述的方法还包括:
当根据消息队列所属系统的系统标识查询到消息队列所属系统中不存在消息队列的队列标识时,和/或当当前账户不具有消息队列的引用权限时,生成业务信息校验失败的校验结果。
在其中一个实施例中,上述的校验结果包括校验失败的描述信息、上述的目标数据在待校验Flink SQL语句中的行信息以及列信息,上述的将检验结果发送至终端展示,包括:
将校验失败的描述信息、目标数据在待校验Flink SQL语句中的行信息以及列信息发送至终端展示。
一种Flink SQL语句的校验装置,其特征在于,装置包括:
接收模块,用于接收终端提交的Flink SQL语句的校验请求;
解析模块,用于对校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据;
校验模块,用于根据校验信息对元数据中的目标数进行校验,生成校验结果;
发送模块,用于将检验结果发送至终端展示。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
接收终端提交的Flink SQL语句的校验请求;
根据预先配置的校验信息对校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据;
根据校验信息对元数据中的目标数进行校验,生成校验结果;
将检验结果发送至终端展示。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收终端提交的Flink SQL语句的校验请求;
根据预先配置的校验信息对校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据;
根据校验信息对元数据中的目标数进行校验,生成校验结果;
将检验结果发送至终端展示。
上述Flink SQL语句的校验方法、装置、计算机设备和存储介质,接收终端提交的Flink SQL语句的校验请求;对校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据;根据校验信息对元数据中的目标数进行校验,生成校验结果;将检验结果发送至终端展示。本申请可以在Flink SQL任务再提交运行之前对Flink SQL任务中的Flink SQL语句进行解析和校验,具体根据预先配置的校验信息筛选出Flink SQL语句中的目标数据,对目标数据进行校验,解决了现有技术中直接将Flink SQL任务提交至集群服务器运行,在运行过程中由于Flink SQL语句的错误导致报错,由此带来的运行效率低下的问题。
附图说明
图1为一个实施例中Flink SQL语句的校验方法的应用环境图;
图2为一个实施例中Flink SQL语句的校验方法的流程示意图;
图3为一个实施例中对校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据步骤的流程示意图;
图4为一个实施例中Flink SQL语句的校验方法的应用环境图;
图5为一个实施例中Flink SQL语句的校验装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
请参考图1,图1为本申请一示例性实施例提供的一种Flink SQL语句的校验方法的应用环境示意图。如图1所示,该应用环境中包括服务器100以及终端101,服务器100与终端101之间可以通过网络102实现可通信的连接,以实现本申请的Flink SQL语句的校验方法。
服务器100用于接收终端提交的Flink SQL语句的校验请求;根据预先配置的校验信息对校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据;根据校验信息对元数据中的目标数进行校验,生成校验结果;将检验结果发送至终端101展示。其中,服务器100可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
终端101用于向服务器100发送Flink SQL语句的校验请求并接收服务器100反馈的校验结果,将校验结果展示于用户界面。终端101可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
网络102用于实现终端101与服务器100之间的网络连接,具体的,网络102可以包括多种类型的有线或无线网络。
在一个实施例中,如图2所示,提供了一种Flink SQL语句的校验方法方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S11、接收终端提交的Flink SQL语句的校验请求。
其中,上述的Flink SQL语句为Flink实时计算为简化计算模型,降低用户使用实时计算门槛而设计的一套符合标准SQL语义的开发语言。终端接收Flink SQL语句的校验指令向服务器提交Flink SQL语句的校验请求。上述的Flink SQL语句的校验请求中可以包括待校验Flink SQL语句。
S12、根据预先配置的校验信息对校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据。
本申请中,上述的校验信息可以包括语法校验信息以及业务校验信息。上述的语法校验信息可以为针对Flink SQL语句的语法进行校验的规则。上述的业务校验信息可以为基于业务需求而设定的业务规则。
上述的根据预先配置的校验信息对校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据,具体可以通过根据校验信息中的校验规则对上述待校验Flink SQL语句进行分词或者将一个句子的多个字符进行组装分成多个单词。
上述的元数据可以包括上述的待校验Flink SQL语句中所引用的数据库名称、数据表名称、字段名称、字段类型以及数据源信息等。
S13、根据校验信息对元数据中的目标数进行校验,生成校验结果。
本申请中,根据校验信息筛选出元数据中的目标数据,对该目标数据进行校验,生成校验结果。本申请中,可以通过根据校验信息中的语法校验信息对元数据进行语法校验以及根据校验信息中的业务校验信息对元数据进行校验。
上述的校验结果可以包括校验通过的结果或者校验失败的结果。进一步的,上述的校验结果还可以包括校验失败的Flink SQL语句的行信息以及列信息、校验失败的描述信息。其他,该校验失败的描述信息可以为具体校验失败的原因,如未符合JDBC类型的表不能有账号以及密码字段这条业务规则而导致校验失败。
S14、将检验结果发送至终端展示。
本申请中,服务器将校验结果发送至终端后,终端可以基于校验结果中的行信息以及列信息对校验失败的Flink SQL语句进行标注,如高亮显示,并且在界面上展示校验失败的描述信息。
本申请中通过设置校验信息,可以实现Flink SQL语句在提交运行之前实现校验,避免运行过程中的报错,提高运行效率。
在其中一个实施例中,如图3所示,上述的对校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据,可以包括:
S131、根据校验信息生成语法分析器以及词法分析器;
S132、根据语法分析器以及词法分析器对待校验Flink SQL语句进行解析,生成抽象语法树;
S133、根据抽象语法树,生成元数据。
本申请中,上述的校验信息存储于预设的校验文件中,该校验文件可以为g4文件。该g4文件是antlr(Another Tool for Language Recognition,语言识别的另一个工具)生成词法分析器和语法分析器的基础。本申请预先在校验文件中设定了Flink SQL相关的语法规则及业务规则。对它的合法规则进行按照不同的SQL类型进行约定。然后对校验文件并生成语法分析器和词法分析器。其中,词法分析器中包含词法解析规则,该词法分析规则,就是将一个句子多个字符进行组装分成多个单词的规则。语法分析器中包括语法解析规则,该语法分析规则就是对分词后的整个句子进行解析,可以对每个分词单元做出自定义的处理,从而来实现自己的语法解析功能。
本申请中,上述的根据语法分析器以及词法分析器对待校验Flink SQL语句进行解析,生成抽象语法树,可以包括:
根据词法分析器对上述的待校验Flink SQL语句进行分词,这个过程会将由字符组成的字符串分解成有意义的代码块,这些代码块统称为词法单元。例如,let a=1,这段程序通常会被分解成为下面这些词法单元:let、a、=、1、;空格是否被当成词法单元,取决于空格在这门语言中的意义;
根据语法分析器对上述词法分析得到的词法单元进行解析,这个过程是将词法单元流转换成一个由元素嵌套所组成的代表了程序语法结构的树,这个树被称为"抽象语法树"(abstract syntax code,AST)。
上述的根据抽象语法树,生成元数据,可以包括:
根据抽象语法树中的各节点,生成元数据。
在其中一个实施例中,上述的校验信息包括业务校验信息,上述的校验结果包括第一结果,上述的根据校验信息对元数据中的目标数进行校验,生成校验结果,可以包括:
从元数据中提取与业务校验信息匹配的元数据,得到目标数据;
根据业务校验信息对元数据中的目标数进行业务校验,生成第一结果。
其中,上述的业务校验信息可以为,如数据源ID是否存在、Kafka消费组是否存在以及当前账户是否有对应数据源的操作权限或者消费组的操作权限等。上述的业务校验信息还可以为,如如:JDBC类型的数据表不能有账号字段以及密码字段,但必须有数据源ID以及URL(Uniform Resource Locator,统一资源定位器)等。Kafka类型的表必须要包含消费组ID且消费组ID必须和对应的Topic(主题)匹配对应。
一种业务场景中,当业务校验信息被设定为JDBC类型的数据表不能有账号字段以及密码字段,但必须有数据源ID以及URL时,上述的从元数据中提取与业务校验信息匹配的元数据,得到目标数据,可以为:
从上述的元数据中提取JDBC类型的数据表、该JDBC类型的数据表对应的账号以及密码字段、数据源ID以及URL,得到目标数据。
上述的根据业务校验信息对元数据中的目标数进行业务校验,生成第一结果,可以包括:
判断JDBC类型的数据表是否有账号字段、密码字段、数据源ID以及URL时,当JDBC类型的数据表不存在账号字段以及密码字段,但存在有数据源ID以及URL时,确定当前校验通过。
一种业务场景中,当业务校验信息被设定为判断数据源ID是否存在时,上述的从元数据中提取与业务校验信息匹配的元数据,得到目标数据,可以为:
从上述的元数据中提取各数据源ID以及各数据源所属的系统标识,各数据源ID以及各数据源所属的系统标识即为上述的目标数据。
上述的根据业务校验信息对元数据中的目标数进行业务校验,生成第一结果,可以包括:
根据各数据源所属的系统标识查询各系统上是否存在对应的数据源ID,若存在,则当前业务校验通过,否则,生成当前业务校验失败的第一结果。本申请中提供了FlinkSQL语句的业务校验功能,实现了除语法校验以外的业务校验,使得Flink SQL语句的校验更加灵活以及科学。
在其中一个实施例中,上述的校验信息包括语法校验信息,上述的校验结果包括第二结果,上述的根据校验信息对元数据中的目标数进行校验,生成校验结果,可以包括:
根据语法校验信息对元数据中的目标数进行语法校验,生成第二结果。
其中,语法校验信息可以按照不同的SQL类型进行约定。例如,DDL(DataDefinition Language,数据库模式定义语言)的语法校验信息可以分为create table/view/function。即,当为DDL类型时,其语法格式为create table,若上述的待校验FlinkSQL语句不是采用create table格式,则当前语法校验失败,生成当前语法校验失败的第二校验结果。
本申请中,提供了Flink SQL语句的语法校验方案,实现了Flink SQL语句的通用语法校验功能。
在其中一个实施例中,上述的目标数据包括待校验Flink SQL语句中引用的数据源的ID以及数据源所属系统的系统标识,上述的根据业务校验信息对元数据中的目标数进行业务校验,生成第一结果,可以包括:
当根据数据源所属系统的系统标识查询到数据源所属系统中不存在数据源的ID时,和/或当查询到与校验请求关联的当前账户不具有数据源的引用权限时,生成目标数据校验失败的校验结果。
本申请中,上述的业务校验信息可以为校验待校验Flink SQL语句中引用的数据源的ID是否存在以及当前账户是否具有该数据源的操作权限。相应的,服务器根据该业务校验信息提取出目标数据为数据源的ID以及数据源所属的系统的系统标识。进一步的,服务器根据上述的业务校验信息判断数据源所属系统上是否存在该数据源的ID,并且判断当前账户在数据源所属系统中是否具有该数据源的操作权限。当根据数据源所属系统的系统标识查询到数据源所属系统中存在数据源的ID,并且查询到与校验请求关联的当前账户具有数据源的引用权限时,校验通过,否则校验失败,生成校验失败的校验结果。
本申请通过业务校验信息可以实现Flink SQL语句的业务方面的校验,使得FlinkSQL语句的更加精细以及科学。
在其中一个实施例中,上述的目标数据包括待校验Flink SQL语句中引用的消息队列的队列标识以及消息队列所属系统的系统标识,上述的方法还可以包括:
当根据消息队列所属系统的系统标识查询到消息队列所属系统中不存在消息队列的队列标识时,和/或当当前账户不具有消息队列的引用权限时,生成业务信息校验失败的校验结果。
本申请中,上述的业务校验信息可以为校验待校验Flink SQL语句中引用的消息队列是否存在以及当前账户是否具有消息队列的引用权限。相应的,服务器根据该业务校验信息提取出目标数据为消息队列的队列标识以及消息队列所属的系统的系统标识。进一步的,服务器根据上述的业务校验信息判断消息队列所属系统上是否存在消息队列的队列标识,并且判断当前账户在消息队列所属系统中是否具有该消息队列的操作权限。当根据消息队列所属系统的系统标识查询到消息队列所属系统中存在消息队列的队列标识,并且查询到与校验请求关联的当前账户具有消息队列的引用权限时,校验通过,否则校验失败,生成校验失败的校验结果。其中,上述的消息队列的队列标识可以为消息队列的(Topic)主题名称。
在其中一个实施例中,上述的业务校验信息还可以为校验待校验Flink SQL语句中引用的消息队列的消费组的ID是否存在,以及当前账户是否具有该消息队列的消费组的引用权限。相应的,服务器提取待校验Flink SQL语句中引用的消息队列的消费组的ID以及消息队列的消费组所属系统的系统标识。进一步的,服务器根据上述的业务校验信息判断消息队列的消费组所属系统上是否存在消息队列的消费组的ID,并且判断当前账户在消息队列的消费组所属系统中是否具有该消息队列的消费组的操作权限。当查询到消息队列的消费组所属系统中存在消息队列的消费组的ID,并且查询到当前账户具有消息队列的消费组的引用权限时,校验通过,否则校验失败,生成校验失败的校验结果。其中,上述的消息队列可以为Kafka消息队列。
本申请中可以通过设置消息队列相关的业务校验信息,实现了Flink SQL语句中有关消息队列的引用信息的校验,使得Flink SQL语句的校验信息更加灵活,使用范围更加广。
在其中一个实施例中,上述的校验结果包括校验失败的描述信息、目标数据在待校验Flink SQL语句中的行信息以及列信息,将检验结果发送至终端展示,可以包括:
将校验失败的描述信息、目标数据在待校验Flink SQL语句中的行信息以及列信息发送至终端展示。
本申请中,服务器将校验结果发送至终端后,终端可以基于校验结果中的行信息以及列信息对校验失败的Flink SQL语句进行标注,如高亮显示,并且在界面上展示校验失败的描述信息。本申请通过标注显示校验结果,使得校验结果更加直观地展示于终端界面。
在其中一种应用场景中,上述的校验信息还可以被设置为Kafka消息队列的topic校验和hint方式的消费组ID的校验、JDBC的数据源及表校验、Hbase的集群和表名校验以及ElasticSearch(基于Lucene的搜索服务器)的集群和索引校验等等,并把校验结果以接口的形式反馈至前端展示,以便提示用户校验失败的Flink SQL语句的行数、列数和详细的校验失败的描述信息。这些校验结果很大程度上避免了SQL非法对生产环境产生的影响。
在其中一个实施例中,上述的方法还可以包括:
接收校验信息的修改请求;
根据修改请求对应修改上述的校验信息。
本申请中,考虑到业务的灵活性以及语法的扩展性,可以从修改或新增任何需要的校验文件,以适应业务的需求。
请参考图4,图4为本申请一示例性实施例提供的一种Flink SQL语句的校验方法的应用环境示意图。如图4所示,该应用环境中包括开发人员终端41、服务器42、服务接口43以及应用44。其中,
开发人员终端41将开发人员编写的校验文件提交至服务器,以便服务器对校验文件进行注册、运行。服务器42提供服务接口43接收应用44提交的Flink SQL语句的校验请求,根据预先配置的校验信息对校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据;根据校验信息对元数据中的目标数进行校验,生成校验结果;将检验结果发送至应用44。
在一个实施例中,如图5所示,提供了一种Flink SQL语句的校验装置,包括:接收模块11、解析模块12、校验模块13以及发送模块14,其中:
接收模块11,用于接收终端提交的Flink SQL语句的校验请求;
解析模块12,用于对校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据;
校验模块13,用于根据校验信息对元数据中的目标数进行校验,生成校验结果;
发送模块14,用于将检验结果发送至终端展示。
在其中一个实施例中,上述的解析模块12可以根据校验信息生成语法分析器以及词法分析器,根据语法分析器以及词法分析器对待校验Flink SQL语句进行解析,生成抽象语法树,根据抽象语法树,生成元数据。
在其中一个实施例中,上述的校验信息包括业务校验信息,上述的校验结果包括第一结果,上述的校验模块13可以从元数据中提取与业务校验信息匹配的元数据,得到目标数据,根据业务校验信息对元数据中的目标数进行业务校验,生成第一结果。
在其中一个实施例中,上述的校验信息包括语法校验信息,上述的校验结果包括第二结果,上述的校验模块13可以根据语法校验信息对元数据中的目标数进行语法校验,生成第二结果。
在其中一个实施例中,上述的目标数据包括待校验Flink SQL语句中引用的数据源的ID以及数据源所属系统的系统标识,上述的校验模块13可以当根据数据源所属系统的系统标识查询到数据源所属系统中不存在数据源的ID时,和/或当查询到与校验请求关联的当前账户不具有数据源的引用权限时,生成目标数据校验失败的校验结果。
在其中一个实施例中,上述的目标数据包括待校验Flink SQL语句中引用的消息队列的队列标识以及消息队列所属系统的系统标识,上述的校验模块13可以当根据消息队列所属系统的系统标识查询到消息队列所属系统中不存在消息队列的队列标识时,和/或当当前账户不具有消息队列的引用权限时,生成业务信息校验失败的校验结果。
在其中一个实施例中,上述的校验结果包括校验失败的描述信息、目标数据在待校验Flink SQL语句中的行信息以及列信息,上述的发送模块14可以将校验失败的描述信息、目标数据在待校验Flink SQL语句中的行信息以及列信息发送至终端展示。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储智能家居设备的运行数据等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现编译虚拟机的资源分配方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:接收终端提交的Flink SQL语句的校验请求;根据预先配置的校验信息对校验请求中的待校验FlinkSQL语句进行解析,得到待校验Flink SQL语句中的元数据;根据校验信息对元数据中的目标数进行校验,生成校验结果;将检验结果发送至终端展示。
在一个实施例中,处理器执行计算机程序实现上述的对校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据步骤时,具体实现以下步骤:
根据校验信息生成语法分析器以及词法分析器;
根据语法分析器以及词法分析器对待校验Flink SQL语句进行解析,生成抽象语法树;
根据抽象语法树,生成元数据。
在一个实施例中,上述的校验信息包括业务校验信息,上述的校验结果包括第一结果,处理器执行计算机程序实现上述的根据校验信息对元数据中的目标数进行校验,生成校验结果,具体实现以下步骤:
从元数据中提取与业务校验信息匹配的元数据,得到目标数据;
根据业务校验信息对元数据中的目标数进行业务校验,生成第一结果。
在一个实施例中,上述的校验信息包括语法校验信息,上述的校验结果包括第二结果,处理器执行计算机程序实现上述的根据校验信息对元数据中的目标数进行校验,生成校验结果步骤时,具体实现以下步骤:
根据语法校验信息对元数据中的目标数进行语法校验,生成第二结果。
在一个实施例中,上述的目标数据包括待校验Flink SQL语句中引用的数据源的ID以及数据源所属系统的系统标识,处理器执行计算机程序实现上述的根据业务校验信息对元数据中的目标数进行业务校验,生成第一结果步骤时,具体实现以下步骤:
当根据数据源所属系统的系统标识查询到数据源所属系统中不存在数据源的ID时,和/或当查询到与校验请求关联的当前账户不具有数据源的引用权限时,生成目标数据校验失败的校验结果。
在一个实施例中,上述的目标数据包括待校验Flink SQL语句中引用的消息队列的队列标识以及消息队列所属系统的系统标识,处理器执行计算机程序时具体还实现以下步骤:
当根据消息队列所属系统的系统标识查询到消息队列所属系统中不存在消息队列的队列标识时,和/或当当前账户不具有消息队列的引用权限时,生成业务信息校验失败的校验结果。
在一个实施例中,上述的校验结果包括校验失败的描述信息、目标数据在待校验Flink SQL语句中的行信息以及列信息,处理器执行计算机程序实现上述的将检验结果发送至终端展示步骤时,具体实现以下步骤:
将校验失败的描述信息、目标数据在待校验Flink SQL语句中的行信息以及列信息发送至终端展示。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收终端提交的Flink SQL语句的校验请求;根据预先配置的校验信息对校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据;根据校验信息对元数据中的目标数进行校验,生成校验结果;将检验结果发送至终端展示。
在一个实施例中,计算机程序被处理器执行实现上述的对校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据步骤时,具体实现以下步骤:
根据校验信息生成语法分析器以及词法分析器;
根据语法分析器以及词法分析器对待校验Flink SQL语句进行解析,生成抽象语法树;
根据抽象语法树,生成元数据。
在一个实施例中,上述的校验信息包括业务校验信息,上述的校验结果包括第一结果,计算机程序被处理器执行实现上述的根据校验信息对元数据中的目标数进行校验,生成校验结果,具体实现以下步骤:
从元数据中提取与业务校验信息匹配的元数据,得到目标数据;
根据业务校验信息对元数据中的目标数进行业务校验,生成第一结果。
在一个实施例中,上述的校验信息包括语法校验信息,上述的校验结果包括第二结果,计算机程序被处理器执行实现上述的根据校验信息对元数据中的目标数进行校验,生成校验结果步骤时,具体实现以下步骤:
根据语法校验信息对元数据中的目标数进行语法校验,生成第二结果。
在一个实施例中,上述的目标数据包括待校验Flink SQL语句中引用的数据源的ID以及数据源所属系统的系统标识,计算机程序被处理器执行实现上述的根据业务校验信息对元数据中的目标数进行业务校验,生成第一结果步骤时,具体实现以下步骤:
当根据数据源所属系统的系统标识查询到数据源所属系统中不存在数据源的ID时,和/或当查询到与校验请求关联的当前账户不具有数据源的引用权限时,生成目标数据校验失败的校验结果。
在一个实施例中,上述的目标数据包括待校验Flink SQL语句中引用的消息队列的队列标识以及消息队列所属系统的系统标识,计算机程序被处理器执行时具体还实现以下步骤:
当根据消息队列所属系统的系统标识查询到消息队列所属系统中不存在消息队列的队列标识时,和/或当当前账户不具有消息队列的引用权限时,生成业务信息校验失败的校验结果。
在一个实施例中,上述的校验结果包括校验失败的描述信息、目标数据在待校验Flink SQL语句中的行信息以及列信息,计算机程序被处理器执行实现上述的将检验结果发送至终端展示步骤时,具体实现以下步骤:
将校验失败的描述信息、目标数据在待校验Flink SQL语句中的行信息以及列信息发送至终端展示。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种Flink SQL语句的校验方法,所述方法包括:
接收终端提交的Flink SQL语句的校验请求;
根据预先配置的校验信息对所述校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据;
根据所述校验信息对所述元数据中的目标数进行校验,生成校验结果;
将所述检验结果发送至所述终端展示。
2.根据权利要求1所述的方法,其特征在于,所述对所述校验请求中的待校验FlinkSQL语句进行解析,得到待校验Flink SQL语句中的元数据,包括:
根据所述校验信息生成语法分析器以及词法分析器;
根据所述语法分析器以及所述词法分析器对所述待校验Flink SQL语句进行解析,生成抽象语法树;
根据所述抽象语法树,生成所述元数据。
3.根据权利要求1所述的方法,其特征在于,所述校验信息包括业务校验信息,所述校验结果包括第一结果,所述根据所述校验信息对所述元数据中的目标数进行校验,生成校验结果,包括:
从所述元数据中提取与所述业务校验信息匹配的元数据,得到所述目标数据;
根据所述业务校验信息对所述元数据中的目标数进行业务校验,生成所述第一结果。
4.根据权利要求1所述的方法,其特征在于,所述校验信息包括语法校验信息,所述校验结果包括第二结果,所述根据所述校验信息对所述元数据中的目标数进行校验,生成校验结果,包括:
根据所述语法校验信息对所述元数据中的目标数进行语法校验,生成所述第二结果。
5.根据权利要求3所述的方法,其特征在于,所述目标数据包括所述待校验Flink SQL语句中引用的数据源的ID以及所述数据源所属系统的系统标识,所述根据所述业务校验信息对所述元数据中的目标数进行业务校验,生成所述第一结果,包括:
当根据所述数据源所属系统的系统标识查询到所述数据源所属系统中不存在所述数据源的ID时,和/或当查询到与所述校验请求关联的当前账户不具有所述数据源的引用权限时,生成所述目标数据校验失败的校验结果。
6.根据权利要求5所述的方法,其特征在于,所述目标数据包括所述待校验Flink SQL语句中引用的消息队列的队列标识以及所述消息队列所属系统的系统标识,所述方法还包括:
当根据所述消息队列所属系统的系统标识查询到所述消息队列所属系统中不存在所述消息队列的队列标识时,和/或当所述当前账户不具有所述消息队列的引用权限时,生成所述业务信息校验失败的校验结果。
7.根据权利要求1所述的方法,其特征在于,所述校验结果包括校验失败的描述信息、所述目标数据在所述待校验Flink SQL语句中的行信息以及列信息,所述将所述检验结果发送至所述终端展示,包括:
将所述校验失败的描述信息、所述目标数据在所述待校验Flink SQL语句中的行信息以及列信息发送至所述终端展示。
8.一种Flink SQL语句的校验装置,其特征在于,所述装置包括:
接收模块,用于接收终端提交的Flink SQL语句的校验请求;
解析模块,用于对所述校验请求中的待校验Flink SQL语句进行解析,得到待校验Flink SQL语句中的元数据;
校验模块,用于根据所述校验信息对所述元数据中的目标数进行校验,生成校验结果;
发送模块,用于将所述检验结果发送至所述终端展示。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111288534.5A CN114116268A (zh) | 2021-11-02 | 2021-11-02 | Flink SQL语句的校验方法、装置、计算机设备和存储介质 |
CA3180833A CA3180833A1 (en) | 2021-11-02 | 2022-11-02 | Flink sql statement verification method and device, computer equipment and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111288534.5A CN114116268A (zh) | 2021-11-02 | 2021-11-02 | Flink SQL语句的校验方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114116268A true CN114116268A (zh) | 2022-03-01 |
Family
ID=80380153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111288534.5A Pending CN114116268A (zh) | 2021-11-02 | 2021-11-02 | Flink SQL语句的校验方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114116268A (zh) |
CA (1) | CA3180833A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI819773B (zh) * | 2022-08-03 | 2023-10-21 | 大陸商鼎捷軟件股份有限公司 | 管理介面的映射表的系統及方法 |
-
2021
- 2021-11-02 CN CN202111288534.5A patent/CN114116268A/zh active Pending
-
2022
- 2022-11-02 CA CA3180833A patent/CA3180833A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI819773B (zh) * | 2022-08-03 | 2023-10-21 | 大陸商鼎捷軟件股份有限公司 | 管理介面的映射表的系統及方法 |
Also Published As
Publication number | Publication date |
---|---|
CA3180833A1 (en) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10769228B2 (en) | Systems and methods for web analytics testing and web development | |
CN111176996A (zh) | 测试用例生成方法、装置、计算机设备及存储介质 | |
CN112287009A (zh) | 接口调用和接口数据入库方法、装置、设备及存储介质 | |
CN109062925B (zh) | 自动生成insert语句的方法、装置、计算机设备及存储介质 | |
CN104657402A (zh) | 用于语言标签管理的方法和系统 | |
CN113076104A (zh) | 页面生成方法、装置、设备及存储介质 | |
CN112015752A (zh) | 一种数据动态查询的方法、装置、电子设备和存储介质 | |
CN112306549A (zh) | 接口文档配置方法、装置、设备及存储介质 | |
CN114168190A (zh) | 接口文档生成方法、装置、计算机设备和存储介质 | |
CN113901083A (zh) | 基于多解析器的异构数据源操作资源解析定位方法和设备 | |
CN115599359A (zh) | 一种代码生成方法、装置、设备及介质 | |
CN111475494A (zh) | 一种海量数据处理方法、系统、终端及存储介质 | |
CN110765152A (zh) | Sql提取方法、装置、计算机设备和存储介质 | |
WO2020206838A1 (zh) | 代码片段翻译方法、装置、计算机设备和存储介质 | |
CN114116268A (zh) | Flink SQL语句的校验方法、装置、计算机设备和存储介质 | |
CN113296752A (zh) | 生成api文档的方法、系统、设备及存储介质 | |
CN111752838A (zh) | 问题排查方法、装置、服务器及存储介质 | |
CN115600038A (zh) | 页面渲染方法、装置、设备及介质 | |
CN115033489A (zh) | 代码资源检测方法、装置、电子设备及存储介质 | |
CN111651362A (zh) | 测试案例生成方法、装置、存储介质和计算机设备 | |
CN117171800B (zh) | 一种基于零信任防护体系的敏感数据识别方法及装置 | |
CN117171816B (zh) | 基于工业标识的数据验证方法及相关设备 | |
CN114185797A (zh) | 前端代码检查方法、装置、电子设备及可读存储介质 | |
CN114780534A (zh) | 一种信息查询方法、装置、设备及计算机可读存储介质 | |
CN115408453A (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 |