【技术实现步骤摘要】
一种将SQL语句转义为ES语句的方法及系统
[0001]本专利技术涉及数据库
,具体而言,涉及一种将SQL语句转义为ES语句的方法及系统。
技术介绍
[0002]随着数据量的不断增加,传统的结构型数据库查询、更新的性能已经无法满足业务诉求,故而很多应用都引入了elasticsearch(以下简称ES),ES是一个基于Lucene的开源分布式的搜索引擎,在大数据的搜索、分析方面,ES可以提供接近实时的可靠保障,因此ES作为实时数据搜索引擎已经被广泛应用到各个场景中。但是,由于传统的结构型数据库的语法与ES的语法差异很大,想要从数据库查询切换到ES查询,需要开发人员对数据库的每一条SQL语句重新进行开发,整个过程耗时耗力、周期性长。
技术实现思路
[0003]本专利技术的目的在于提供一种将SQL语句转义为ES语句的方法及系统,其通过对接收到原生SQL语句进行分析,获得原生SQL语句的类型后针对不同类型的SQL语句类型,按照ES的语法对原生SQL语句进行转义处理生成ES语句等步骤,可以将SQL的查询性语句转义为ES的布尔查询语句、将SQL的事务性语句转义为ES的事务操作语句,从而将原生SQL语句自动地转义为ES语句,不需要开发人员针对数据库的每一条SQL语句重新进行开发,节约了人力物力,缩短了开发周期;且可以帮助应用快速地从SQL模式切换至ES模式,应用通过执行自动生成的ES语句可以实时地搜索数据,进而提高数据(或数据库)查询、操作的速度。
[0004]本专利技术的实施例是这样实现的: >[0005]第一方面,本申请实施例提供一种将SQL语句转义为ES语句的方法,包括以下步骤:
[0006]接收原生SQL语句;
[0007]对所述原生SQL语句进行分析,得到所述原生SQL语句的类型;
[0008]根据所述原生SQL语句的类型,按ES的语法对所述原生SQL语句进行转义处理,得到对应的ES语句。
[0009]在本专利技术的一些实施例中,所述对所述原生SQL语句进行分析,得到所述原生SQL语句的类型的步骤具体包括:
[0010]解析所述原生SQL语句,获得所述原生SQL语句的语句标识;
[0011]根据所述语句标识确定所述原生SQL语句的类型,所述原生SQL语句的类型包括查询性语句和事务性语句。
[0012]在本专利技术的一些实施例中,所述根据所述原生SQL语句的类型,按ES的语法对所述原生SQL语句进行转义处理,得到对应的ES语句的步骤具体包括:
[0013]若所述原生SQL语句的类型为查询性语句,则按ES的查询语法将所述原生SQL语句转义为ES的布尔查询语句。
[0014]在本专利技术的一些实施例中,所述根据所述原生SQL语句的类型,按ES的语法对所述原生SQL语句进行转义处理,得到对应的ES语句的步骤具体还包括:
[0015]若所述原生SQL语句的类型为事务性语句,则按ES的事务操作语法将所述原生SQL语句转义为ES的事务操作语句。
[0016]在本专利技术的一些实施例中,所述按ES的查询语法将所述原生SQL语句转义为ES的布尔查询语句的步骤具体包括:
[0017]将原生SQL语句中的数据库schema字段转义为ES的index字段;
[0018]将原生SQL语句中的查询条件字段、查询方式字段进行ES转义,并与所述ES的index字段组合成完整的ES的布尔查询语句。
[0019]在本专利技术的一些实施例中,所述按ES的事务操作语法将所述原生SQL语句转义为ES的事务操作语句的步骤具体包括:
[0020]将原生SQL语句中的数据库schema字段转义为ES的index字段;
[0021]将原生SQL语句中的事务标识字段、操作的目标字段及对应的值ES转义后与所述ES的index字段组合成完整的ES的事务操作语句。
[0022]第二方面,本申请实施例提供一种将SQL语句转义为ES语句的系统,其包括:
[0023]接收模块,用于接收原生SQL语句;
[0024]分析模块,用于对所述原生SQL语句进行分析,得到所述原生SQL语句的类型;
[0025]转义模块,用于根据所述原生SQL语句的类型,按ES的语法对所述原生SQL语句进行转义处理,得到对应的ES语句。
[0026]在本专利技术的一些实施例中,所述分析模块具体包括:
[0027]解析子模块,用于解析所述原生SQL语句,获得所述原生SQL语句的语句标识;
[0028]确定子模块,用于根据所述语句标识确定所述原生SQL语句的类型,所述原生SQL语句的类型包括查询性语句和事务性语句。
[0029]第三方面,本申请实施例提供一种电子设备,其包括存储器,用于存储一个或多个程序;处理器,当上述一个或多个程序被上述处理器执行时,实现如上述第一方面中任一项上述的方法。
[0030]第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一项上述的方法。
[0031]相对于现有技术,本专利技术的实施例至少具有如下优点或有益效果:
[0032]本专利技术的实施例提出了一种将SQL语句转义为ES语句的方法,其通过对接收到原生SQL语句进行分析,获得原生SQL语句的类型后针对不同类型的SQL语句类型,按照ES的语法对原生SQL语句进行转义处理生成ES语句等步骤,可以将SQL的查询性语句转义为ES的布尔查询语句、将SQL的事务性语句转义为ES的事务操作语句,从而将原生SQL语句自动地转义为ES语句,不需要开发人员针对数据库的每一条SQL语句重新进行开发,节约了人力物力,缩短了开发周期;且可以帮助应用快速地从SQL模式切换至ES模式,应用通过执行自动生成的ES语句可以实时地搜索数据,进而提高数据(或数据库)查询、操作的速度。
附图说明
[0033]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附
图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0034]图1为本专利技术一种将SQL语句转义为ES语句的方法一实施例的流程图;
[0035]图2为本专利技术实施例中对所述原生SQL语句进行分析,得到所述原生SQL语句的类型的步骤的具体流程图;
[0036]图3为本专利技术实施例中根据所述原生SQL语句的类型,按ES的语法对所述原生SQL语句进行转义处理,得到对应的ES语句的步骤的具体流程图;
[0037]图4为本专利技术实施例中若所述原生SQL语句的类型为查询性语句,则按ES的查询语法将所述原生SQL语句转义为ES的布尔查询语句的具体流程图;
[0038]图5为本申请实施例中的若所述原生SQL语句的类型为事务性语句,则按ES的事务操作语法将所述原生SQL语句转义为ES本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种将SQL语句转义为ES语句的方法,其特征在于,包括:接收原生SQL语句;对所述原生SQL语句进行分析,得到所述原生SQL语句的类型;根据所述原生SQL语句的类型,按ES的语法对所述原生SQL语句进行转义处理,得到对应的ES语句。2.如权利要求1所述的一种将SQL语句转义为ES语句的方法,其特征在于,所述对所述原生SQL语句进行分析,得到所述原生SQL语句的类型的步骤具体包括:解析所述原生SQL语句,获得所述原生SQL语句的语句标识;根据所述语句标识确定所述原生SQL语句的类型,所述原生SQL语句的类型包括查询性语句和事务性语句。3.如权利要求2所述的一种将SQL语句转义为ES语句的方法,其特征在于,所述根据所述原生SQL语句的类型,按ES的语法对所述原生SQL语句进行转义处理,得到对应的ES语句的步骤具体包括:若所述原生SQL语句的类型为查询性语句,则按ES的查询语法将所述原生SQL语句转义为ES的布尔查询语句。4.如权利要求2所述的一种将SQL语句转义为ES语句的方法,其特征在于,所述根据所述原生SQL语句的类型,按ES的语法对所述原生SQL语句进行转义处理,得到对应的ES语句的步骤具体还包括:若所述原生SQL语句的类型为事务性语句,则按ES的事务操作语法将所述原生SQL语句转义为ES的事务操作语句。5.如权利要求3任一所述的一种将SQL语句转义为ES语句的方法,其特征在于,所述按ES的查询语法将所述原生SQL语句转义为ES的布尔查询语句的步骤具体包括:将原生SQL语句中的数据库schema字段转义为ES的index字段;将原生SQL语句中的查询条件字段、查询方式字段进行ES转义,并与所述ES...
【专利技术属性】
技术研发人员:黄哲智,刘永富,陈柳柳,
申请(专利权)人:天翼电子商务有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。