语句的处理方法、装置、电子设备以及计算机程序产品与流程
本技术涉及金融科技领域,具体而言,涉及一种语句的处理方法、装置、电子设备以及计算机程序产品。
背景技术:
1、在当前信息系统开发与数据库迁移场景中,多数据库环境已成为常态,工作人员需要在不同数据库平台之间进行部署、迁移或灰度切换。然而,不同数据库厂商对sql(structured query language,结构化查询语言)语法的支持存在显著差异,也即在分页机制、日期函数、排序表达式、索引优化语法等方面,存在语义相同但语法形式不兼容的问题。
2、为应对上述兼容性挑战,相关技术中采用人工干预方式进行sql语句的适配处理,首先由开发人员逐条审查全部sql语句,识别其中与目标数据库不兼容的语法元素,然后根据目标数据库的官方语法规范,手动重写每一条不兼容的sql语句,替换为兼容形式。修改完成后,需在目标数据库环境中进行全量回归测试,验证所有sql语句的执行结果、性能和语义一致性,确保业务功能不受影响。
3、上述人工处理方式虽在短期内可实现基础兼容,但由于大型系统关联的sql语句数量动辄数万条,人工排查与修改过程耗时极长,严重拖慢项目周期,难以应对频繁的数据库升级或新环境部署需求;其次,由于人工修改后的sql语句为静态文本,一旦目标数据库类型变更或版本升级,所有适配结果需重新审查与重写,耗时极长;最后,人工操作极易遗漏关键适配项,容易出现执行失败、返回错误结果的问题,进而引发服务中断等业务风险,严重制约系统的灵活性、可维护性与交付效率。
4、针对相关技术中通过业务线程执行查询语句时,因语法差异导致出现频繁的语义错误或执行失败的技术问题,目前尚未提出有效的解决方案。
技术实现思路
1、本技术的主要目的在于提供一种语句的处理方法、装置、电子设备以及计算机程序产品,以解决相关技术中通过业务线程执行查询语句时,因语法差异导致出现频繁的语义错误或执行失败的技术问题。
2、为了实现上述目的,根据本技术的一个方面,提供了一种语句的处理方法。该方法包括:获取目标业务线程关联的数据源类型,并根据数据源类型确定语句修改策略,其中,数据源类型是指目标业务线程匹配的数据库类型,语句修改策略是指对目标业务线程待执行的查询语句进行修改的策略;获取查询语句,对查询语句进行解析,得到查询语法树,其中,查询语法树用于结构化表征查询语句的语法结构;基于语句修改策略对查询语法树中的树节点进行修改,得到修改节点,并根据修改节点确定修改后的查询语句字符串;根据修改后的查询语句字符串替换查询语句,得到替换后的查询语句,并控制目标业务线程执行替换后的查询语句。
3、可选地,获取目标业务线程关联的数据源类型包括:在检测到目标业务线程触发语句执行操作的情况下,触发部署在目标业务线程的预设拦截器;控制预设拦截器调用中枢组件,并获取由中枢组件采集到的目标业务线程的元数据动态,并根据元数据动态确定数据源类型。
4、可选地,获取查询语句包括:触发部署在目标业务线程的预设拦截器的采集操作,获取预设拦截器采集到的初始查询语句;对初始查询语句进行预处理,得到查询语句,其中,预处理的方式至少包括以下之一:标准化处理、格式转换处理以及语句执行信息记录处理。
5、可选地,对查询语句进行解析,得到查询语法树包括:获取预设语句解析组件,根据数据源类型关联的语法规则对预设语句解析组件进行参数配置,得到语句解析组件,其中,语法规则包括数据源类型对应的语句的语义关系和嵌套结构;控制语句解析组件对查询语句进行解析,得到n个语法元素,根据n个语法元素构建得到查询语法树,其中,n为正整数。
6、可选地,基于语句修改策略对查询语法树中的树节点进行修改,得到修改节点,并根据修改节点确定修改后的查询语句字符串包括:获取查询语法树中的m个树节点,并获取数据源类型对应的语法规则,其中,m为正整数;在m个树节点中存在y个与语法规则不兼容的树节点的情况下,获取y个树节点的节点类型,得到y个节点类型,其中,y为正整数;从语句修改策略中提取每个节点类型对应的修改子策略,得到y个修改子策略;根据y个修改子策略对y个树节点进行修改,得到修改节点,并基于修改节点确定修改后的查询语句字符串。
7、可选地,根据y个修改子策略对y个树节点进行修改,得到修改节点,并基于修改节点确定修改后的查询语句字符串包括:根据每个节点类型确定每个树节点的优先级,得到y个优先级,并通过y个优先级确定y个树节点的修改顺序;根据修改顺序依次调用每个节点类型对应的修改子策略对每个树节点进行修改,得到修改节点,其中,对树节点进行修改的方式至少包括:修改树节点的属性值、替换树节点的节点类型、增删树节点以及对树节点关联的函数进行参数替换;根据修改节点和m-y个树节点构成修改后的查询语句字符串。
8、可选地,在获取查询语句之后,该方法还包括:根据查询语句以及数据源类型构建哈希缓存键,并根据哈希缓存键对缓存数据库进行查询;在缓存数据库中存储有哈希缓存键关联的查询语句的情况下,控制目标业务线程执行哈希缓存键关联的查询语句。
9、为了实现上述目的,根据本技术的另一方面,提供了一种语句的处理装置。该装置包括:第一获取单元,用于获取目标业务线程关联的数据源类型,并根据数据源类型确定语句修改策略,其中,数据源类型是指目标业务线程匹配的数据库类型,语句修改策略是指对目标业务线程待执行的查询语句进行修改的策略;第二获取单元,用于获取查询语句,对查询语句进行解析,得到查询语法树,其中,查询语法树用于结构化表征查询语句的语法结构;修改单元,用于基于语句修改策略对查询语法树中的树节点进行修改,得到修改节点,并根据修改节点确定修改后的查询语句字符串;替换单元,用于根据修改后的查询语句字符串替换查询语句,得到替换后的查询语句,并控制目标业务线程执行替换后的查询语句。
10、根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的可执行程序,其中,在可执行程序运行时控制计算机可读存储介质所在设备执行上述任意一项语句的处理方法。
11、根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,存储器存储有可执行程序,处理器,用于运行程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述任意一项语句的处理方法。
12、根据本发明实施例的另一方面,还提供了一种计算机程序产品,计算机程序产品包括计算机程序,其中,计算机程序被处理器执行时实现上述任意一项语句的处理方法。
13、在本技术实施例中,采用语句的处理的方式,通过获取目标业务线程关联的数据源类型,并根据数据源类型确定语句修改策略,其中,数据源类型是指目标业务线程匹配的数据库类型,语句修改策略是指对目标业务线程待执行的查询语句进行修改的策略;获取查询语句,对查询语句进行解析,得到查询语法树,其中,查询语法树用于结构化表征查询语句的语法结构;基于语句修改策略对查询语法树中的树节点进行修改,得到修改节点,并根据修改节点确定修改后的查询语句字符串;根据修改后的查询语句字符串替换查询语句,得到替换后的查询语句,并控制目标业务线程执行替换后的查询语句,解决了相关技术中通过业务线程执行查询语句时,因语法差异导致出现频繁的语义错误或执行失败的技术问题,通过获取目标业务线程关联的数据源类型以及语句修改策略,对查询语句进行解析,得到查询语法树,基于语句修改策略对查询语法树中的树节点进行修改,得到修改后的查询语句字符串,根据修改后的查询语句字符串替换查询语句,并控制目标业务线程执行替换后的查询语句,进而达到了减少执行查询语句时因语法差异引发的语义错误与执行失败的技术效果。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com