首页> 中国专利> 用于一次性获取关联数据的方法系统、电子设备以及计算机可读介质

用于一次性获取关联数据的方法系统、电子设备以及计算机可读介质

摘要

一种数据聚合获取方法,用于按照相互调用的多个微服务之间的调用关系而一次地获取多个数据库表中的所有被调用的数据,方法包括:配置多个配置项,通过多个配置项来配置各个微服务对各个数据库表的调用操作,每个配置项均包括调用模板和所属数据库表信息;配置调用模板,在调用模板中指定与相应的配置项对应的调用操作所要调用的数据;以及数据聚合获取,基于多个配置项的调用模板和所属数据库表信息以及多个数据库表,聚合地获得所有被调用的数据。本发明的上述方法,能够通过配置的方式一次性聚合地获取不同微服务对应的多个专属数据库中所有有关联的数据,有利于快速、准确地查看数据,提高数据分析效率。

著录项

  • 公开/公告号CN113821509A

    专利类型发明专利

  • 公开/公告日2021-12-21

    原文格式PDF

  • 申请/专利权人 北京一人一亩田网络科技有限公司;

    申请/专利号CN202110988388.0

  • 发明设计人 贺汉林;于天奇;

    申请日2021-08-26

  • 分类号G06F16/22(20190101);G06F16/242(20190101);G06F16/28(20190101);

  • 代理机构11464 北京奉思知识产权代理有限公司;

  • 代理人邹轶鲛;石红艳

  • 地址 100080 北京市海淀区西小口路66号中关村东升科技园B-6号楼A座六层A602A室

  • 入库时间 2023-06-19 13:46:35

说明书

技术领域

本发明涉及计算机技术领域,具体涉及一种用于一次地获取存在相互调用关系的多个微服务的所涉及的所有数据库中的所有被调用的数据的数据获取方法、系统、电子设备以及计算机可读介质。

背景技术

近年来,互联网业务飞速发展,分布式系统也渐渐成为标配。在分布式系统中,往往涉及到很多微服务之间相互调用共同完成一项业务。为了避免运维的复杂性,通常多个微服务使用同一个数据库下的不同库表。随着业务发展,一个数据库下的库表越来越多,技术人员难以分辨一个业务实际用到的都是哪些库表,这大大影响了数据分析的效率。

针对上述问题,目前存在一种分库技术,即按照微服务的维度进行拆分,将一个微服务用到的库表单独放到一个专属的数据库中,通过可视化软件登录该数据库,即可查看所有库表的所有数据。或者,通过数据库连接命令进入查看。

发明内容

技术问题

然而,随着业务越来越复杂,一个微服务的专属数据库中的库表仍然会越来越多。当业务关联多个表,且表的数据产生依赖而形成很深的树形结构时,如需查询业务数据是否正常,往往需要写复杂的调用并且对数据进行人工判断,这样工作量大、效率低下且容易遗漏,无法高效直观地检查某一具体业务影响到的库表,而且自身的繁琐性和运维成本也增加。

实际业务生产的数据往往分布在不同的数据库及不同的库表中,且数据之间是有方向和依赖的,依赖也是有先后的。所以在分析数据时,需要能够对横跨不同数据库的有关联的数据基于一定的配置规则串联起来做可视化,以满足不同的业务定制化需要。

有鉴于此,本发明提供一种数据聚合获取方法,通过可视化配置的方式一次性聚合出不同数据库或库表中所有有关联的数据,使得即使在调用关系复杂的业务场景下,也能够准确提取所有关联数据并且将所有关联数据可视化,提高分析效率。

问题解决方案

根据本发明的一个方面,提供一种数据聚合获取方法,用于按照相互调用的多个微服务之间的调用关系而一次地获取多个数据库表中的所有被调用的数据,其特征在于,所述方法包括:

配置多个配置项,通过所述多个配置项来配置各个所述微服务对各个所述数据库表的调用操作,每个所述配置项均包括调用模板和所属数据库表信息;

配置所述调用模板,在所述调用模板中指定相应的所述配置项对应的所述调用操作所要调用的数据;以及

数据聚合获取,基于所述多个配置项的所述调用模板和所述所属数据库表信息以及所述多个数据库表,聚合地获得所述所有被调用的数据。

可选地,根据本发明的一个方面的方法,其中,所述调用模板为SQL模板,并且配置所述调用模板包括在所述SQL模板的自定义部分中指定与相应的所述配置项对应的所述调用操作所要调用的数据。

可选地,根据本发明的一个方面的方法,其中,每个所述配置项还包括唯一的编号,并且配置所述调用模板还包括在所述SQL模板的自定义部分中指定所述编号,以指定与相应的所述配置项相关联的配置项,从而建立所述调用关系。

可选地,根据本发明的一个方面的方法,其中,配置所述调用模板还包括在所述SQL模板的自定义部分中指定字段信息,以指定所要获取的具体数据的字段。

可选地,根据本发明的一个方面的方法,其中,通过将所述SQL模板的自定义部分根据预定的解析规则替换为目标数据而生成标准SQL,并且基于所述标准SQL加载所述目标数据,从而获得与相应的所述配置项对应的所述调用操作所要调用的数据。

可选地,根据本发明的一个方面的方法,其中,基于所述多个配置项的所述调用模板和所述所属数据库表信息以及所述多个数据库表聚合地获得所述所有被调用的数据包括:

将所述多个所述配置项作为整套配置存入要调用所有的所述微服务的业务的业务数据库中,并且

当处理所述业务时,从所述业务数据库加载所述整套配置以进行处理。

可选地,根据本发明的一个方面的方法,其中,基于所述多个配置项的所述调用模板和所述所属数据库表信息以及所述多个数据库表聚合地获得所述所有被调用的数据包括:

每个所述配置项根据自身的所述数据库表信息从所述多个数据库表中加载数据集并且存储在内存的数据结构中,供其他所述配置项调用。

根据本发明的另一方面,提供一种数据聚合获取系统,用于按照相互调用的多个微服务之间的调用关系而一次地获取多个数据库表中的所有被调用的数据,其特征在于,所述系统包括:

配置项配置模块,用于配置多个配置项,通过所述多个配置项来配置各个所述微服务对各个所述数据库表的调用操作,每个所述配置项均包括调用模板和所属数据库表信息;

调用模板配置模块,在所述调用模板中指定相应的所述配置项对应的所述调用操作所要调用的数据;以及

数据聚合获取模块,基于所述多个配置项的所述调用模板和所述所属数据库表信息以及所述多个数据库表,聚合地获得所述所有被调用的数据。

根据本发明的再一方面,提供一种具有厨具功能的电子设备,包括:

一个或多个处理器;以及

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述根据本发明的一个方面的任意一项所述的数据聚合获取方法。

根据本发明的又一方面,提供一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现上述根据本发明的一个方面的任意一项的数据聚合获取方法。

发明的有益效果

根据本发明的数据聚合获取方法,通过以配置项的方式在可视化面板中对与每个微服务的每次调用操作进行配置,能够整体地配置多个微服务所涉及的存在于不同数据库表中的具有复杂依赖关系的数据之间的调用,以实现一次性聚合地获取不同微服务及多个数据库中所有有关联的数据并且进行可视化显示,从而有利于快速、准确地查看数据,提高数据分析效率。此外,通过上述配置化的方式,使得系统搭建方便,支持快速删除和新增,扩展性高。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明一优选实施例的数据聚合获取方法的主要流程的示意图;

图2是可视化面板的配置项的实例的图;

图3是示出配置项的SQL模板以及配置项的依赖关系的示意图;

图4示出应用根据本发明的一优选实施例的数据聚合获取方法获取的数据的实例;

图5是根据本发明一优选实施例的数据聚合获取系统的主要模块的示意图。

具体实施方式

以下将结合本发明的具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分优选实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1是根据本发明一优选实施例的数据聚合获取方法的主要流程的示意图。根据本实施例的数据聚合获取方法主要包括如下步骤:配置多个配置项,每个所述配置项分别对应于一个微服务对一个数据库表的一个调用操作,每个所述配置项均包括调用模板和所属数据库表信息;配置所述调用模板,在所述调用模板中指定与相应的所述配置项对应的所述调用操作所要调用的数据;数据聚合获取,基于所述多个配置项的所述调用模板和所述所属数据库表信息以及所述多个数据库表聚合地获得所述所有被调用的数据。

下面详细说明根据本实施例的数据聚合获取方法的各步骤。

首先,对于调用多个微服务的业务,根据业务场景所关联的不同数据源,设置一套可视化面板。如图2所示,可视化面板包括多个配置项,每个配置项对应于一个微服务对一个数据库表的一个调用操作,并且包含被分配的唯一的编号、调用模板、所属的数据库表信息和数据描述等。注意,配置项与微服务不存在严格的一一对应关系。配置项的核心目标是库表,如果某个微服务涉及到多张库表,即一个微服务使用的数据库表有多个,则该微服务相应地被配置有多个配置项,每个配置项用于获取一个数据库表的数据。

在本实施例中,使用SQL模板作为调用模板,并支持不同配置项之间以编号的方式进行数据集的引用。SQL模板是一种能够通过语法解析器进行解析的调用模板,其包括在SQL中插入的自定义部分,即在SQL语句中嵌入特殊的非SQL官方的符号,通过用语法解析器将这些符号解析成想要的数据,最终得到标准的SQL以获取数据。

如图3所示,SQL模板的自定义语法类型例如为{编号.字段},“{}”括起来的部分表示自定义部分,内容为“编号.字段”。“编号”指的是本次调用操作所依赖的配置项被分配的唯一的编号,“字段”为编号所对应的配置项所属的数据库和/或库表中所含有的字段,通过“编号.字段”即能够指向所要引用的数据库的数据集。除了“{}”以外,可以作为自定义部分的非官方符号还包括一些其他的自定义符号,如“if”。之所以用非官方的符号,是为了避免替换掉有效的SQL语法关键字,从而仅将自定义的非官方符号替换掉,就可以将整个模板翻译成标准的SQL语句,用于执行。另外,上述解析指的是通过非官方符号找到SQL模板中的自定义部分,依照预定的解析规则将其替换为要调用的目标数据并且回填到SQL模板中,以生成标准的SQL,从而进一步去加载所需的数据。

应注意,不同编号的配置项的SQL模板对编号的引用不必是顺序性的,而是可以相互交叉地引用任意存在的编号,但是不能存在循环引用。

在完成每个配置项的SQL模板的配置后,即创建好了所有配置项的数据之间的引用关系。然后,将配置好的所有配置项作为针对所属业务的整套配置存入特定的业务数据库中,当需要处理该业务时,通过该业务的业务类型字段而将整套配置从业务数据库加载到处理系统中,以进行后续的处理。

在业务处理中,例如当查看一个业务的数据时,处理系统从业务数据库加载该业务对应的整套配置,以获得业务所涉及的所有配置项。系统能够基于配置项信息,例如编号、所属数据库表信息、数据库描述等,解析各个配置项的SQL模板,以获得微服务之间的数据引用关系。随后,系统根据各个配置项所属的数据库加载被调用的目标数据,存储在内存的数据结构中,供其他配置项调用。最后,系统将所有配置项解析出的结果输出到可视化系统中,以一次性地聚合地显示当前业务所涉及的所有微服务调用的有关联的数据。

由于每个配置项可能会读取不同的数据库,所以实际解析时会根据配置时指定的数据库去读取数据。对于引用对象不存在的数据,将隐性地认为其结果数据集不存在,以表明业务实际未发生到这个环节,没有产生数据。

图4示出应用根据本实施例的数据聚合获取方法获取的数据的实例。在该实例中,首先通过配置可视化面板选择性添加涉及的微服务的具体配置项,配置各个配置项的SQL模板、所属数据库名称、数据用途描述等。然后,在处理系统中,基于各配置项的信息和各数据库,利用公知的语法解析器,例如SQLParser,将SQL模板解析为具体的目标数据集。最后,将所有解析出的数据集作为结果集输出到可视化系统中显示。显示结果如图4所示。

以上描述了根据本发明的优选实施例的数据聚合处理方法。

根据本发明的数据聚合获取方法,通过在可视化面板中对各个微服务的一个或多个配置项进行配置,能够整体地配置微服务间的数据引用关系,以实现一次性聚合地获取不同微服务对应的多个数据库中所有有关联的数据并且进行可视化显示,从而有利于快速、准确地查看数据,提高数据分析效率。此外,通过上述配置化的方式,使得系统搭建方便,支持快速删除和新增,扩展性高。

本发明还提供一种数据聚合获取系统。如图5所示,所述系统主要包括:

配置项配置模块,用于配置多个配置项,通过所述多个配置项来配置各个所述微服务对各个所述数据库表的调用操作,每个所述配置项均包括调用模板和所属数据库表信息;

调用模板配置模块,在所述调用模板中指定相应的所述配置项对应的所述调用操作所要调用的数据;以及

数据聚合获取模块,基于所述多个配置项的所述调用模板和所属数据库表以及多个数据库表聚合地获得所述被调用的所有数据。

作为另一方面,本发明还提供了一种具有数据聚合获取功能的电子设备,其包括:一个或多个处理器;以及存储装置,用于存储一个或多个程序。当一个或多个程序被一个或多个处理器执行时,所述电子设备使得一个或多个处理器实现如在本发明的优选实施例中所述的数据聚合获取方法。

作为又一方面,本发明还提供了一种计算机可读介质,该计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,所述程序被处理器执行以实现如在本发明的优选实施例中所述的数据聚合获取方法。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号