CN113901075A - 生成sql语句的方法、装置、计算机设备及存储介质 - Google Patents
生成sql语句的方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113901075A CN113901075A CN202111186749.6A CN202111186749A CN113901075A CN 113901075 A CN113901075 A CN 113901075A CN 202111186749 A CN202111186749 A CN 202111186749A CN 113901075 A CN113901075 A CN 113901075A
- Authority
- CN
- China
- Prior art keywords
- rule
- data
- template
- parameter
- table name
- 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/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
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
本发明公开了生成SQL语句的方法、装置、计算机设备及存储介质,属于数据库技术领域。生成SQL语句的方法利用了规则模板的复用性,通过对获取的规则信息进行解析,以得到表名和规则数据,根据表名和规则数据在参数映射表中映射的参数,获取与该参数关联的所有模板标识,依据获取的模板标识确定相应的规则模板,从而将获取的参数将表名和规则数据输入规则模板自动SQL语句,无需人工手写SQL语句,降低了人员的工作量,提高了生成SQL语句的效率。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及生成SQL语句的方法、装置、计算机设备及存储介质。
背景技术
在数据中台的质量控制环节,一般采用基础规则和业务规则两种规则检测数据质量。基础规则(如字段的非空判断、唯一性校验、字典值校验等等),的校验相对比较简单,且校验的逻辑比较容易抽象出来形成基础规则。现在市面上大多数据中台数据质量工具也都是将这些基础校验规则抽象成方法供用户使用。业务规则校验主要侧重于校验数据的业务属性,通常这类业务规则校验需求来源于业务系统,是为了帮助业务系统更深入的校验数据是否满足业务系统需求,因此业务规则检测通常会比较复杂。目前业务规则校验主要采用手写SQL语句来实现业务逻辑校验,耗时费力,无法复用且不便于统一管理。
发明内容
针对现有业务规则的SQL语句需要手写,效率低的问题,现提供一种旨在可提升获取业务规则的SQL语句速度的生成SQL语句的方法、装置、计算机设备及存储介质。
为实现上述目的,本发明提供一种生成SQL语句的方法,包括:
依据预设规则提取数据库中的规则信息,所述规则信息包括表名和规则数据,解析所述规则信息,获取所述表名和所述规则数据;获取所述表名和所述规则数据在参数映射表中映射的参数及模板标识,所述参数映射表中每一表名对应一参数、每一规则数据对应一参数,每一所述参数至少关联一个所述模板标识,每一所述模板标识关联一规则模板;
根据获取的所述模板标识确定所述规则模板;
基于获取的所述参数将所述表名和规则数据输入所述规则模板,以生成SQL语句。
可选的,所述获取所述表名和所述规则数据在参数映射表中映射的参数及模板标识,之前还包括:
将获取的所述表名和所述规则数据与存储模块中的数据进行匹配,判断所述存储模块中是否存储所述表名和所述规则数据,所述存储模块用于存储于与生成的所述SQL语句关联的所述表名和所述规则数据;
若所述存储模块中存储所述表名和所述规则数据,则依据预设规则提取数据库中的规则信息,所述规则信息包括表名和规则数据,解析所述规则信息,获取所述表名和所述规则数据;
若所述存储模块中未存储所述表名和所述规则数据,则将获取的所述表名和所述规则数据存储于所述存储模块中,获取所述表名和所述规则数据在参数映射表中映射的参数及模板标识。
可选的,所述获取所述表名和所述规则数据在参数映射表中映射的参数及模板标识,包括:
分别将所述表名和所述规则数据与所述参数映射表中的参数进行匹配,获取与所述表名匹配的表名参数,以及与所述规则数据匹配的规则参数;
获取与所述表名参数关联的所有模板标识,以及所述规则数据关联的所述模板标识。
可选的,所述规则数据包括字段数据,或字段数据和字典数据;
所述根据获取的所述模板标识确定所述规则模板,包括:
识别所述规则数据是否包括字典数据;
若规则数据不包括字典数据,则与所述字段数据匹配的规则参数为字段参数;
将与所述表名参数关联的所有模板标识的集合作为第一集合,将与所述字段参数关联的所有所述模板标识的集合作为第二集合;
将所述第一集合和所述第二集合中共有的所述模板标识作为目标标识,获取所述目标标识对应的规则模板。
可选的,还包括:
若规则数据包括字典数据,则判定所述规则数据中同时包括字段数据和所述字典数据,与所述字段数据匹配的规则参数为字段参数,与所述字典数据匹配的规则参数为字典参数;
将与所述表名参数关联的所有模板标识的集合作为第一集合,将与所述字段参数关联的所有所述模板标识的集合作为第二集合,将与所述字典参数关联的所有模板标识的集合作为第三集合;
将所述第一集合、所述第二集合和所述第三集合中共有的所述模板标识作为目标标识,获取所述目标标识对应的规则模板。
可选的,所述规则模板包括:操作项、数据源和逻辑项,所述数据源包括表名参数;
所述规则模板符合以下至少一种条件:
所述操作项包括规则参数,所述规则参数为字段参数;或
所述操作项包括规则参数,所述规则参数包括字段参数和字典参数。
可选的,所述规则模板中的表名参数、规则参数均采用携带预设标识符;
所述基于获取的所述参数将所述表名和规则数据输入所述规则模板,以生成SQL语句,包括:
识别所述规则模板中的所述预设标识符,将所述表名替换所述规则模板中的所述表名参数,将所述规则数据替换所述规则模板中的所述规则参数,生成所述SQL语句。
为实现上述目的,本发明还提供一种生成SQL语句的装置,包括:
解析单元,用于依据预设规则提取数据库中的规则信息,所述规则信息包括表名和规则数据,解析所述规则信息,获取所述表名和所述规则数据;
处理单元,用于获取所述表名和所述规则数据在参数映射表中映射的参数及模板标识,所述参数映射表中每一表名对应一参数、每一规则数据对应一参数,每一所述参数至少关联一个所述模板标识,每一所述模板标识关联一规则模板;
确定单元,用于根据获取的所述模板标识确定所述规则模板;
生成单元,用于基于获取的所述参数将所述表名和规则数据输入所述规则模板,以生成SQL语句。
为实现上述目的,本发明还提供一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的生成SQL语句的方法、装置、计算机设备及存储介质,利用了规则模板的复用性,通过对获取的规则信息进行解析,以得到表名和规则数据,根据表名和规则数据在参数映射表中映射的参数,获取与该参数关联的所有模板标识,依据获取的模板标识确定相应的规则模板,从而将获取的参数将表名和规则数据输入规则模板自动SQL语句,无需人工手写SQL语句,降低了人员的工作量,提高了生成SQL语句的效率。
附图说明
图1为本发明所述的生成SQL语句的方法的一种实施例的方法流程图;
图2为本发明所述的根据获取的模板标识确定规则模板的一种实施例的方法流程;
图3为本发明所述的生成SQL语句的装置的一种实施例的模块图;
图4为本发明所述的计算机设备一实施例的硬件架构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明提供的生成SQL语句的方法、装置、计算机设备及存储介质,可应用于智能医疗、医保、金融、银行等领域。生成SQL语句的方法利用了规则模板的复用性,通过对获取的规则信息进行解析,以得到表名和规则数据,根据表名和规则数据在参数映射表中映射的参数,获取与该参数关联的所有模板标识,依据获取的模板标识确定相应的规则模板,从而将获取的参数将表名和规则数据输入规则模板自动SQL语句,无需人工手写SQL语句,降低了人员的工作量,提高了生成SQL语句的效率。
实施例一
请参阅图1,本实施例的一种生成SQL语句的方法,包括以下步骤:
S1.依据预设规则提取数据库中的规则信息,所述规则信息包括表名和规则数据,解析所述规则信息,获取所述表名和所述规则数据。
在一实施例中,所述数据库包括至少一条规则信息,所述规则信息是根据业务需求配置的表征业务规则的文字信息,表名是指上述业务规则中涉及到的表的名称,规则数据为表征上述业务规则的具体内容的文字信息。以对存储于医保数据库中的职工缴费明细表为例:规则信息为“职工缴费明细表人员类别只能是在职、退休、离休、老红军”。其中,表名为“职工缴费明细表”;规则数据是“人员类别只能是在职、退休、离休、老红军”。
在一实施例中,所述预设规则是一种提取规则,该规则可以是根据规则信息中首字字母的顺序排序(如:26个字母的排序顺序)、或者其他预先设定或随机排列的顺序排序逐条提取数据库中的规则信息。
在一实施例中,所述规则数据包括字段数据、字典数据中的一种或多种。其中,所述字段数据为表征文字信息中一级分类信息的文字信息,字典数据属于一级(父级)分类信息下的二级(子级)分类信息的文字信息。例如,规则信息是“人员类别只能是在职、退休、离休、老红军”,其中,“人员类别”属于一级分类信息,“人员类别”为字段数据;“在职、退休、离休、老红军”属于二级分类信息,在职、退休、离休、老红军均为字典数据。
在本实施例中,规则信息还可存储于服务器中,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在本实施例中,字段数据可以表示一个字段,字段数据也可以表示多个字段,如由几个字段组成的字段范围。
在一种可能的实现方式中,表名对应的数据可以是医疗数据,如个人健康档案表中的数据、处方表单中的数据、检查报告单中的数据等。
具体地,采用步骤S1对所述规则信息进行语义识别,以得到所述表名和所述规则数据。
在本实施例中,可采用自然语言处理(Natural Language Processing,NLP)技术进行语义识别,通过字词级别的分析识别规则信息中的分词、命名实体、词性的标注、同义词分词、字词向量等,从而得到表名和规则数据。
在优选的实施例中,在执行步骤S1之前,可根据规则信息校验的ods层对应的表名,配置相应的参数映射表。
S2.获取所述表名和所述规则数据在参数映射表中映射的参数及模板标识。
其中,所述参数映射表中每一表名对应一参数、每一规则数据对应一参数,每一所述参数至少关联一个所述模板标识,每一所述模板标识关联一规则模板。
在本实施例中,参数映射表包括:实施规则信息、参数、参数类别以及模板标识。所谓的实施规则信息是指规则信息中的表名、规则数据(字段数据、字典数据)等数据。所述参数为应用规则信息被校验的ods(全称Operational Data Store,用来存储多个数据源业务数据的系统)层对应的表名(或数据源)数据。所谓的参数类别包括表名参数、规则参数(字段参数、字典参数)等。
在本实施例中,可根据业务系统提出的业务需求预先配置大量的规则模板,从而形成由大量规则模板构成的规则库,以便于统一数据标准。
需要说明的是:所述规则模板包括:操作项、数据源和逻辑项,所述数据源包括表名参数。所述规则模板符合以下至少一种条件:
所述操作项包括规则参数,所述规则参数为字段参数;或
所述操作项包括规则参数,所述规则参数包括字段参数和字典参数。
在实际应用中,考虑到业务规则的校验内容各不相同,业务规则可能涉及到字典数据,也可能不涉及字典数据,因此,规则模板在包括表名参数、字段参数的基础上,还可包括字典参数。
在本实施例中,规则模板中的字段参数与规则信息中的字段数据对应;规则模板中的字典参数与规则信息中的字典数据对应;规则模板中的表名参数与规则信息中的表名对应。
以“职工缴费明细表”为表名,“人员类别”为字段数据、“在职、退休、离休、老红军”为字典数据为例,参数映射表1如下:
表1
实际规则信息 | 参数 | 参数类别 | 模板标识 |
职工缴费明细 | ODS_STAF_PSN_CLCT_DETAIL_D | 表名参数 | ID1,ID2,ID3 |
人员类别 | PSN_TYPE | 字段参数 | ID1,ID4,ID9 |
在职 | 01 | 字典参数 | ID1,ID2,ID6 |
退休 | 02 | 字典参数 | ID1,ID2,ID6 |
离休 | 03 | 字典参数 | ID1,ID2,ID6 |
老红军 | 04 | 字典参数 | ID1,ID2,ID6 |
由上表可知:与“职工缴费明细表”对应的表名参数为“ODS_STAF_PSN_CLCT_DETAIL_D”,与“人员类别”对应的字段参数为“PSN_TYPE”,与“在职”对应的字典参数值为01,与“退休”对应的字典参数值为02,与“离休”对应的字典参数值为03,与“老红军”对应的字典参数值为04。
进一步地,步骤S2可包括以下步骤:
S21.分别将所述表名和所述规则数据与所述参数映射表中的参数进行匹配,获取与所述表名匹配的表名参数,以及与所述规则数据匹配的规则参数。
S22.获取与所述表名参数关联的所有模板标识,以及所述规则数据关联的所述模板标识。
在本实施例中,参数映射表为根据校验的数据库预先配置的表单,依据参数类型(表名参数类、字段参数类、字典参数类)分别配置不同的表单,也可以将所有参数类型汇聚于同一表单中。
在优选的实施例中,所述数据库可包括至少两条规则信息,在执行步骤S2之前还包括:
A.将获取的所述表名和所述规则数据与存储模块中的数据进行匹配,判断所述存储模块中是否存储所述表名和所述规则数据,若是,则表示在执行步骤S1之前已经对与表名和规则数据关联的规则信息解析过,返回步骤S1,依据预设规则提取数据库中下一条规则信息进行解析;若否,则表示所述存储模块中未存储所述表名和所述规则数据,将获取的所述表名和所述规则数据存储于所述存储模块中,执行步骤S2。
其中,所述存储模块用于存储与生成的所述SQL语句关联的所述表名和所述规则数据。
S3.根据获取的所述模板标识确定所述规则模板。
进一步地,参阅图2所示步骤S3包括以下步骤:
S31.识别所述规则数据是否包括字典数据,若是,则判定所述规则数据中同时包括字段数据和所述字典数据,与所述字段数据匹配的规则参数为字段参数,与所述字典数据匹配的规则参数为字典参数,执行步骤S34;若否,则与所述字段数据匹配的规则参数为字段参数,执行步骤S32。
S32.将与所述表名参数关联的所有模板标识的集合作为第一集合,将与所述字段参数关联的所有所述模板标识的集合作为第二集合;
S33.将所述第一集合和所述第二集合中共有的所述模板标识作为目标标识,获取所述目标标识对应的规则模板。
S34.将与所述表名参数关联的所有模板标识的集合作为第一集合,将与所述字段参数关联的所有所述模板标识的集合作为第二集合,将与所述字典参数关联的所有模板标识的集合作为第三集合;
S35.将所述第一集合、所述第二集合和所述第三集合中共有的所述模板标识作为目标标识,获取所述目标标识对应的规则模板。
在本实施例中,若获得多个目标标识,则可确定多个规则模板,每一个目标标识对应一个规则模板。
作为举例而非限定,当同时获取多条规则信息时,确定规则模板的过程:a1根据预设顺序(如:默认排序顺序,或获取的顺序等)提取一条规则信息中的表名和规则数据,将表名和规则数据作为一条提取信息存储于预设的存储模块中;a2将提取规则信息的表名和规则数据与参数映射表中映射的参数进行比对,以确定匹配的参数;a3根据匹配的参数确定同时与表名和规则数据匹配的模板标识,从而根据模板标识确定与表名和规则数据匹配的至少一个规则模板(可匹配多个规则模板);a4根据预设顺序提取下一条规则信息中的表名和规则数据;a5将提取的表名和规则数据与存储模块中存储的提取信息进行匹配,判断是否匹配,若匹配,则重复执行步骤a4;若否,则执行步骤a2,直至完成所有规则信息中的表名和规则数据的提取。
在本实施例中,所述规则模板中的表名参数、规则参数均采用预设标识符标识。
作为举例而非限定,以预设标识符为#{}#,校验的规则信息为“职工缴费明细表人员类别只能是在职、退休、离休、老红军”,SQL规则模板如下:
SELECT count(1)statis
FROM#{职工缴费明细表}#
WHERE#{人员类别}#not in(#{人员类别:[在职,退休,离休,老红军]}#)
S4.基于获取的所述参数将所述表名和规则数据输入所述规则模板,以生成SQL语句。
具体地,采用步骤S4识别所述规则模板中的所述预设标识符,将所述表名替换所述规则模板中的所述表名参数,将所述规则数据替换所述规则模板中的所述规则参数,生成所述SQL语句。
以“职工缴费明细表”为表名,“人员类别”为字段数据、“在职、退休、离休、老红军”为字典数据,校验的规则信息为“职工缴费明细表人员类别只能是在职、退休、离休、老红军”为例,结合表1将上述数据替换到上述SQL规则模板中的相应位置后,生成的SQL语句为:
SELECT count(1)statis
FROM ODS_STAF_PSN_CLCT_DETAIL_D
WHERE PSN_TYPE not in(‘01’,’02’,’03’,’04’)
在本实施例中,可将规则模板中的参数(表名参数、字段参数、字典参数)和实际规则信息(如:表名、字段数据、字典数据等)进行匹配,批量动态生成可实际落地执行的业务规则校验SQL语句,从而实现业务规则校验。
在步骤S4中,若规则模板包括子模板,则将子模板剥离出来,先在外层对规则模板参数进行替换,在对内层(即子模板)中的参数进行替换。
在本实施例中,可将生成的SQL语句发送至计算引擎(SPARK),由计算引擎计算任务时间和资源空间,根据任务时间和资源空间向资源管理器申请分配资源,创建任务,将任务发送至相应的资源,执行任务操作,以获取任务结果。
在本实施例中,生成SQL语句的方法利用了规则模板的复用性,通过对获取的规则信息进行解析,以得到表名和规则数据,根据表名和规则数据在参数映射表中映射的参数,获取与该参数关联的所有模板标识,依据获取的模板标识确定相应的规则模板,从而将获取的参数将表名和规则数据输入规则模板自动SQL语句,无需人工手写SQL语句,降低了人员的工作量,提高了生成SQL语句的效率。本发明可在数据中台落地执行,能够保证下游业务系统数据的正确性,实现了一次配置多地使用,可有效的减少业务数据校验的工作量。
实施例二
请参阅图3,本实施例的一种生成SQL语句的装置1,包括:解析单元11、处理单元12、确定单元13和生成单元14。
解析单元11,用于依据预设规则提取数据库中的规则信息,所述规则信息包括表名和规则数据,解析所述规则信息,获取所述表名和所述规则数据。
其中,所述数据库包括至少一条规则信息。预设规则是一种提取规则,该规则可以是根据规则信息中首字字母的顺序排序、或者其他预先设定或随机排列的顺序排序逐条提取数据库中的规则信息。所述规则数据包括字段数据,或字段数据和字典数据。
上述规则信息还可存储于服务器,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
以规则数据是“人员类别只能是在职、退休、离休、老红军”为例:“人员类别”为字段数据;“在职、退休、离休、老红军”均为字典数据。
在本实施例中,字段数据可以表示一个字段,字段数据也可以表示多个字段,如由几个字段组成的字段范围。
在本实施例中规则信息主要是指业务规则,规则信息是根据业务需求配置的文字信息,以对存储于医保数据库中的职工缴费明细表校验为例:校验的规则信息为“职工缴费明细表人员类别只能是在职、退休、离休、老红军”。其中,表名为“职工缴费明细表”;规则数据是“人员类别只能是在职、退休、离休、老红军”。
在一种可能的实现方式中,表名对应的数据可以是医疗数据,如个人健康档案表中的数据、处方表单中的数据、检查报告单中的数据等。
具体地,可通过解析单元11对所述规则信息进行语义识别,以得到所述表名和所述规则数据。
在本实施例中,可采用自然语言处理(Natural Language Processing,NLP)技术进行语义识别,通过字词级别的分析识别规则信息中的分词、命名实体、词性的标注、同义词分词、字词向量等,从而得到表名和规则数据。
在优选的实施例中,通过解析单元11对规则信息解析之前,可根据规则信息校验的ods层对应的表名,配置相应的参数映射表。
处理单元12,用于获取所述表名和所述规则数据在参数映射表中映射的参数及模板标识。
其中,所述参数映射表中每一表名对应一参数、每一规则数据对应一参数,每一所述参数至少关联一个所述模板标识,每一所述模板标识关联一规则模板。
在本实施例中,参数映射表包括:实施规则信息、参数、参数类别以及模板标识。所谓的实施规则信息是指规则信息中的表名、规则数据(字段数据、字典数据)等数据。所述参数为应用规则信息被校验的ods(全称Operational Data Store,用来存储多个数据源业务数据的系统)层对应的表名(或数据源)数据。所谓的参数类别包括表名参数、规则参数(字段参数、字典参数)等。
在本实施例中,可根据业务系统提出的业务需求预先配置大量的规则模板,从而形成由大量规则模板构成的规则库,以便于统一数据标准。
需要说明的是:所述规则模板包括:操作项、数据源和逻辑项,所述数据源包括表名参数。所述规则模板符合以下至少一种条件:
所述操作项包括规则参数,所述规则参数为字段参数;或
所述操作项包括规则参数,所述规则参数包括字段参数和字典参数。
在实际应用中,考虑到业务规则的校验内容各不相同,业务规则可能涉及到字典数据,也可能不涉及字典数据,因此,规则模板在包括表名参数、字段参数的基础上,还可包括字典参数。
在本实施例中,规则模板中的字段参数与规则信息中的字段数据对应;规则模板中的字典参数与规则信息中的字典数据对应;规则模板中的表名参数与规则信息中的表名对应。
以“职工缴费明细表”为表名,“人员类别”为字段数据、“在职、退休、离休、老红军”为字典数据为例,参数映射表1:与“职工缴费明细表”对应的表名参数为“ODS_STAF_PSN_CLCT_DETAIL_D”,与“人员类别”对应的字段参数为“PSN_TYPE”,与“在职”对应的字典参数值为01,与“退休”对应的字典参数值为02,与“离休”对应的字典参数值为03,与“老红军”对应的字典参数值为04。
进一步地,处理单元12用于分别将所述表名和所述规则数据与所述参数映射表中的参数进行匹配,获取与所述表名匹配的表名参数,以及与所述规则数据匹配的规则参数。处理单元12还用于获取与所述表名参数关联的所有模板标识,以及所述规则数据关联的所述模板标识。
在本实施例中,参数映射表为根据校验的数据库预先配置的表单,依据参数类型(表名参数类、字段参数类、字典参数类)分别配置不同的表单,也可以将所有参数类型汇聚于同一表单中。
在优选的实施例中,所述数据库可包括至少两条规则信息,生成SQL语句的装置1还可包括:匹配单元。
匹配单元,用于将获取的所述表名和所述规则数据与存储模块中的数据进行匹配,判断所述存储模块中是否存储所述表名和所述规则数据,若是,则表示在解析单元11对规则信息进行解析之前已经对与表名和规则数据关联的规则信息解析过,可通过解析单元11依据预设规则提取数据库中下一条规则信息进行解析;若否,则表示所述存储模块中未存储所述表名和所述规则数据,将获取的所述表名和所述规则数据存储于所述存储模块中,通过处理单元12获取所述表名和所述规则数据在参数映射表中映射的参数及模板标识。
其中,所述存储模块用于存储与生成的所述SQL语句关联的所述表名和所述规则数据。
确定单元13,用于根据获取的所述模板标识确定所述规则模板。
进一步地,确定单元13可包括识别模块、第一获取模块和第二获取模块。
识别模块,用于识别所述规则数据是否包括字典数据。
第一获取模块,用于当所述规则数据包括字典数据时,将与所述表名参数关联的所有模板标识的集合作为第一集合,将与所述字段参数关联的所有所述模板标识的集合作为第二集合,将所述第一集合和所述第二集合中共有的所述模板标识作为目标标识,获取所述目标标识对应的规则模板。
第二获取模块,用于所述规则数据不包括字典数据时,将与所述表名参数关联的所有模板标识的集合作为第一集合,将与所述字段参数关联的所有所述模板标识的集合作为第二集合,将与所述字典参数关联的所有模板标识的集合作为第三集合,将所述第一集合、所述第二集合和所述第三集合中共有的所述模板标识作为目标标识,获取所述目标标识对应的规则模板。
在本实施例中,若获得多个目标标识,则可确定多个规则模板,每一个目标标识对应一个规则模板。
作为举例而非限定,当同时获取多条规则信息时,确定规则模板的过程:a1根据预设顺序(如:默认排序顺序,或获取的顺序等)提取一条规则信息中的表名和规则数据,将表名和规则数据作为一条提取信息存储于预设的存储模块中;a2将提取规则信息的表名和规则数据与参数映射表中映射的参数进行比对,以确定匹配的参数;a3根据匹配的参数确定同时与表名和规则数据匹配的模板标识,从而根据模板标识确定与表名和规则数据匹配的至少一个规则模板(可匹配多个规则模板);a4根据预设顺序提取下一条规则信息中的表名和规则数据;a5将提取的表名和规则数据与存储模块中存储的提取信息进行匹配,判断是否匹配,若匹配,则重复执行步骤a4;若否,则执行步骤a2,直至完成所有规则信息中的表名和规则数据的提取。
在本实施例中,所述规则模板中的表名参数、规则参数均采用预设标识符标识。
生成单元14,用于基于获取的所述参数将所述表名和规则数据输入所述规则模板,以生成SQL语句。
具体地,采用生成单元14识别所述规则模板中的所述预设标识符,将所述表名替换所述规则模板中的所述表名参数,将所述规则数据替换所述规则模板中的所述规则参数,生成所述SQL语句。
在本实施例中,可将规则模板中的参数(表名参数、字段参数、字典参数)和实际规则信息(如:表名、字段数据、字典数据等)进行匹配,批量动态生成可实际落地执行的业务规则校验SQL语句,从而实现业务规则校验。
在步骤S4中,若规则模板包括子模板,则将子模板剥离出来,先在外层对规则模板参数进行替换,在对内层(即子模板)中的参数进行替换。
在本实施例中,可将生成的SQL语句发送至计算引擎(SPARK),由计算引擎计算任务时间和资源空间,根据任务时间和资源空间向资源管理器申请分配资源,创建任务,将任务发送至相应的资源,执行任务操作,以获取任务结果。
在本实施例中,生成SQL语句的装置1利用了规则模板的复用性,通过解析单元11对获取的规则信息进行解析,以得到表名和规则数据,处理单元12根据表名和规则数据在参数映射表中映射的参数,获取与该参数关联的所有模板标识,确定单元13依据获取的模板标识确定相应的规则模板,从而生成单元14将获取的参数将表名和规则数据输入规则模板自动SQL语句,无需人工手写SQL语句,降低了人员的工作量,提高了生成SQL语句的效率。本发明可在数据中台落地执行,能够保证下游业务系统数据的正确性,实现了一次配置多地使用,可有效的减少业务数据校验的工作量。
实施例三
为实现上述目的,本发明还提供一种计算机设备2,该计算机设备2包括多个计算机设备2,实施例二的生成SQL语句的装置1的组成部分可分散于不同的计算机设备2中,计算机设备2可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备2至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器23、网络接口22以及生成SQL语句的装置1(参考图4)。需要指出的是,图4仅示出了具有组件-的计算机设备2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,所述存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如实施例一的生成SQL语句的方法的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器23在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器23通常用于控制计算机设备2的总体操作例如执行与所述计算机设备2进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器23用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述的生成SQL语句的装置1等。
所述网络接口22可包括无线网络接口或有线网络接口,该网络接口22通常用于在所述计算机设备2与其他计算机设备2之间建立通信连接。例如,所述网络接口22用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图4仅示出了具有部件21-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的所述生成SQL语句的装置1还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器23)所执行,以完成本发明。
实施例四
为实现上述目的,本发明还提供一种计算机可读存储介质,其包括多个存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器23执行时实现相应功能。本实施例的计算机可读存储介质用于存储生成SQL语句的装置1,被处理器23执行时实现实施例一的生成SQL语句的方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种生成SQL语句的方法,其特征在于,包括:
依据预设规则提取数据库中的规则信息,所述规则信息包括表名和规则数据,解析所述规则信息,获取所述表名和所述规则数据;
获取所述表名和所述规则数据在参数映射表中映射的参数及模板标识,所述参数映射表中每一表名对应一参数、每一规则数据对应一参数,每一所述参数至少关联一个所述模板标识,每一所述模板标识关联一规则模板;
根据获取的所述模板标识确定所述规则模板;
基于获取的所述参数将所述表名和规则数据输入所述规则模板,以生成SQL语句。
2.根据权利要求1所述的生成SQL语句的方法,其特征在于,所述获取所述表名和所述规则数据在参数映射表中映射的参数及模板标识,之前还包括:
将获取的所述表名和所述规则数据与存储模块中的数据进行匹配,判断所述存储模块中是否存储所述表名和所述规则数据,所述存储模块用于存储于与生成的所述SQL语句关联的所述表名和所述规则数据;
若所述存储模块中存储所述表名和所述规则数据,则依据预设规则提取数据库中的规则信息,所述规则信息包括表名和规则数据,解析所述规则信息,获取所述表名和所述规则数据;
若所述存储模块中未存储所述表名和所述规则数据,则将获取的所述表名和所述规则数据存储于所述存储模块中,获取所述表名和所述规则数据在参数映射表中映射的参数及模板标识。
3.根据权利要求1所述的生成SQL语句的方法,其特征在于,所述获取所述表名和所述规则数据在参数映射表中映射的参数及模板标识,包括:
分别将所述表名和所述规则数据与所述参数映射表中的参数进行匹配,获取与所述表名匹配的表名参数,以及与所述规则数据匹配的规则参数;
获取与所述表名参数关联的所有模板标识,以及所述规则数据关联的所述模板标识。
4.根据权利要求1或3所述的生成SQL语句的方法,其特征在于,所述规则数据包括字段数据,或字段数据和字典数据;
所述根据获取的所述模板标识确定所述规则模板,包括:
识别所述规则数据是否包括字典数据;
若规则数据不包括字典数据,则与所述字段数据匹配的规则参数为字段参数;
将与所述表名参数关联的所有模板标识的集合作为第一集合,将与所述字段参数关联的所有所述模板标识的集合作为第二集合;
将所述第一集合和所述第二集合中共有的所述模板标识作为目标标识,获取所述目标标识对应的规则模板。
5.根据权利要求4所述的生成SQL语句的方法,其特征在于,还包括:
若规则数据包括字典数据,则判定所述规则数据中同时包括字段数据和所述字典数据,与所述字段数据匹配的规则参数为字段参数,与所述字典数据匹配的规则参数为字典参数;
将与所述表名参数关联的所有模板标识的集合作为第一集合,将与所述字段参数关联的所有所述模板标识的集合作为第二集合,将与所述字典参数关联的所有模板标识的集合作为第三集合;
将所述第一集合、所述第二集合和所述第三集合中共有的所述模板标识作为目标标识,获取所述目标标识对应的规则模板。
6.根据权利要求1所述的生成SQL语句的方法,其特征在于,所述规则模板包括:操作项、数据源和逻辑项,所述数据源包括表名参数;
所述规则模板符合以下至少一种条件:
所述操作项包括规则参数,所述规则参数为字段参数;或
所述操作项包括规则参数,所述规则参数包括字段参数和字典参数。
7.根据权利要求3或6所述的生成SQL语句的方法,其特征在于,所述规则模板中的表名参数、规则参数均采用携带预设标识符;
所述基于获取的所述参数将所述表名和规则数据输入所述规则模板,以生成SQL语句,包括:
识别所述规则模板中的所述预设标识符,将所述表名替换所述规则模板中的所述表名参数,将所述规则数据替换所述规则模板中的所述规则参数,生成所述SQL语句。
8.一种生成SQL语句的装置,其特征在于,包括:
解析单元,用于依据预设规则提取数据库中的规则信息,所述规则信息包括表名和规则数据,解析所述规则信息,获取所述表名和所述规则数据;
处理单元,用于获取所述表名和所述规则数据在参数映射表中映射的参数及模板标识,所述参数映射表中每一表名对应一参数、每一规则数据对应一参数,每一所述参数至少关联一个所述模板标识,每一所述模板标识关联一规则模板;
确定单元,用于根据获取的所述模板标识确定所述规则模板;
生成单元,用于基于获取的所述参数将所述表名和规则数据输入所述规则模板,以生成SQL语句。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111186749.6A CN113901075A (zh) | 2021-10-12 | 2021-10-12 | 生成sql语句的方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111186749.6A CN113901075A (zh) | 2021-10-12 | 2021-10-12 | 生成sql语句的方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113901075A true CN113901075A (zh) | 2022-01-07 |
Family
ID=79191604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111186749.6A Pending CN113901075A (zh) | 2021-10-12 | 2021-10-12 | 生成sql语句的方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113901075A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114661751A (zh) * | 2022-03-22 | 2022-06-24 | 医渡云(北京)技术有限公司 | 基于sql知识库的数据生产方法、装置、系统、设备及介质 |
-
2021
- 2021-10-12 CN CN202111186749.6A patent/CN113901075A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114661751A (zh) * | 2022-03-22 | 2022-06-24 | 医渡云(北京)技术有限公司 | 基于sql知识库的数据生产方法、装置、系统、设备及介质 |
CN114661751B (zh) * | 2022-03-22 | 2023-01-31 | 医渡云(北京)技术有限公司 | 基于sql知识库的数据生产方法、装置、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8577938B2 (en) | Data mapping acceleration | |
CN110083623B (zh) | 一种业务规则生成方法及装置 | |
CN109189888B (zh) | 电子装置、侵权分析的方法及存储介质 | |
CN111767716B (zh) | 企业多级行业信息的确定方法、装置及计算机设备 | |
CN110929125B (zh) | 搜索召回方法、装置、设备及其存储介质 | |
US9116879B2 (en) | Dynamic rule reordering for message classification | |
US11853339B2 (en) | Techniques and components to find new instances of text documents and identify known response templates | |
CN110765101B (zh) | 标签的生成方法、装置、计算机可读存储介质及服务器 | |
CN112215288B (zh) | 目标企业的类别确定方法及装置、存储介质、电子装置 | |
CN109947903B (zh) | 一种成语查询方法及装置 | |
CN111967437A (zh) | 文本识别方法、装置、设备及存储介质 | |
CN112231417A (zh) | 数据分类方法、装置、电子设备及存储介质 | |
CN116150349A (zh) | 一种数据产品安全合规性检查方法、装置及服务器 | |
CN113051362A (zh) | 数据的查询方法、装置和服务器 | |
CN111625567A (zh) | 数据模型匹配方法、装置、计算机系统及可读存储介质 | |
CN113901075A (zh) | 生成sql语句的方法、装置、计算机设备及存储介质 | |
CN113886419A (zh) | Sql语句处理方法、装置、计算机设备及存储介质 | |
CN112286916B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN107688594B (zh) | 基于社交信息的风险事件的识别系统及方法 | |
CN112579781A (zh) | 文本归类方法、装置、电子设备及介质 | |
CN116340537A (zh) | 人物关系抽取方法、装置、电子设备及存储介质 | |
CN114971833A (zh) | 一种税收信息处理方法及相关设备 | |
CN112115212B (zh) | 参数识别方法、装置和电子设备 | |
CN114090076A (zh) | 应用程序的合规性判别方法和装置 | |
CN113239126A (zh) | 一种基于bor方法的业务活动信息标准化方案 |
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 |