CN110162538A - 自动生成通用查询语言cql的方法、装置和计算机设备 - Google Patents
自动生成通用查询语言cql的方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN110162538A CN110162538A CN201910318708.4A CN201910318708A CN110162538A CN 110162538 A CN110162538 A CN 110162538A CN 201910318708 A CN201910318708 A CN 201910318708A CN 110162538 A CN110162538 A CN 110162538A
- Authority
- CN
- China
- Prior art keywords
- cql
- cryptographic hash
- correlative
- query argument
- preset
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000006870 function Effects 0.000 claims abstract description 32
- 239000000284 extract Substances 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012800 visualization Methods 0.000 claims description 10
- 239000000203 mixture Substances 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000003780 insertion Methods 0.000 claims description 2
- 230000037431 insertion Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 241000208340 Araliaceae Species 0.000 description 2
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请揭示了一种自动生成通用查询语言CQL的方法、装置、计算机设备和存储介质,其中方法包括:用户终端获取用户输入的查询参数;从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL,其中,所述第一CQL为预先编译的CQL,所述第一CQL中包含有用于查询多个功能的CQL;将所述第二CQL发送给对应的服务器。本申请,用户无需根据每一种查询情况都手动的编写一条CQL,提高查询的便利性和效率;将生成的第二CQL缓存到用户终端本地,当下一次再次查询相同的功能时,可以直接调用,进一步地提高效率和提高应用的性能。本申请还可以根据需求,不断地在第一CQL中续编、修改查询语句,提高应用的可维护性。
Description
技术领域
本申请涉及到查询语句领域,特别是自动生成通用查询语言CQL的方法、装置和计算机设备。
背景技术
CQL全称是Cassandra query language(Cassandra查询语句),目前作为Cassandra(是一套开源分布式NoSQL数据库系统)默认并且主要的交互接口,其语法类似SQL(结构化查询语言)语句,由于目前没有类似MyBatis(本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis)这种数据库中间件支持,造成使用CQL过程中存在每种查询情况都需要单独写一个CQL,一个简单的页面查询应用可能需要定义十几个CQL查询语句,增加代码量及系统复杂度。
发明内容
本申请的主要目的为提供一种自动生成通用查询语言CQL的方法、装置、计算机设备和存储介质,旨在解决每种查询情况都需要单独写一个CQL,增加代码量及系统复杂度的技术问题。
为了实现上述发明问题,本申请提出一种自动生成通用查询语言CQL的方法,包括:
用户终端获取用户输入的查询参数;
从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL,其中,所述第一CQL为预先编译的CQL,所述第一CQL中包含有用于查询多个功能的CQL;
将所述第二CQL发送给对应的服务器。
进一步地,所述从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL的步骤之前,包括:
计算所述查询参数的第一哈希值;
到预设的关联表中查找与所述第一哈希值相同的第二哈希值,其中,所述关联表中记载有所述用户终端上用户历史输入的不同的查询参数对应的不同哈希值,所述关联表上的每一个哈希值关联一个存储在所述本地数据库中的CQL;
若未查找到所述第二哈希值,则生成执行所述“从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL”的命令。
进一步地,所述从预设的第一CQL中提取与所述查询参数相关的相关语句的步骤之后,还包括:
将所述第二CQL保存在所述用户终端的本地数据中,以及将所述第一哈希值插入所述关联表中。
进一步地,所述到预设的关联表中查找与所述第一哈希值相同的第二哈希值的步骤之后,包括:
若查找到与所述第一哈希值相同的第二哈希值,调用与所述第一哈希值关联的所述第二CQL。
进一步地,所述将所述第二CQL发送给对应的服务器的步骤之后,包括:
若所述第二CQL为从所述数据库中直接调用的CQL,则记录该第二CQL被调用的次数;
若在指定时间长度内,所述第二CQL被调用的次数大于第一预设值,则以所述次数除以所述指定时间长度计算出调用所述第二CQL的平均频率;
以所述平均频率自动调用所述第二CQL,并将所述第二CQL发送给对应的服务器;
将每一次接收到的所述服务器针对所述第二CQL的反馈信息生成可视化报告。
进一步地,所述若所述第二CQL为从所述数据库中直接调用的CQL,则记录所述第二CQL被调用的次数的步骤之后,包括:
若在指定时间长度内,所述第二CQL被调用的次数为0,则将所述第二CQL从所述数据库中清除。
进一步地,所述从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL的步骤之后,包括:
若未提取出所述第二CQL,则生成报警信息。
本申请还提供一种自动生成通用查询语言CQL的装置,包括:
获取单元,用于获取用户输入的查询参数;
提取组合单元,用于从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL,其中,所述第一CQL为预先编译的CQL,所述第一CQL中包含有用于查询多个功能的CQL;
发送单元,用于将所述第二CQL发送给对应的服务器。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的自动生成通用查询语言CQL的方法、装置、计算机设备和存储介质,预先将可能需要编译的多个功能的CQL编写成一条综合的第一CQL,然后通过接收用户输入的查询参数,依据预设的解析工具解析第一CQL,然后将与上述查询参数对应的相关语句提取出来,生成第二CQL,用户无需根据每一种查询情况都手动的编写一条CQL,提高查询的便利性和效率;将生成的第二CQL缓存到用户终端本地,当下一次再次查询相同的功能时,可以直接调用,进一步地提高效率和提高应用的性能。本申请还可以根据需求,不断地在第一CQL中续编、修改查询语句,提高应用的可维护性。
附图说明
图1是本申请一实施例中自动生成通用查询语言CQL的方法的流程示意图;
图2是本申请一实施例中自动生成CQL的装置的结构框图;
图3是本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例提供一种自动生成通用查询语言CQL的方法,包括:
S1、用户终端获取用户输入的查询参数;
S2、从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL,其中,所述第一CQL为预先编译的CQL,所述第一CQL中包含有用于查询多个功能的CQL;
S3、将所述第二CQL发送给对应的服务器。
如上述步骤S1所述,上述执行的主体为用户终端,该用户终端一般为智能手机、电脑、平板电脑等计算机设备。上述查询参数是指用户输入的参数,该查询参数可以为用户根据预设的编写规则编写的参数,也可以是用户在预设的参数选择栏中选取的一个或多个参数的组合。上述查询参数表示用户需要生成一个什么样的CQL(Cassandra querylanguage,Cassandra查询语句)。
如上述步骤S2所述,上述第一CQL是研发人员预先编译完成的CQL,该第一CQL中可以完成多个功能的查询,其编写的规则也是按照指定规则编写的,如参考MyBatis的SQL语法规则,定义CQL的语法规则,比如select*from a_table where name=#name#等。当获取到查询参数后,先利用预设的解析工具解析上述第一CQL,解析工具支持单值、集合、是否非空等语法的解析,将解析后的第一CQL中与上述查询参数不相关的CQL清除,将保留下来的语句根据上述的指定规则编写,从而得到第二CQL。在此过程中,存在两种情况,第一种是可以从第一CQL中提取出与查询参数相关的相关语句,然后组成第二COL,第二种是不可以从第一CQL中提取出与查询参数相关的相关语句,从而无法组成第二COL,比如用户未按预设规则随便输入查询参数,此时就不会生成第二CQL。
如上述步骤S3所述,将第二CQL发送给对应的服务器的过程,可以使用现有技术中任意一种可以实现的方法,在此不在赘述。
在一个具体实施例中,上述第一CQL可以完成A、B、C三个功能,是研发人员按照预定义的语法规则编译完成的。用户需要单独查询A功能,则输入对应A功能的查询参数,然后利用解析工具解析上述第一CQL,然后将第一CQL中的B、C功能的查询语句清除,保留A功能的相关语句,然后重新整理成查询A功能的第二CQL,然后将第二CQL发送给对应的服务器。
在一个实施例中,上述从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL的步骤S2之前,包括:
S201、计算所述查询参数的第一哈希值;
S202、到预设的关联表中查找与所述第一哈希值相同的第二哈希值,其中,所述关联表中记载有所述用户终端上用户历史输入的不同的查询参数对应的不同哈希值,所述关联表上的每一个哈希值关联一个存储在所述本地数据库中的CQL;
S203、若未查找到所述第二哈希值,则生成执行所述“从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL”的命令。
在本实施例中,存储在所述本地数据库中的CQL是当前次生成第二CQL之前生成的历史CQL,其生成的方法与生成第二CQL的方法相同。上述关联表中的哈希值是用户在历史输入查询参数后生成的哈希值。需要注意的是,计算上述第一哈希值和第二哈希值的哈希公式是相同的。每一次获取到查询参数之后,并不是第一时间执行上述步骤S2,而是先查看本地数据库中是否存储于与查询参数对应的第二CQL,如果不存在,则说明用户终端的本地数据库中未存储有对应第一哈希值的第二CQL,需要执行上述步骤S2,否则,直接调用与第一哈希值相同的第二哈希值对应的CQL,将该CQL作为第二CQL即可,提高获取第二CQL的效率,提高应用的性能。
进一步地,上述从预设的第一CQL中提取与所述查询参数相关的相关语句的步骤S2之后,还包括:
S21、将所述第二CQL保存在所述用户终端的本地数据中,以及将所述第一哈希值插入所述关联表中。
在实施例中,因为未在本地数据库查找到与第一哈希值相同的第二哈希值,则说明本地数据库中没有存储对应查询参数的第二CQL,所以将第二CQL更新到本地数据库中,以及将所述第一哈希值插入预设的关联表中,以便于再次获取到上述查询参数后,直接从本地数据库中调取与其对应的CQL。
进一步地,上述到预设的关联表中查找与所述第一哈希值相同的第二哈希值的步骤S202之后,包括:
S204、若查找到与所述第一哈希值相同的第二哈希值,调用与所述第一哈希值关联的所述第二CQL。
在本实施例中,因为存在与上述第一哈希值相同的第二哈希值,则说明用户终端的本地数据库中存储有对应第一哈希值的第二CQL,所以可以直接调用第二CQL,此时,无需执行上述“从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL”的步骤S2,以降低编译消耗,提升性能和查询效率。
在一个实施例中,上述将所述第二CQL发送给对应的服务器的步骤之后,包括:
S4、若所述第二CQL为从所述数据库中直接调用的CQL,则记录该第二CQL被调用的次数;
S5、若在指定时间长度内,所述第二CQL被调用的次数大于第一预设值,则以所述次数除以所述指定时间长度计算出调用所述第二CQL的平均频率;
S6、以所述平均频率自动调用所述第二CQL,并将所述第二CQL发送给对应的服务器;
S7、将每一次接收到的所述服务器针对所述第二CQL的反馈信息生成可视化报告。
在本实施例中,因为第二CQL为从所述数据库中直接调用的CQL,当第二CQL被调用的次数达到了用户设置的第一预设值,则说明该第二CQL是用户经常使用的,既然如此,为了减少用户的操作,提高用户的体验,用户终端计算出一个用户调用第二CQL的平均频率,然后自动完成调用发送的步骤,然后将服务器的反馈信息生成一个可视化报告,当用户需要的时候,可以直接直接加载可视化报告即可,无需主动输入查询参数的过程。
在一个实施例中,上述若所述第二CQL为从所述数据库中直接调用的CQL,则记录所述第二CQL被调用的次数的步骤S4之后,包括:
S8、若在指定时间长度内,所述第二CQL被调用的次数为0,则将所述第二CQL从所述数据库中清除。
在本实施例中,上述指定时间长度是用户根据使用经验设置的时间长度,如一个月、半年等。在指定时间长度内,第三CQL被调用的次数为0,则说明该第三CQL基本是用户不需要的CQL,则可以将其清除,以提高数据库的可利用空间。
在一个实施例中,上述从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL的步骤S2之后,包括:
S9、若未提取出所述第二CQL,则生成报警信息。
在本实施例中,上述报警信息可以为在前台界面显示的提醒语句界面,震动信息、声/光信息中的一种户多种的组合,以便于用户及时了解到未能成功获取到第二CQL,进而解决相应的问题。
本申请实施例的自动生成通用查询语言CQL的方法,预先将可能需要编译的多个功能的CQL编写成一条综合的第一CQL,然后通过接收用户输入的查询参数,依据预设的解析工具解析第一CQL,然后将与上述查询参数对应的相关语句提取出来,生成第二CQL,用户无需根据每一种查询情况都手动的编写一条CQL,提高查询的便利性和效率;将生成的第二CQL缓存到用户终端本地,当下一次再次查询相同的功能时,可以直接调用,进一步地提高效率和提高应用的性能。本申请还可以根据需求,不断地在第一CQL中续编、修改查询语句,提高应用的可维护性。
参照图2,本申请实施例提供一种自动生成通用查询语言CQL的装置,包括:
获取单元10,用于获取用户输入的查询参数;
提取组合单元20,用于从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL,其中,所述第一CQL为预先编译的CQL,所述第一CQL中包含有用于查询多个功能的CQL;
发送单元30,用于将所述第二CQL发送给对应的服务器。
如上述获取单元10,上述执行的主体为用户终端,该用户终端一般为智能手机、电脑、平板电脑等计算机设备。上述查询参数是指用户输入的参数,该查询参数可以为用户根据预设的编写规则编写的参数,也可以是用户在预设的参数选择栏中选取的一个或多个参数的组合。上述查询参数表示用户需要生成一个什么样的CQL(Cassandra querylanguage,Cassandra查询语句)。
如上述提取组合单元20,上述第一CQL是研发人员预先编译完成的CQL,该第一CQL中可以完成多个功能的查询,其编写的规则也是按照指定规则编写的,如参考MyBatis的SQL语法规则,定义CQL的语法规则,比如select*from a_table where name=#name#等。当获取到查询参数后,先利用预设的解析工具解析上述第一CQL,解析工具支持单值、集合、是否非空等语法的解析,将解析后的第一CQL中与上述查询参数不相关的CQL清除,将保留下来的语句根据上述的指定规则编写,从而得到第二CQL。在此过程中,存在两种情况,第一种是可以从第一CQL中提取出与查询参数相关的相关语句,然后组成第二COL,第二种是不可以从第一CQL中提取出与查询参数相关的相关语句,从而无法组成第二COL,比如用户未按预设规则随便输入查询参数,此时就不会生成第二CQL。
如上述发送单元30,将第二CQL发送给对应的服务器的过程,可以使用现有技术中任意一种可以实现的方法,在此不在赘述。
在一个具体实施例中,上述第一CQL可以完成A、B、C三个功能,是研发人员按照预定义的语法规则编译完成的。用户需要单独查询A功能,则输入对应A功能的查询参数,然后利用解析工具解析上述第一CQL,然后将第一CQL中的B、C功能的查询语句清除,保留A功能的相关语句,然后重新整理成查询A功能的第二CQL,然后将第二CQL发送给对应的服务器。
在一个实施例中,上述自动生成CQL的装置,包括:
计算单元,用于计算所述查询参数的第一哈希值;
查找单元,用于到预设的关联表中查找与所述第一哈希值相同的第二哈希值,其中,所述关联表中记载有所述用户终端上用户历史输入的不同的查询参数对应的不同哈希值,所述关联表上的每一个哈希值关联一个存储在所述本地数据库中的CQL;
生成单元,用于若未查找到所述第二哈希值,则生成执行所述“从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL”的命令。
在本实施例中,存储在所述本地数据库中的CQL是当前次生成第二CQL之前生成的历史CQL,其生成的方法与生成第二CQL的方法相同。上述关联表中的哈希值是用户在历史输入查询参数后生成的哈希值。需要注意的是,计算上述第一哈希值和第二哈希值的哈希公式是相同的。每一次获取到查询参数之后,并不是第一时间运行上述提取组合单元20,而是先查看本地数据库中是否存储于与查询参数对应的第二CQL,如果不存在,则说明用户终端的本地数据库中未存储有对应第一哈希值的第二CQL,需要运行上述提取组合单元20,否则,直接调用与第一哈希值相同的第二哈希值对应的CQL,将该CQL作为第二CQL即可,提高获取第二CQL的效率,提高应用的性能。
进一步地,上述自动生成CQL的装置,还包括:
保存插入单元,用于将所述第二CQL保存在所述用户终端的本地数据中,以及将所述第一哈希值插入所述关联表中。
在实施例中,因为未在本地数据库查找到与第一哈希值相同的第二哈希值,则说明本地数据库中没有存储对应查询参数的第二CQL,所以将第二CQL更新到本地数据库中,以及将所述第一哈希值插入预设的关联表中,以便于再次获取到上述查询参数后,直接从本地数据库中调取与其对应的CQL。
进一步地,上述自动生成CQL的装置,还包括:
取消调用单元,用于若查找到与所述第一哈希值相同的第二哈希值,调用与所述第一哈希值关联的所述第二CQL。
在本实施例中,因为存在与上述第一哈希值相同的第二哈希值,则说明用户终端的本地数据库中存储有对应第一哈希值的第二CQL,所以可以直接调用第二CQL,此时,无需运行上述提取组合单元20以执行“从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL”的过程,以降低编译消耗,提升性能和查询效率。
在一个实施例中,上述自动生成CQL的装置,还包括:
记录单元,用于若所述第二CQL为从所述数据库中直接调用的CQL,则记录该第二CQL被调用的次数;
平均计算单元,用于若在指定时间长度内,所述第二CQL被调用的次数大于第一预设值,则以所述次数除以所述指定时间长度计算出调用所述第二CQL的平均频率;
调用发送单元,用于以所述平均频率自动调用所述第二CQL,并将所述第二CQL发送给对应的服务器;
生成报告单元,用于将每一次接收到的所述服务器针对所述第二CQL的反馈信息生成可视化报告。
在本实施例中,因为第二CQL为从所述数据库中直接调用的CQL,当第二CQL被调用的次数达到了用户设置的第一预设值,则说明该第二CQL是用户经常使用的,既然如此,为了减少用户的操作,提高用户的体验,用户终端计算出一个用户调用第二CQL的平均频率,然后自动完成调用发送的步骤,然后将服务器的反馈信息生成一个可视化报告,当用户需要的时候,可以直接直接加载可视化报告即可,无需主动输入查询参数的过程。
在一个实施例中,上述自动生成CQL的装置,还包括:
清除单元,用于若在指定时间长度内,所述第二CQL被调用的次数为0,则将所述第二CQL从所述数据库中清除。
在本实施例中,上述指定时间长度是用户根据使用经验设置的时间长度,如一个月、半年等。在指定时间长度内,第三CQL被调用的次数为0,则说明该第三CQL基本是用户不需要的CQL,则可以将其清除,以提高数据库的可利用空间。
在一个实施例中,上述自动生成CQL的装置,包括:
生成报警单元,用于若未提取出所述第二CQL,则生成报警信息。
在本实施例中,上述报警信息可以为在前台界面显示的提醒语句界面,震动信息、声/光信息中的一种户多种的组合,以便于用户及时了解到未能成功获取到第二CQL,进而解决相应的问题。
本申请实施例的自动生成CQL的装置,预先将可能需要编译的多个功能的CQL编写成一条综合的第一CQL,然后通过接收用户输入的查询参数,依据预设的解析工具解析第一CQL,然后将与上述查询参数对应的相关语句提取出来,生成第二CQL,用户无需根据每一种查询情况都手动的编写一条CQL,提高查询的便利性和效率;将生成的第二CQL缓存到用户终端本地,当下一次再次查询相同的功能时,可以直接调用,进一步地提高效率和提高应用的性能。本申请还可以根据需求,不断地在第一CQL中续编、修改查询语句,提高应用的可维护性。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储第一CQL、各种历史的第二CQL等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种自动生成通用查询语言CQL的方法。
上述处理器执行上述自动生成通用查询语言CQL的方法,包括:用户终端获取用户输入的查询参数;从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL,其中,所述第一CQL为预先编译的CQL,所述第一CQL中包含有用于查询多个功能的CQL;将所述第二CQL发送给对应的服务器。
在一个实施例中,上述从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL的步骤之前,包括:计算所述查询参数的第一哈希值;到预设的关联表中查找与所述第一哈希值相同的第二哈希值,其中,所述关联表中记载有所述用户终端上用户历史输入的不同的查询参数对应的不同哈希值,所述关联表上的每一个哈希值关联一个存储在所述本地数据库中的CQL;若未查找到所述第二哈希值,则生成执行所述“从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL”的命令。
在一个实施例中,所述从预设的第一CQL中提取与所述查询参数相关的相关语句的步骤之后,还包括:将所述第二CQL保存在所述用户终端的本地数据中,以及将所述第一哈希值插入所述关联表中。
在一个实施例中,所述到预设的关联表中查找与所述第一哈希值相同的第二哈希值的步骤之后,包括:若查找到与所述第一哈希值相同的第二哈希值,调用与所述第一哈希值关联的所述第二CQL。
在一个实施例中,所述将所述第二CQL发送给对应的服务器的步骤之后,包括:若所述第二CQL为从所述数据库中直接调用的CQL,则记录该第二CQL被调用的次数;若在指定时间长度内,所述第二CQL被调用的次数大于第一预设值,则以所述次数除以所述指定时间长度计算出调用所述第二CQL的平均频率;以所述平均频率自动调用所述第二CQL,并将所述第二CQL发送给对应的服务器;将每一次接收到的所述服务器针对所述第二CQL的反馈信息生成可视化报告。
在一个实施例中,所述若所述第二CQL为从所述数据库中直接调用的CQL,则记录所述第二CQL被调用的次数的步骤之后,包括:若在指定时间长度内,所述第二CQL被调用的次数为0,则将所述第二CQL从所述数据库中清除。
在一个实施例中,所述从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL的步骤之后,包括:若未提取出所述第二CQL,则生成报警信息。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种自动生成通用查询语言CQL的方法,包括:用户终端获取用户输入的查询参数;从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL,其中,所述第一CQL为预先编译的CQL,所述第一CQL中包含有用于查询多个功能的CQL;将所述第二CQL发送给对应的服务器。
在一个实施例中,上述从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL的步骤之前,包括:计算所述查询参数的第一哈希值;到预设的关联表中查找与所述第一哈希值相同的第二哈希值,其中,所述关联表中记载有所述用户终端上用户历史输入的不同的查询参数对应的不同哈希值,所述关联表上的每一个哈希值关联一个存储在所述本地数据库中的CQL;若未查找到所述第二哈希值,则生成执行所述“从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL”的命令。
在一个实施例中,所述从预设的第一CQL中提取与所述查询参数相关的相关语句的步骤之后,还包括:将所述第二CQL保存在所述用户终端的本地数据中,以及将所述第一哈希值插入所述关联表中。
在一个实施例中,所述到预设的关联表中查找与所述第一哈希值相同的第二哈希值的步骤之后,包括:若查找到与所述第一哈希值相同的第二哈希值,调用与所述第一哈希值关联的所述第二CQL。
在一个实施例中,所述将所述第二CQL发送给对应的服务器的步骤之后,包括:若所述第二CQL为从所述数据库中直接调用的CQL,则记录该第二CQL被调用的次数;若在指定时间长度内,所述第二CQL被调用的次数大于第一预设值,则以所述次数除以所述指定时间长度计算出调用所述第二CQL的平均频率;以所述平均频率自动调用所述第二CQL,并将所述第二CQL发送给对应的服务器;将每一次接收到的所述服务器针对所述第二CQL的反馈信息生成可视化报告。
在一个实施例中,所述若所述第二CQL为从所述数据库中直接调用的
CQL,则记录所述第二CQL被调用的次数的步骤之后,包括:若在指定时间长度内,所述第二CQL被调用的次数为0,则将所述第二CQL从所述数据库中清除。
在一个实施例中,所述从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL的步骤之后,包括:若未提取出所述第二CQL,则生成报警信息。
综上所述,为本申请实施例中提供的计算机存储介质,预先将可能需要编译的多个功能的CQL编写成一条综合的第一CQL,然后通过接收用户输入的查询参数,依据预设的解析工具解析第一CQL,然后将与上述查询参数对应的相关语句提取出来,生成第二CQL,用户无需根据每一种查询情况都手动的编写一条CQL,提高查询的便利性和效率;将生成的第二CQL缓存到用户终端本地,当下一次再次查询相同的功能时,可以直接调用,进一步地提高效率和提高应用的性能。本申请还可以根据需求,不断地在第一CQL中续编、修改查询语句,提高应用的可维护性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种自动生成通用查询语言CQL的方法,其特征在于,包括:
用户终端获取用户输入的查询参数;
从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL,其中,所述第一CQL为预先编译的CQL,所述第一CQL中包含有用于查询多个功能的CQL;
将所述第二CQL发送给对应的服务器。
2.根据权利要求1所述的自动生成通用查询语言CQL的方法,其特征在于,所述从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL的步骤之前,包括:
计算所述查询参数的第一哈希值;
到预设的关联表中查找与所述第一哈希值相同的第二哈希值,其中,所述关联表中记载有所述用户终端上用户历史输入的不同的查询参数对应的不同哈希值,所述关联表上的每一个哈希值关联一个存储在所述本地数据库中的CQL;
若未查找到所述第二哈希值,则生成执行所述“从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL”的命令。
3.根据权利要求2所述的自动生成通用查询语言CQL的方法,其特征在于,所述从预设的第一CQL中提取与所述查询参数相关的相关语句的步骤之后,还包括:
将所述第二CQL保存在所述用户终端的本地数据中,以及将所述第一哈希值插入所述关联表中。
4.根据权利要求2所述的自动生成通用查询语言CQL的方法,其特征在于,所述到预设的关联表中查找与所述第一哈希值相同的第二哈希值的步骤之后,包括:
若查找到与所述第一哈希值相同的第二哈希值,则调用与所述第一哈希值关联的所述第二CQL。
5.根据权利要求4所述的自动生成通用查询语言CQL的方法,其特征在于,所述将所述第二CQL发送给对应的服务器的步骤之后,包括:
若所述第二CQL为从所述数据库中直接调用的CQL,则记录该第二CQL被调用的次数;
若在指定时间长度内,所述第二CQL被调用的次数大于第一预设值,则以所述次数除以所述指定时间长度计算出调用所述第二CQL的平均频率;
以所述平均频率自动调用所述第二CQL,并将所述第二CQL发送给对应的服务器;
将每一次接收到的所述服务器针对所述第二CQL的反馈信息生成可视化报告。
6.根据权利要求5所述的自动生成通用查询语言CQL的方法,其特征在于,所述若所述第二CQL为从所述数据库中直接调用的CQL,则记录所述第二CQL被调用的次数的步骤之后,包括:
若在指定时间长度内,所述第二CQL被调用的次数为0,则将所述第二CQL从所述数据库中清除。
7.根据权利要求1所述的自动生成通用查询语言CQL的方法,其特征在于,所述从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL的步骤之后,包括:
若未提取出所述第二CQL,则生成报警信息。
8.一种自动生成通用查询语言CQL的装置,其特征在于,包括:
获取单元,用于获取用户输入的查询参数;
提取组合单元,用于从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL,其中,所述第一CQL为预先编译的CQL,所述第一CQL中包含有用于查询多个功能的CQL;
发送单元,用于将所述第二CQL发送给对应的服务器。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910318708.4A CN110162538B (zh) | 2019-04-19 | 2019-04-19 | 自动生成通用查询语言cql的方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910318708.4A CN110162538B (zh) | 2019-04-19 | 2019-04-19 | 自动生成通用查询语言cql的方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110162538A true CN110162538A (zh) | 2019-08-23 |
CN110162538B CN110162538B (zh) | 2024-03-01 |
Family
ID=67639638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910318708.4A Active CN110162538B (zh) | 2019-04-19 | 2019-04-19 | 自动生成通用查询语言cql的方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110162538B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120124063A1 (en) * | 2010-11-12 | 2012-05-17 | Business Objects Software Ltd. | Method and system for specifying, preparing and using parameterized database queries |
US20140149419A1 (en) * | 2012-11-29 | 2014-05-29 | Altibase Corp. | Complex event processing apparatus for referring to table within external database as external reference object |
US20160147637A1 (en) * | 2014-11-25 | 2016-05-26 | Raghuvira Bhagavan | Contextual debugging of sql queries in database-accessing applications |
CN105701098A (zh) * | 2014-11-25 | 2016-06-22 | 国际商业机器公司 | 针对数据库中的表生成索引的方法和装置 |
CN105868249A (zh) * | 2015-12-15 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 数据查询控制方法及装置 |
WO2017010652A1 (ko) * | 2015-07-15 | 2017-01-19 | 포항공과대학교 산학협력단 | 자동질의응답 방법 및 그 장치 |
CN107451153A (zh) * | 2016-05-31 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 输出结构化查询语句的方法和装置 |
US20180218030A1 (en) * | 2017-01-31 | 2018-08-02 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a by orgid command term within a multi-tenant aware structured query language |
CN109063221A (zh) * | 2018-11-02 | 2018-12-21 | 北京百度网讯科技有限公司 | 基于混合策略的查询意图识别方法和装置 |
CN109299129A (zh) * | 2018-09-05 | 2019-02-01 | 深圳壹账通智能科技有限公司 | 自然语言的数据查询方法、装置、计算机设备及存储介质 |
-
2019
- 2019-04-19 CN CN201910318708.4A patent/CN110162538B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120124063A1 (en) * | 2010-11-12 | 2012-05-17 | Business Objects Software Ltd. | Method and system for specifying, preparing and using parameterized database queries |
US20140149419A1 (en) * | 2012-11-29 | 2014-05-29 | Altibase Corp. | Complex event processing apparatus for referring to table within external database as external reference object |
US20160147637A1 (en) * | 2014-11-25 | 2016-05-26 | Raghuvira Bhagavan | Contextual debugging of sql queries in database-accessing applications |
CN105701098A (zh) * | 2014-11-25 | 2016-06-22 | 国际商业机器公司 | 针对数据库中的表生成索引的方法和装置 |
WO2017010652A1 (ko) * | 2015-07-15 | 2017-01-19 | 포항공과대학교 산학협력단 | 자동질의응답 방법 및 그 장치 |
CN105868249A (zh) * | 2015-12-15 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 数据查询控制方法及装置 |
CN107451153A (zh) * | 2016-05-31 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 输出结构化查询语句的方法和装置 |
US20180218030A1 (en) * | 2017-01-31 | 2018-08-02 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a by orgid command term within a multi-tenant aware structured query language |
CN109299129A (zh) * | 2018-09-05 | 2019-02-01 | 深圳壹账通智能科技有限公司 | 自然语言的数据查询方法、装置、计算机设备及存储介质 |
CN109063221A (zh) * | 2018-11-02 | 2018-12-21 | 北京百度网讯科技有限公司 | 基于混合策略的查询意图识别方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110162538B (zh) | 2024-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112559554B (zh) | 一种查询语句优化方法及装置 | |
CN109558440A (zh) | 数据批量处理方法、装置、计算机设备及存储介质 | |
CN101021875A (zh) | 面向对象的数据库访问方法及系统 | |
CN104423982B (zh) | 请求的处理方法和处理设备 | |
CN107704511B (zh) | 一种sql优化方法及设备 | |
CN111046041B (zh) | 数据处理方法和装置、存储介质及处理器 | |
EP2622544A1 (en) | Method and arrangement for processing data | |
CN103152391A (zh) | 一种日志输出方法和装置 | |
CN110175157A (zh) | 一种列存储文件的查询方法及查询装置 | |
CN105095367A (zh) | 一种客户端数据的采集方法和装置 | |
CN108664657A (zh) | 一种大数据任务调度方法、电子设备、存储介质及平台 | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN110119410A (zh) | 工具书数据的处理方法及装置、计算机设备和存储介质 | |
CN110162538A (zh) | 自动生成通用查询语言cql的方法、装置和计算机设备 | |
CN103336671A (zh) | 从网络中获取数据的方法和设备 | |
CN110688400A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN116049193A (zh) | 数据存储方法及装置 | |
CN112416626B (zh) | 一种数据处理方法和装置 | |
CN106446080B (zh) | 数据查询的方法、查询服务设备、客户端设备和数据系统 | |
CN109344385A (zh) | 自然语言处理方法、装置、计算机设备和存储介质 | |
CN112632266B (zh) | 数据写入方法、装置、计算机设备及可读存储介质 | |
CN113868138A (zh) | 测试数据的获取方法、系统、设备及存储介质 | |
CN112579705A (zh) | 元数据采集方法、装置、计算机设备和存储介质 | |
CN104239576A (zh) | 查找HBase表列值中所有行的方法和装置 | |
CN108241679B (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 |