一种可配置化数据查询及数据关系的自动发现方法与流程

文档序号:28966206发布日期:2022-02-19 14:24阅读:180来源:国知局
1.本发明涉及数据查询及数据库表
技术领域
:,具体来说是一种可配置化数据查询及数据关系的自动发现方法。
背景技术
::2.在信息披露领域,大量的数据需要对外披露,数据查询和高效直观的数据检索成为一个挑战。数据查询通常的做法是对单个表的进行建模,然后定制查询条件进行硬编码,这种开发效率较低。数据检索是指通过自然语言描述的方式进行数据检索,其中涉及到数据推理时,需要知道不同实体表之间的关系,常用的做法是通过人工或者一定的规则配置来构建,这种做法效率低下。因此本文提出一种骨架式架构,采用配置化开发的方式,同时解决开发效率低下以及人工配置表关系繁琐的问题。技术实现要素:3.本发明提供了一种可配置化数据查询及数据关系的自动发现方法,用以解决基于大量数据查询的快速开发问题以及大量数据的关联关系发现问题。4.为了实现上述目的,设计一种可配置化数据查询及数据关系的自动发现方法,其特征在于方法具体如下:5.s0:新增一个查询业务场景,确定好查询涉及的数据库表;6.s1:配置输入输出参数及相关校验逻辑,对输入输出字段信息进行配置以及高频查询是否进行缓存;7.s2:配置查询业务逻辑,对某一个业务场景进行sql逻辑进行配置,采用mybatis语法进行配置;8.s3:查询器,将外部的查询id进行拦截转发到s4骨架程序;9.s4:查询骨架程序,通过对s1及s2的配置文件进行加载读取,a.用户的输入根据s1的配置进行校验,同时结果也通过s1的配置进行过滤和转换;b.与数据库交互通过s2的配置文件进行获取对应的数据;10.s5:memache缓存,高频且数据更新频率低的查询请求采用了缓存;11.s6:表关系解析器,利用s2的配置,将每一个sql配置中的表及对应的关联字段解析出来并存储;12.s7:专业领域知识定义器,通过读取数据库相关字段的值并进行统计分析,得到对应的专业领域数据类型,然后根据专业领域数据类型建立起关联关系;13.s8:专业领域知识解析器,根据s7定义好的知识进行关联关系匹配;14.s9:自定义关系解析器,提供管理界面,进行手工配置;15.s10:关联关系输出,合并去重s6、s8、s9的关联关系,并将结果输出,以供其它程序调用。16.本发明还具有如下优选的技术方案:17.1.memache缓存对查询的结果解析缓存,缩短响应时间和提高并发量,将有关系的表放在同一个命名空间中,自动建立起表名和表空间的映射关系,并将其链式管理起来,对同一个表的不同接口能够做到统一管理,实现任何一个接口数据有变化时,能够同时刷新所有涉及的数据库表对应的接口,保证了memcache缓存数据的一致性。18.2.表关系解析器根据sql语法自动进行解析,构建表间的关联关系,通过扫描全局配置文件,完成表关系解析,并将其存入数据库,供后续的关联分析或逻辑推理使用。19.3.专业领域知识解析器自动扫描字段的值,通过统计分析的规则来定义是否满足自定义类型,随机抽取百分之n的字段值,如果都能满足某种专业领域数据类型的定义,则认为该字段为该专业领域数据类型,对符合要求的字段,根据专业领域数据类型建立映射关系。20.本发明同现有技术相比,其优点在于:21.1.通过骨架程序的设计,能够通过配置化实现快速开发,提升开发效率和开发质量,避免开发过程其它不规范的写法导致的可能的漏洞或者缺陷;22.2.通过对表空间的链式管理,可以实现任意表数据的更新,实现全局的缓存同步刷新。23.3.能满足日常的数据披露的同时,能够从大量的数据中自动发现表间的数据关系,为基于关系型数据库构建的知识图谱,智能检索系统,自动问答等系统快速构建关联关系,免去了人工繁琐且容易遗漏的问题。附图说明24.图1是专业领域知识解析器产生关联关系的流程图;25.图2是自定义关联关系配置界面;26.图3是快速查询和关系发现流程图。具体实施方式27.下面结合附图对本发明作进一步说明,本发明的结构和原理对本专业的人来说是非常清楚的。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。28.本发明为一种可配置化数据查询及数据关系的自动发现方法,具体步骤如下:29.1.配置输入输出参数及相关校验逻辑。对输入输出字段信息进行配置(如涉及的输入、输出字段,输入参数的长度及合法性规则、高频查询是否进行缓存等信息系)。在应用前置对参数校验提升系统的安全等级,可以预防sql注入等。格式定义(配置1)如下:[0030][0031]2.配置查询业务逻辑。采用springmvc架构构建骨架程序,对配置文件进行解析处理。采用mybatis来解析sql配置文件。[0032]实现快速开发的核心配置(配置2),结构如下:[0033][0034]3.查询骨架程序。通过对配置1及配置2文件进行加载读取用以实现查询逻辑。读取配置1对输入输出进行校验和过滤;读取配置2获取数据相关的逻辑,并获取查询数据。[0035]4.memcached缓存:[0036]对查询的结果解析缓存,缩短响应时间和提高并发量。将有关系的表放在同一个命名空间中,配置也在配置1中实现《propertyname="tablenames"value="table_c,table_d"》,采用命名空间的模式管理memcache,对同一个表的不同接口能够做到统一管理,实现任何一个接口数据有变化时,能够同时刷新所有涉及的数据库表对应的接口。[0037]5.表关系解析器[0038]根据配置2文件,根据sql语法自动进行解析,构建表间的关联关系。如配置2,自动构建了table_c的id和table_d的id字段的对应关系。通过扫描全局配置文件,完成表关系解析,并将其存入数据库,供后续的关联分析或逻辑推理使用。[0039]6.专业领域知识解析器[0040]表间的关联关系除了显示的通过sql的自然连接、左连接、右连接在配置文件中显示的定义外,还有一些潜在的隐性关联关系没有被定义。为了保证后续表间推理准确性外,还可以额外的通过一些领域知识来定义表间的关联关系。如证券领域,很多基础信息表都有证券代码字段,我们可以通过这些领域特有知识来建立他们之间的关联。专业领域数据类型结构定义举例如下:[0041]type-stock:basic_info|stock_code[0042]type-fund:fund_basic_info|fund_code[0043]type-bond:bond_basic_info|bond_code[0044]type-security:sec_basic_info|sec_code[0045]第1行解释说明:数据类型为股票(type-stock)数据类型,涉及字段为basic_info表的stock_code的字段,那么我可以把类似这种类型的字段建立起映射关系。[0046]专业领域知识解析器生产关联关系的流程图如图1所示。[0047]自动扫描字段的值,通过统计分析的规则来定义是否满足自定义类型,如随机抽取百分之n的字段值,如果都能满足某种类型(type-stock)的定义,则认为该字段为该类型。对符合要求的字段,根据数据类型建立映射关系[0048]7.自定义解析器[0049]自定义类型是既不能通过配置文件自动关联的,也不能通过专业知识自动构建的,但确实需要将两者关联起来的特殊场景,属于需求比较少的业务场景,可以提供手工配置页面进行配置。[0050]因此整个关联关系的构建能基本能满足数据查询推理过程的需要。[0051]本发明所述的可配置化数据查询及数据关系的自动发现方法,图1出示了流程图,该系统包括:[0052]s0:新增一个查询业务场景,确定好查询涉及的数据库表。[0053]s1:配置输入输出参数及相关校验逻辑。对输入输出字段信息进行配置(如涉及的输入、输出字段,输入参数的长度及合法性规则等)以及高频查询是否进行缓存。[0054]s2:配置查询业务逻辑。对某一个业务场景进行sql逻辑进行配置,采用mybatis语法进行配置。[0055]s3:查询器。将外部的查询id进行拦截转发到s4骨架程序。[0056]s4:查询骨架程序。通过对s1及s2的配置文件进行加载读取。(a)用户的输入根据s1的配置进行校验,同时结果也通过s1的配置进行过滤和转换;(b)与数据库交互通过s2的配置文件进行获取对应的数据。[0057]s5:memache缓存。高频且数据更新频率低的查询请求可以采用缓存,可以减少数据库访问次数,降低接口响应时间,增加数据查询效率及系统吞吐量。至此一个快速的可以配置化查询流程已完成。s6-s10为关系发现的流程。[0058]s6:表关系解析器。利用s2的配置,将每一个sql配置中的表及对应的关联字段解析出来并存储。[0059]s7:专业领域知识定义器。通过读取数据库相关字段的值并进行统计分析,得到对应的数据类型,然后根据数据类型建立起关联关系。[0060]s8:专业领域知识解析器。根据s7定义好的知识进行关联关系匹配。[0061]s9:自定义关系解析器。提供管理界面,对一些特殊要求的关系进行手工配置。[0062]s10:关联关系输出。合并去重s6、s8、s9的关联关系,并将结果输出,以供其它程序调用。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1