CN111414377A - 结构化查询语句的处理方法、装置及存储介质 - Google Patents

结构化查询语句的处理方法、装置及存储介质 Download PDF

Info

Publication number
CN111414377A
CN111414377A CN202010150866.6A CN202010150866A CN111414377A CN 111414377 A CN111414377 A CN 111414377A CN 202010150866 A CN202010150866 A CN 202010150866A CN 111414377 A CN111414377 A CN 111414377A
Authority
CN
China
Prior art keywords
variable field
structured query
database
query statement
parameter 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.)
Granted
Application number
CN202010150866.6A
Other languages
English (en)
Other versions
CN111414377B (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.)
Weimin Insurance Agency Co Ltd
Original Assignee
Weimin Insurance Agency Co Ltd
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 Weimin Insurance Agency Co Ltd filed Critical Weimin Insurance Agency Co Ltd
Priority to CN202010150866.6A priority Critical patent/CN111414377B/zh
Publication of CN111414377A publication Critical patent/CN111414377A/zh
Application granted granted Critical
Publication of CN111414377B publication Critical patent/CN111414377B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Landscapes

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

Abstract

本发明实施例涉及一种结构化查询语句的处理方法、装置及存储介质,所述方法包括:获取待执行的结构化查询语句;确定结构化查询语句中变量字段的类型,以及变量字段对应的当前值;根据变量字段的类型确定查询策略;从与查询策略对应的数据库中查询变量字段对应的目标值;将结构化查询语句中的当前值替换为目标值,以及执行包含有目标值的结构化查询语句,通过设置变量部分的替换值存储于数据库中,保证替换值的来源的真实性,以及避免出现重名变量名之间的影响,在开发人员编辑代码过程中仅需要编写好包含有参数信息的变量字段,在执行该结构化查询语句前,自动从数据库中查询对应的目标值并完成替换,进而提升SQL开发人员的编程效率。

Description

结构化查询语句的处理方法、装置及存储介质
技术领域
本发明实施例涉及计算机领域,尤其涉及一种结构化查询语句的处理方法、装置及存储介质。
背景技术
Hive是基于分布式***基础架构(Hadoop)的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供结构化查询语言(Structured Query Language,SQL)查询功能,能将SQL语句转变成编辑模型(MapReduce)任务来执行。
在现有业务中Hive的常用的SQL语句由两部分组成,一部分为不变量部分(固定不变的处理逻辑SQL代码),另一部分为变量部分(运行指定的参数信息);SQL开发人员对于SQL语句的编辑,通常采用字符串替换的方式,将SQL语句中变量部分用特定字符进行填充,在执行该SQL语句时将特定字符中的值替换掉原变量部分对应的值。
然而,上述相关技术中,对于特定字符中对应值的来源需要通过SQL开发人员进行确认,以及特定字符中对应值还需要SQL开发人员设计相应的业务逻辑或代码表对该值进行维护,以便于后续的使用,因此,特定字符替换的方式对于SQL开发人员而言存在诸多不便。
发明内容
鉴于此,为解决上述技术问题或部分技术问题,本发明实施例提供一种结构化查询语句的处理方法、装置及存储介质。
本发明实施例提供一种结构化查询语句的处理方法,包括:
获取待执行的结构化查询语言结构化查询语句;
确定所述结构化查询语句中变量字段的类型,以及所述变量字段对应的当前值;
根据所述变量字段的类型确定所述查询策略;
从与所述查询策略对应的数据库中查询所述变量字段对应的目标值;
将所述结构化查询语句中的当前值替换为所述目标值,以及执行包含有所述目标值的结构化查询语句。
本发明实施例提供一种结构化查询语句的处理装置,包括:
获取模块,用于获取待执行的结构化查询语句;
确定模块,用于确定所述结构化查询语句中变量字段的类型,以及所述变量字段对应的当前值;
所述确定模块,还用于根据所述变量字段的类型确定所述查询策略;
查询模块,用于从与所述查询策略对应的数据库中查询所述变量字段对应的目标值;
控制模块,用于将所述结构化查询语句中的当前值替换为所述目标值,以及执行包含有所述目标值的结构化查询语句。
本发明实施例提供一种计算机设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的结构化查询语句的处理程序,以实现上述第一方面中任一项所述的结构化查询语句的处理方法。
本发明实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述第一方面中任一项所述的结构化查询语句的处理方法。
本发明实施例提供的结构化查询语句的处理方案,通过获取待执行的结构化查询语句;确定所述结构化查询语句中变量字段的类型,以及所述变量字段对应的当前值;根据所述变量字段的类型确定所述查询策略;从与所述查询策略对应的数据库中查询所述变量字段对应的目标值;将所述结构化查询语句中的当前值替换为所述目标值,以及执行包含有所述目标值的结构化查询语句,通过设置变量部分的替换值存储于数据库中,该数据库中的值直接由SQL开发人员进行维护,保证替换值的来源的真实性,以及避免出现重名变量名之间的影响,在SQL开发人员编辑代码过程中仅需要编写好包含有参数信息的变量字段,在执行该结构化查询语句前,自动从数据库中查询对应的目标值并完成替换,进而提升SQL开发人员的编程效率。
附图说明
图1为本发明实施例提供的一种结构化查询语句的处理方法的流程示意图;
图2为本发明实施例提供的另一种结构化查询语句的处理方法的流程示意图;
图3为本发明实施例提供的又一种结构化查询语句的处理方法的流程示意图;
图4为本发明实施例提供的再一种结构化查询语句的处理方法的流程示意图;
图5为本发明实施例提供的一种结构化查询语句的处理装置的结构示意图;
图6为本发明实施例提供的一种的计算机设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
图1为本发明实施例提供的一种结构化查询语句的处理方法的流程示意图,如图1所示,该方法具体包括:
S11、获取待执行的结构化查询语句。
本发明实施例提供的结构化查询语句的处理方法应用于Hive,在Hive中结构化查询语句执行抽取、清洗、转换、装载(Extract Transform Load,ETL)之前对结构化查询语句的处理,进而实现对结构化查询语句的自定义,结构化查询语句可以包括:SQL语句。
进一步地,SQL开发人员完成代码的编辑后,该代码中包含一个或多个SQL语句,在代码执行过程中,检测该代码中是否存在待执行的SQL语句,若检测到存在SQL语句,在该SQL语句执行ETL处理之前,对该SQL语句进行处理。
S12、确定所述SQL语句中变量字段的类型,以及所述变量字段对应的当前值。
对SQL语句进行分析,通过变量字段的占位符从SQL语句中提取变量字段,通过分析变量字段的组成确定变量字段的类型,以及变量字段中参数对应的当前值。
在本实施例中,变量字段的类型可以包括两种类型,一种类型为直接以参数名称直接定义,另一种类型为采用函数调用指示参数的形式进行定义。
S13、根据所述变量字段的类型确定所述查询策略。
S14、从与所述查询策略对应的数据库中查询所述变量字段对应的目标值。
在本发明实施例中根据变量字段的类型的不同对应设置不同的数据库,该数据库用于存储变量字段中参数对应的目标值,该目标值执行SQL语句对应的标准值。
例如,在第一数据库中存储直接以参数名称直接定义类型对应的目标值,在第二数据库中存储采用函数的形式调用参数进行定义类型的目标值。
根据变量字段类型的不同,确定不同的查询策略(不同数据库中查询),根据该查询策略可确定待查询的数据库,并从该数据库中基于变量字段中参数的标识查询该变量字段对应的目标值。
S15、将所述结构化查询语句中的当前值替换为所述目标值,以及执行包含有所述目标值的结构化查询语句。
在SQL语句执行前,将SQL语句变量字段中参数对应的当前值替换为数据库中的目标值,在目标值替换完成后,Hive ETL通过调用执行该SQL语句。
本发明实施例提供的SQL语句的处理方法,通过获取待执行的结构化查询语言SQL语句;确定所述SQL语句中变量字段的类型,以及所述变量字段对应的当前值;根据所述变量字段的类型确定所述查询策略;从与所述查询策略对应的数据库中查询所述变量字段对应的目标值;将所述SQL语句中的当前值替换为所述目标值,以及执行包含有所述目标值的SQL语句,通过设置变量部分的替换值存储于数据库中,该数据库中的值直接由SQL开发人员进行维护,保证替换值的来源的真实性,以及避免出现重名变量名之间的影响,在SQL开发人员编辑代码过程中仅需要编写好包含有参数信息的变量字段,在执行该SQL语句前,自动从数据库中查询对应的目标值并完成替换,进而提升SQL开发人员的编程效率。
图2为本发明实施例提供的另一种结构化查询语句的处理方法的流程示意图,如图2所示,该方法具体包括:
S21、根据***当前执行业务的业务信息,生成存储有包含有所述变量字段对应参数信息的第一数据库。
在本实施例中,***根据当前执行业务的业务信息,业务信息包括当前业务的执行状态和时间,自动跟踪执行业务时对应的结构化查询语句,并记录结构化查询语句中的参数以及该参数的对应值,将该参数和对应值生成参数集,结构化查询语句可以包括:SQL语句。
例如,通过“${task_status_tid}”定义任务当前的执行状态,任务taskID:123,那么任何其他任务都可以通过读取task_status_123获取任务taskID在发生读取的时候的状态,任务状态可以5种状态,例如包括:未启动、启动、执行、结束和出错。
进一步地,编程用户根据实际需求确定***待执行的业务,编辑业务通过所述SQL语句执行的代码,并根据该SQL语句中的变量字段从参数集中选择相关的参数(key),该参数为SQL语句中变量字段携带的参数,根据该参数的参数信息(例如,第一参数名称)确定对应的第一预设值(value),该第一预设值为默认值,将第一参数名称和对应的第一预设值存储于第一数据库中,即第一数据库存储的是默认参数(Default Parameter,DP)。
例如,在第一数据库中存储的默认参数可以是:
"${before_day_1}":"2019-02-17",历史前1天日期
"${before_day_1_stamp}":"1550332800",历史前1天时间时间戳
"${before_day_7}":"2019-02-11",历史前7天日期
"${before_day_7_stamp}":"1549814400,历史前7天时间时间戳
"${before_day_30}":"2019-01-19",历史前30天日期
S22、根据所述业务信息确定待执行的结构化查询语句。
***跟踪当前业务的执行状态和执行时间从已完成编程的代码中获取待执行的结构化查询语言SQL语句。
S23、确定所述结构化查询语句中变量字段的类型,以及所述变量字段对应的当前值。
对SQL语句进行分析,通过变量字段的占位符从SQL语句中提取变量字段,通过分析变量字段的组成确定变量字段的类型,以及变量字段中参数对应的当前值。
在本实施例中,变量字段的类型可以包括第一类型,第一类型为变量字段直接以参数名称进行编写的SQL语句变量字段。
例如,包含第一类型变量字段的SQL语句可以是:
Select*from where pt_day="${before_day_30}",变量字段对应的第一参数名称为“pt_day”,对应的当前值为“"${before_day_30}"”。
S24、若所述变量字段为第一类型,则确定所述查询策略为从所述第一数据库中查询。
S25、从所述第一类型的所述变量字段中确定对应的所述第一参数名称。
S26、从所述第一数据库中查询与所述第一参数名称对应的第一预设值。
若确定变量字段为第一类型,则表明SQL语句中变量字段的当前值对应的第一预设值存储于第一数据库中,相应的查询策略为从第一数据库中查询第一参数名称对应的第一预设值。
解析该SQL语句,从该SQL语句的变量字段中提取第一参数名称,根据该第一参数名称查询第一数据库,从第一数据库中匹配出与该第一参数名称对应的第一预设值。
例如,从第一数据库中查询第一参数名称(pt_day)对应的第一预设值为”2020-01-01”。
S27、将所述结构化查询语句中的当前值替换为所述第一预设值,以及执行包含有所述第一预设值的结构化查询语句。
在SQL语句执行前,将SQL语句变量字段中第一参数名称对应的当前值替换为第一预设值,在第一预设值替换完成后,Hive ETL通过调用执行该SQL语句。
例如,将SQL语句Select*from where pt_day="${before_day_30}"中的"${before_day_30}"替换为”2020-01-01”,即替换后的SQL语句为:where pt_day=”2020-01-01”。
在本发明实施例的一可选方案中,若参数集中参数的对应值不符合编程人员的需求,编程人员需要重新定义该参数的对应值,此时,编程人员可采用输入自定义参数名称(第二参数名称)及该自定义参数名称对应的自定义值(第二预设值),实现对SQL语句的自定义编写,第二参数名称和第一参数名称可以相同或者不同,具体请参照如下步骤:
图3为本发明实施例提供的又一种结构化查询语句的处理方法的流程示意图;
S31、根据***当前执行业务的业务信息,生成存储有包含有所述变量字段对应参数信息的第一数据库。
S31与上述图2中的S21类似,可参照图2相关步骤的描述,为简洁描述,在此,不作赘述。
S32、检测是否接收到输入的第二参数名称以及所述第二参数名称对应的第二预设值。
在***的编程界面提供第二参数名称以及所述第二参数名称对应的第二预设值的窗口,***通过检测该窗口判断是否编程人员通过该窗口输入第二参数名称以及第二参数名称对应的第二预设值。
需要说明的是此处的第二参数名称和第一参数名称可以相同,也可以不相同。
S33若接收到所述第二参数名称和所述第二预设值,则将所述第二参数名称和所述第二预设值存储于第二数据库中。
若检测到接收到第二参数名称和第二预设值,则将第二参数名称和第二预设值存储于第二数据库中,第二数据库用于存储编程人员自定义输入的参数名称以及对应的自定义值,即,第二数据库存储的是用户定义参数(Customer Define Parameter,CDP)。
S34、根据所述业务信息获取待执行的结构化查询语句。
S35、确定所述结构化查询语句中变量字段的类型,以及所述变量字段对应的当前值。
对SQL语句进行分析,通过变量字段的占位符从SQL语句中提取变量字段,通过分析变量字段的组成确定变量字段的类型,以及变量字段中参数对应的当前值。
在本实施例中,变量字段的类型可以包括第一类型,第一类型为变量字段直接以参数名称进行编写的SQL语句变量字段,该参数名称包括第一参数名称和/或第二参数名称。
S36、若所述变量字段为第一类型且接收到所述第二参数名称和所述第二预设值,则确定所述查询策略为从所述第二数据库中查询。
若变量字段为第一类型且接收到所述第二参数名称和所述第二预设值,按照第二数据库的优先级高于第一数据库的规则,优先从第二数据库中查询SQL语句变量字段中的参数名称。
S37、从所述第一类型的所述变量字段中确定对应的所述第二参数名称。
S38、从所述第二数据库中查询与所述第二参数名称对应的所述第二预设值。
解析该SQL语句,从该SQL语句的变量字段中提取第二参数名称,根据该第二参数名称查询第二数据库,从第二数据库中匹配出与该第二参数名称对应的第二预设值。
S39、将所述结构化查询语句中的当前值替换为所述第二预设值,以及执行包含有所述第二预设值的结构化查询语句。
在本发明实施例的一可选方案中,若第二数据库中不存在SQL语句的变量字段中参数名称,则需要从第一数据库中查询该参数名称,执行S39。
S310、从所述第一类型的所述变量字段中确定对应的所述第一参数名称。
S311、从所述第一数据库中查询与所述第一参数名称对应的第一预设值。
S312、将所述结构化查询语句中的当前值替换为所述第一预设值,执行包含有所述第一阈值的结构化查询语句。
需要说明的是:在本实施例中第二数据库中存储的第二参数名称和第一数据库中存储的第一参数名称可能相同,在第二参数名称与第一参数名称相同的情况下,第二参数名称对应的第二预设值与第一参数名称对应的第一预设值不同,且第二参数名称与第一参数名称相同的情况下优先采用第二数据库中的第二预设值进行替换。
例如,第一数据库中存储有第一参数名称A、B、C、D和F,A对应的第一预设值为1、B对应的第一预设值为2、C对应的第一预设值为3、D对应的第一预设值为4、F对应的第一预设值为5。
第二数据库中存储有第二参数名称A和B,A对应的第二预设值为6、B对应的第二预设值为7。
在SQL语句执行前,SQL语句变量字段中的参数名称同时存在于第一数据库中和第二数据库中,按照第二数据库的优先级别高于第一数据的规则查询预设值,进行SQL语句变量字段中当前值的替换。
若SQL语句中变量字段中携带的参数名称为A,则优先从第二数据库中查询是否存在第二参数名称A,若存在从第二数据库中查询A对应的目标值为6(而非第一数据库中对应的第一预设值1);若SQL语句中变量字段中携带的参数名称为C,经判断第一数据库中并不存在第二参数名称C,因此从第一数据库中查询C对应的第一预设值为3。
图4为本发明实施例提供的再一种结构化查询语句的处理方法的流程示意图,如图4所示,该方法具体包括:
S41、接收输入的预设函数,将所述预设函数存储于第三数据库中。
在本实施例中,预先为编程人员提供多个第三参数名称(key)以及第三名称对应的第三预设值(value)的参数集,用于从参数集中选择编写代码需要用到的第三参数名称和对应的第三预设值以及采用预先规定的输入窗口内编写设定格式的函数以调用该第三参数名称和对应的第三预设值,再将编写好的函数存储于第三数据库中,第三数据库中可以理解为存储的是用户自定义功能参数(CustomerDefineFunctionParameter,CDFP)。
例如,预设函数可以是:
deal_cnt_last_30days_of_car(过去30天成交的车险数量)
通过该预设函数实现查询过去30天成交车险数量的逻辑并返回查询结果。
S42、通过标识检测,从代码段中获取携带有预设标识的语句作为待执行所述结构化查询语句。
编程人员在编写代码过程中,对于结构化查询语句变量字段需要编写预设函数+预设标识,设置预设标识的目的在于通过该标识可以快速检测到预设函数,结构化查询语句可以包括:SQL语句。
进一步地,在对编程人员编写后的代码进行执行时,通过标识检测,从代码段中获取携带有预设标识的语句作为待执行SQL语句,进而确定SQL语句中的变量字段。
S43、确定所述结构化查询语句中变量字段的类型,以及所述变量字段对应的当前值。
若确定SQL语句中变量字段包含预设函数+预设标识,则确定该SQL语句中变量字段为第二类型,并确定SQL语句中变量字段对应的当前值。
S44、若所述变量字段为第二类型,则确定所述查询策略为从所述第三数据库中查询。
若确定变量字段为第二类型,则表明SQL语句中变量字段的当前值对应的第三预设值存储于第三数据库中,相应的查询策略为从第三数据库中查询第三参数名称对应的第三预设值。
S45、从所述第二类型的所述变量字段中确定对应的所述预设函数。
S46、调用所述预设函数从所述第三数据库中查询与所述预设函数对应的所述第三参数名称,以及确定所述第三参数名称对应的所述第三预设值。
例如,第三参数名称对应的第三预设值为:
${cus_def_order_CntCarOrder}
defCntCarOrder(input_args,sys_args):
”'
rtn={}
rtn[‘car_30days_order_cnt’]=‘’
rtn[‘car_10days_order_cnt’]=‘’
returnrtn
第三参数名称为:CntCarOrder,第三预设值为‘car_10days_order_cnt’。
S47、将所述结构化查询语句中的当前值替换为所述第三预设值,以及执行包含有所述目标值的结构化查询语句。
例如,
替换前的SQL语句为:Select*from order_cnt_table where cnt=‘${car_30_days_order_cnt}’
替换后的SQL语句为:
Select*from order_cnt_table where cnt=‘${car_10_days_order_cnt}’
本发明实施例提供的SQL语句的处理方法,预先设置第三数据库,并在该第三数据库中存储函数形式表示的第三参数名称和第三预设值,保证替换值的来源的真实性,以及避免出现重名变量名之间的影响,通过预设函数+预设标识的形式编写代码,便于后续预设函数的识别,也即便于确定SQL语句中的变量字段,再通过函数调用的形式直接从第三数据库查询第三预设值并完成替换,进而提升编程人员的编程效率。
图5为本发明实施例提供的一种结构化查询语句的处理装置的结构示意图,如图5所示,该装置具体包括:
获取模块51,用于获取待执行的结构化查询语句;
确定模块52,用于确定所述结构化查询语句中变量字段的类型,以及所述变量字段对应的当前值;
所述确定模块52,还用于根据所述变量字段的类型确定所述查询策略;
查询模块53,用于从与所述查询策略对应的数据库中查询所述变量字段对应的目标值;
控制模块54,用于将所述结构化查询语句中的当前值替换为所述目标值,以及执行包含有所述目标值的结构化查询语句。
在一个可能的实施方式中,所述装置还包括:生成模块55,用于根据***当前执行业务的业务信息,生成存储有包含有所述变量字段对应参数信息的第一数据库;
其中,所述业务通过所述结构化查询语句执行,所述第一数据库存储有所述结构化查询语句中变量字段对应的第一参数名称以及所述第一参数名称对应的第一预设值。
在一个可能的实施方式中,所述获取模块51,具体用于根据所述业务信息获取待执行的结构化查询语句。
在一个可能的实施方式中,所述确定模块52,具体用于若所述变量字段为第一类型,则确定所述查询策略为从所述第一数据库中查询。
在一个可能的实施方式中,所述查询模块53,具体用于从所述第一类型的所述变量字段中确定对应的所述第一参数名称;从所述第一数据库中查询与所述第一参数名称对应的第一预设值。
在一个可能的实施方式中,所述装置还包括:检测模块56,检测是否接收到输入的第二参数名称以及所述第二参数名称对应的第二预设值;若接收到所述第二参数名称和所述第二预设值,则将所述第二参数名称和所述第二预设值存储于第二数据库中。
在一个可能的实施方式中,所述确定模块52,具体用于若所述变量字段为第一类型且接收到所述第二参数名称和所述第二预设值,则确定所述查询策略为从所述第二数据库中查询;
所述查询模块53,具体用于从所述第一类型的所述变量字段中确定对应的所述第二参数名称;从所述第二数据库中查询与所述第二参数名称对应的所述第二预设值。
在一个可能的实施方式中,所述控制模块54,具体用于根据所述第二参数名称的优先级高于所述第一参数名称的规则将所述结构化查询语句中的当前值替换为所述第二预设值或所述第一预设值。
在一个可能的实施方式中,所述装置还包括:接收模块57,用于接收输入的预设函数,所述预设函数中包含第三参数名称以及所述第三参数名称对应的第三预设值;将所述预设函数存储于第三数据库中。
在一个可能的实施方式中,所述获取模块51,具体用于通过标识检测,从代码段中获取携带有预设标识的语句作为待执行所述结构化查询语句;
其中,所述代码段编写过程中将预设函数设置对应的预设标识。
在一个可能的实施方式中,所述确定模块52,具体用于若所述变量字段为第二类型,则确定所述查询策略为从所述第三数据库中查询。
在一个可能的实施方式中,所述查询模块53,具体用于从所述第二类型的所述变量字段中确定对应的所述预设函数;调用所述预设函数从所述第三数据库中查询与所述预设函数对应的所述第三参数名称,以及确定所述第三参数名称对应的所述第三预设值。
本实施例提供的结构化查询语句的处理装置可以是如图5中所示的结构化查询语句的处理装置,可执行如图1-4中结构化查询语句的处理方法的所有步骤,进而实现图1-4所示结构化查询语句的处理方法的技术效果,具体请参照图1-4相关描述,为简洁描述,在此不作赘述。
图6为本发明实施例提供的一种的计算机设备的结构示意图,图6所示的计算机设备600包括:至少一个处理器601、存储器602、至少一个网络接口604和其他用户接口603。计算机设备600中的各个组件通过总线***605耦合在一起。可理解,总线***605用于实现这些组件之间的连接通信。总线***605除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线***605。
其中,用户接口603可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器602可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本文描述的存储器602旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器602存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作***6021和应用程序6022。
其中,操作***6021,包含各种***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序6022,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序6022中。
在本发明实施例中,通过调用存储器602存储的程序或指令,具体的,可以是应用程序6022中存储的程序或指令,处理器601用于执行各方法实施例所提供的方法步骤,例如包括:
获取待执行的结构化查询语句;确定所述结构化查询语句中变量字段的类型,以及所述变量字段对应的当前值;根据所述变量字段的类型确定所述查询策略;从与所述查询策略对应的数据库中查询所述变量字段对应的目标值;将所述结构化查询语句中的当前值替换为所述目标值,以及执行包含有所述目标值的结构化查询语句。
在一个可能的实施方式中,根据***当前执行业务的业务信息,生成存储有包含有所述变量字段对应参数信息的第一数据库;
其中,所述业务通过所述结构化查询语句执行,所述第一数据库存储有所述结构化查询语句中变量字段对应的第一参数名称以及所述第一参数名称对应的第一预设值。
在一个可能的实施方式中,根据所述业务信息获取待执行的结构化查询语句。
在一个可能的实施方式中,若所述变量字段为第一类型,则确定所述查询策略为从所述第一数据库中查询。
在一个可能的实施方式中,从所述第一类型的所述变量字段中确定对应的所述第一参数名称;从所述第一数据库中查询与所述第一参数名称对应的第一预设值。
在一个可能的实施方式中,检测是否接收到输入的第二参数名称以及所述第二参数名称对应的第二预设值;若接收到所述第二参数名称和所述第二预设值,则将所述第二参数名称和所述第二预设值存储于第二数据库中。
在一个可能的实施方式中,若所述变量字段为第一类型且接收到所述第二参数名称和所述第二预设值,则确定所述查询策略为从所述第二数据库中查询;从所述第一类型的所述变量字段中确定对应的所述第二参数名称;从所述第二数据库中查询与所述第二参数名称对应的所述第二预设值。
在一个可能的实施方式中,根据所述第二参数名称的优先级高于所述第一参数名称的规则将所述结构化查询语句中的当前值替换为所述第二预设值或所述第一预设值。
在一个可能的实施方式中,接收输入的预设函数,所述预设函数中包含第三参数名称以及所述第三参数名称对应的第三预设值;将所述预设函数存储于第三数据库中。
在一个可能的实施方式中,通过标识检测,从代码段中获取携带有预设标识的语句作为待执行所述结构化查询语句;
其中,所述代码段编写过程中将预设函数设置对应的预设标识。
在一个可能的实施方式中,若所述变量字段为第二类型,则确定所述查询策略为从所述第三数据库中查询。
在一个可能的实施方式中,从所述第二类型的所述变量字段中确定对应的所述预设函数;调用所述预设函数从所述第三数据库中查询与所述预设函数对应的所述第三参数名称,以及确定所述第三参数名称对应的所述第三预设值。
上述本发明实施例揭示的方法可以应用于处理器601中,或者由处理器601实现。处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本实施例提供的计算机设备可以是如图6中所示的计算机设备,可执行如图1-2中结构化查询语句的处理方法的所有步骤,进而实现图1-2所示结构化查询语句的处理方法的技术效果,具体请参照图1-2相关描述,为简洁描述,在此不作赘述。
本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在结构化查询语句的处理设备侧执行的结构化查询语句的处理方法。
所述处理器用于执行存储器中存储的结构化查询语句的处理程序,以实现以下在结构化查询语句的处理设备侧执行的结构化查询语句的处理方法的步骤:
获取待执行的结构化查询语句;确定所述结构化查询语句中变量字段的类型,以及所述变量字段对应的当前值;根据所述变量字段的类型确定所述查询策略;从与所述查询策略对应的数据库中查询所述变量字段对应的目标值;将所述结构化查询语句中的当前值替换为所述目标值,以及执行包含有所述目标值的结构化查询语句。
在一个可能的实施方式中,根据***当前执行业务的业务信息,生成存储有包含有所述变量字段对应参数信息的第一数据库;
其中,所述业务通过所述结构化查询语句执行,所述第一数据库存储有所述结构化查询语句中变量字段对应的第一参数名称以及所述第一参数名称对应的第一预设值。
在一个可能的实施方式中,根据所述业务信息获取待执行的结构化查询语句。
在一个可能的实施方式中,若所述变量字段为第一类型,则确定所述查询策略为从所述第一数据库中查询。
在一个可能的实施方式中,从所述第一类型的所述变量字段中确定对应的所述第一参数名称;从所述第一数据库中查询与所述第一参数名称对应的第一预设值。
在一个可能的实施方式中,检测是否接收到输入的第二参数名称以及所述第二参数名称对应的第二预设值;若接收到所述第二参数名称和所述第二预设值,则将所述第二参数名称和所述第二预设值存储于第二数据库中。
在一个可能的实施方式中,若所述变量字段为第一类型且接收到所述第二参数名称和所述第二预设值,则确定所述查询策略为从所述第二数据库中查询;从所述第一类型的所述变量字段中确定对应的所述第二参数名称;从所述第二数据库中查询与所述第二参数名称对应的所述第二预设值。
在一个可能的实施方式中,根据所述第二参数名称的优先级高于所述第一参数名称的规则将所述结构化查询语句中的当前值替换为所述第二预设值或所述第一预设值。
在一个可能的实施方式中,接收输入的预设函数,所述预设函数中包含第三参数名称以及所述第三参数名称对应的第三预设值;将所述预设函数存储于第三数据库中。
在一个可能的实施方式中,通过标识检测,从代码段中获取携带有预设标识的语句作为待执行所述结构化查询语句;
其中,所述代码段编写过程中将预设函数设置对应的预设标识。
在一个可能的实施方式中,若所述变量字段为第二类型,则确定所述查询策略为从所述第三数据库中查询。
在一个可能的实施方式中,从所述第二类型的所述变量字段中确定对应的所述预设函数;调用所述预设函数从所述第三数据库中查询与所述预设函数对应的所述第三参数名称,以及确定所述第三参数名称对应的所述第三预设值。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种结构化查询语句的处理方法,其特征在于,包括:
获取待执行的结构化查询语句;
确定所述结构化查询语句中变量字段的类型,以及所述变量字段对应的当前值;
根据所述变量字段的类型确定所述查询策略;
从与所述查询策略对应的数据库中查询所述变量字段对应的目标值;
将所述结构化查询语句中的当前值替换为所述目标值,以及执行包含有所述目标值的结构化查询语句。
2.根据权利要求1所述的方法,其特征在于,所述方法包括:
根据***当前执行业务的业务信息,生成存储有包含有所述变量字段对应参数信息的第一数据库;
其中,所述业务通过所述结构化查询语句执行,所述第一数据库存储有所述结构化查询语句中变量字段对应的第一参数名称以及所述第一参数名称对应的第一预设值。
3.根据权利要求2所述的方法,其特征在于,所述获取待执行的结构化查询语言结构化查询语句,包括:
根据所述业务信息获取待执行的结构化查询语言结构化查询语句。
4.根据权利要求3所述的方法,其特征在于,所述根据所述变量字段的类型确定所述查询策略,包括:
若所述变量字段为第一类型,则确定所述查询策略为从所述第一数据库中查询。
5.根据权利要求4所述的方法,其特征在于,所述从与所述查询策略对应的数据库中查询所述变量字段对应的目标值,包括:
从所述第一类型的所述变量字段中确定对应的所述第一参数名称;
从所述第一数据库中查询与所述第一参数名称对应的第一预设值。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
检测是否接收到输入的第二参数名称以及所述第二参数名称对应的第二预设值;
若接收到所述第二参数名称和所述第二预设值,则将所述第二参数名称和所述第二预设值存储于第二数据库中。
7.根据权利要求6所述的方法,其特征在于,所述根据所述变量字段的类型确定所述查询策略,包括:
若所述变量字段为第一类型且接收到所述第二参数名称和所述第二预设值,则确定所述查询策略为从所述第二数据库中查询;
所述从与所述查询策略对应的数据库中查询所述变量字段对应的目标值,包括:
从所述第一类型的所述变量字段中确定对应的所述第二参数名称;
从所述第二数据库中查询与所述第二参数名称对应的所述第二预设值。
8.根据权利要求7所述的方法,其特征在于,所述将所述结构化查询语句中的当前值替换为所述目标值,包括:
根据所述第二参数名称的优先级高于所述第一参数名称的规则将所述结构化查询语句中的当前值替换为所述第二预设值或所述第一预设值。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收输入的预设函数,所述预设函数中包含第三参数名称以及所述第三参数名称对应的第三预设值;
将所述预设函数存储于第三数据库中。
10.根据权利要求9所述的方法,其特征在于,所述获取待执行的结构化查询语言结构化查询语句,包括:
通过标识检测,从代码段中获取携带有预设标识的语句作为待执行所述结构化查询语句;
其中,所述代码段编写过程中将预设函数设置对应的预设标识。
11.根据权利要求10所述的方法,其特征在于,所述根据所述变量字段的类型确定所述查询策略,包括:
若所述变量字段为第二类型,则确定所述查询策略为从所述第三数据库中查询。
12.根据权利要求11所述的方法,其特征在于,所述从与所述查询策略对应的数据库中查询所述变量字段对应的目标值,包括:
从所述第二类型的所述变量字段中确定对应的所述预设函数;
调用所述预设函数从所述第三数据库中查询与所述预设函数对应的所述第三参数名称,以及确定所述第三参数名称对应的所述第三预设值。
13.一种结构化查询语句的处理装置,其特征在于,包括:
获取模块,用于获取待执行的结构化查询语句;
确定模块,用于确定所述结构化查询语句中变量字段的类型,以及所述变量字段对应的当前值;
所述确定模块,还用于根据所述变量字段的类型确定所述查询策略;
查询模块,用于从与所述查询策略对应的数据库中查询所述变量字段对应的目标值;
控制模块,用于将所述结构化查询语句中的当前值替换为所述目标值,以及执行包含有所述目标值的结构化查询语句。
14.一种计算机设备,其特征在于,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的结构化查询语句的处理程序,以实现权利要求1~12中任一项所述的结构化查询语句的处理方法。
15.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1~12中任一项所述的结构化查询语句的处理方法。
CN202010150866.6A 2020-03-05 2020-03-05 结构化查询语句的处理方法、装置及存储介质 Active CN111414377B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010150866.6A CN111414377B (zh) 2020-03-05 2020-03-05 结构化查询语句的处理方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010150866.6A CN111414377B (zh) 2020-03-05 2020-03-05 结构化查询语句的处理方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN111414377A true CN111414377A (zh) 2020-07-14
CN111414377B CN111414377B (zh) 2023-10-24

Family

ID=71490893

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010150866.6A Active CN111414377B (zh) 2020-03-05 2020-03-05 结构化查询语句的处理方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN111414377B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966707A (zh) * 2020-08-21 2020-11-20 北京明略昭辉科技有限公司 查询语句生成方法、装置、电子设备和计算机可读介质
CN112506931A (zh) * 2020-12-15 2021-03-16 平安银行股份有限公司 数据查询方法、装置、电子设备及存储介质
CN112579627A (zh) * 2020-12-28 2021-03-30 上海明略人工智能(集团)有限公司 Sql时间参数配置方法、***、电子设备及存储介质
CN115470229A (zh) * 2022-08-30 2022-12-13 昆仑数智科技有限责任公司 数据表处理方法、装置、电子设备及存储介质
WO2023045054A1 (zh) * 2021-09-27 2023-03-30 苏宁易购集团股份有限公司 结构化查询语句的生成方法、装置和计算机设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101561806A (zh) * 2008-04-17 2009-10-21 北京启明星辰信息技术股份有限公司 Db2数据库操作的信息提取和审计方法及其装置、***
CN103729448A (zh) * 2013-12-31 2014-04-16 深圳市科漫达智能管理科技有限公司 一种数据查询方法及装置
CN107038207A (zh) * 2017-02-20 2017-08-11 阿里巴巴集团控股有限公司 一种数据查询方法、数据处理方法及装置
US20170262498A1 (en) * 2016-03-09 2017-09-14 Vinyl Development LLC Source independent query language
CN107291907A (zh) * 2017-06-20 2017-10-24 深圳中兴网信科技有限公司 一种业务数据多语言存储和查询方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101561806A (zh) * 2008-04-17 2009-10-21 北京启明星辰信息技术股份有限公司 Db2数据库操作的信息提取和审计方法及其装置、***
CN103729448A (zh) * 2013-12-31 2014-04-16 深圳市科漫达智能管理科技有限公司 一种数据查询方法及装置
US20170262498A1 (en) * 2016-03-09 2017-09-14 Vinyl Development LLC Source independent query language
CN107038207A (zh) * 2017-02-20 2017-08-11 阿里巴巴集团控股有限公司 一种数据查询方法、数据处理方法及装置
CN107291907A (zh) * 2017-06-20 2017-10-24 深圳中兴网信科技有限公司 一种业务数据多语言存储和查询方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966707A (zh) * 2020-08-21 2020-11-20 北京明略昭辉科技有限公司 查询语句生成方法、装置、电子设备和计算机可读介质
CN112506931A (zh) * 2020-12-15 2021-03-16 平安银行股份有限公司 数据查询方法、装置、电子设备及存储介质
CN112579627A (zh) * 2020-12-28 2021-03-30 上海明略人工智能(集团)有限公司 Sql时间参数配置方法、***、电子设备及存储介质
CN112579627B (zh) * 2020-12-28 2024-02-23 上海明略人工智能(集团)有限公司 Sql时间参数配置方法、***、电子设备及存储介质
WO2023045054A1 (zh) * 2021-09-27 2023-03-30 苏宁易购集团股份有限公司 结构化查询语句的生成方法、装置和计算机设备
CN115470229A (zh) * 2022-08-30 2022-12-13 昆仑数智科技有限责任公司 数据表处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111414377B (zh) 2023-10-24

Similar Documents

Publication Publication Date Title
CN111414377A (zh) 结构化查询语句的处理方法、装置及存储介质
US20060143594A1 (en) Using code analysis to generate documentation
CN108762743B (zh) 一种数据表操作代码生成方法及装置
US8910117B2 (en) Customizing and performing policy in version control
CN110580189A (zh) 生成前端页面的方法、装置、计算机设备以及存储介质
CN106951231B (zh) 一种计算机软件开发方法及装置
CN106991100B (zh) 数据导入方法及装置
CN106557307B (zh) 业务数据的处理方法及处理***
CN115017058B (zh) 一种内核模块的测试方法、装置、电子设备及存储介质
CN112416710A (zh) 用户操作的记录方法、装置、电子设备及存储介质
CN110806866A (zh) 一种前端管理***的生成方法及装置
CN114610286A (zh) 开发文档的生成方法、装置、计算机设备及存储介质
JP5900193B2 (ja) 更新判定プログラムおよび更新判定装置
US8769498B2 (en) Warning of register and storage area assignment errors
JP4867864B2 (ja) 性能データ収集・表示システム、性能データ表示装置、そのプログラム
CN111552503A (zh) 工程文件处理方法、装置、计算机设备及存储介质
CN116955393A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN115757411A (zh) 一种股市信息数据管理方法、***、设备及存储介质
CN110231955B (zh) 代码处理方法、装置、计算机设备和存储介质
US20070156775A1 (en) Metadata transformation in copy and paste scenarios between heterogeneous applications
CN113703671B (zh) 一种数据块擦除方法及相关装置
CN110162507B (zh) 快照覆写方法、装置、计算机设备及存储介质
CN116804991A (zh) 数据管理方法、装置、电子设备和计算机可读存储介质
CN118200402A (zh) 通讯协议的处理方法、装置、存储介质和电子设备
CN117111937A (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