System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及通信,尤其涉及一种具有可配置接口实现数据库查询的方法及装置。
技术介绍
1、对数据库进行查询时,特别是碰到大数据量时,往往会出现速度缓慢的问题,影响用户的使用。
2、现有技术中的一种可灵活配置接口和快速交付服务的系统(申请号:cn201811489090.x)通过配置可以新增接口或修改接口,省去开发、测试、上线等环节,提高交付速度,节省沟通成本,但当涉及到跨库关联查询时只能通过写脚本进行操作,这种处理方式涉及复杂sql操作时可能需要写多个脚本,导致查询生成数据效率变慢,并且当涉及关系数据库和非关系数据库关联查询时,脚本复杂,返回查询速度慢。
3、另外一方面,现有技术中的一种多源异构数据的处理方法、计算机设备及存储介质(申请号:cn202210300339.8)由于逻辑库、数据源元数据以及逻辑库元数据存储于内存缓存,使内存缓存无需存储数据源中的物理表,提高内存缓存的利用率,同时由于内存缓存具有较高的数据读写效率,因此能够快速的对sql语句进行响应,提高多源异构数据的查询效率,但其有着不同库数据源数据抽取效率问题,当通过内存缓存数据源数据,当数据量过大,内存不够用会导致程序运行异常,特别是涉及大表时抽取数据会导致数据处理缓慢,返回结果耗时过长。
4、现有技术中没有一种很好的系统解决方案,能够实现数据快速返回查询结果。
技术实现思路
1、本专利技术所要解决的技术问题是针对现有技术的上述不足,提出一种具有可配置接口实现数据库查询的方法及装置
2、第一方面,本专利技术提供一种具有可配置接口实现数据库查询的方法,所述方法包括如下步骤:
3、步骤s1:配置数据库查询的目标接口;所述配置数据库查询的目标接口是对数据库查询请求进行鉴权通过后进行的;
4、步骤s2:根据目标接口的业务需求,确定出目标接口所涉及的目标表;
5、其中,所述目标表中的数据所对应的数据库为目标数据库;
6、步骤s3:判断目标数据库是否只为一个:
7、若目标数据库是只为一个,则直接在所述目标数据库中执行sql语句得到查询结果,之后进入步骤s5;
8、若目标数据库不是只为一个,则进入步骤s4;
9、步骤s4:通过直接查询或沉淀查询,得到查询结果,之后进入步骤s5;
10、步骤s5:返回查询结果,以完成可配置接口快速查询数据库。
11、进一步地,所述步骤s4中,通过直接查询或沉淀查询,得到查询结果,具体包括:
12、直接在集中关系型数据库执行sql语句,返回查询结果;或,
13、从沉淀的redis结果集数据库中得到查询结果;
14、其中,所述集中关系型数据库和所述redis结果集数据库均为预先建立的数据库,所述集中关系型数据库和所述redis结果集数据库均包括所述目标表所涉及的所有数据。
15、进一步地,所述从沉淀的redis结果集数据库中得到查询结果,具体包括如下步骤:
16、配置定时任务,执行sql语句以将数据沉淀到redis结果集数据库中;
17、根据数据库查询请求,从redis结果集数据库中返回查询结果。
18、进一步地,所述步骤s1中,对数据库查询请求进行鉴权,包括:
19、对数据库查询请求进行静态鉴权;或,
20、对数据库查询请求进行动态鉴权。
21、进一步地,所述静态鉴权的具体过程如下:
22、步骤a1:接收数据库查询请求;
23、步骤a2:从数据库查询请求中获取api密钥,所述api密钥为授权的用户或应用程序生成的唯一密钥;
24、步骤a3:判断api密钥是否与预先配置的密钥匹配:若api密钥与预先配置的密钥匹配,则鉴权通过,否则鉴权不通过;
25、所述动态鉴权的具体过程如下:
26、步骤b1:接收数据库查询请求;
27、步骤b2:验证请求用户的身份和权限;
28、步骤b3:根据请求用户的身份和权限,动态判断出请求用户是否有权限查询数据库:
29、若判断出请求用户有权限查询数据库,则鉴权通过,否则鉴权不通过。
30、进一步地,所述步骤s1之前,还包括步骤s0,
31、步骤s0:进行数据采集,以使所有数据库中的数据具有一致性和实时性;
32、所述步骤s0,具体包括如下步骤:
33、根据表名和字段信息确定需要采集的目标数据;所述目标数据包括多源异构数据;
34、将目标数据的数据变更操作转换为消息,并将这些消息上传到kafka消息队列中;以及订阅kafka消息队列中的消息,并根据接收到kafka消息后进行目标数据的数据变更操作;
35、其中,所述数据变更操作包括数据新增操作、数据删除操作及数据修改操作;所述数据新增操作是将数据插入到相应的数据表中,所述数据删除操作是将相应的数据从响应的数据表中删除,所述数据修改操作是采用先删除后插入的方式进行修改的。
36、第二方面,本专利技术提供一种具有可配置接口实现数据库查询的装置,所述装置包括:
37、配置单元,用于配置数据库查询的目标接口;所述配置数据库查询的目标接口是对数据库查询请求进行鉴权通过后进行的;
38、第一处理单元,与所述配置单元连接,用于根据目标接口的业务需求,确定出目标接口所涉及的目标表;
39、其中,所述目标表中的数据所对应的数据库为目标数据库;
40、判定单元,与所述第一处理单元连接,用于判断目标数据库是否只为一个;
41、第二处理单元,与所述判定单元连接,用于在所述判定单元判定出目标数据库是只为一个后,直接在所述目标数据库中执行sql语句得到查询结果;
42、第三处理单元,与所述判定单元连接,用于在所述判定单元判定出目标数据库不是只为一个后,通过直接查询或沉淀查询,得到查询结果;
43、第四处理单元,分别与所述第二处理单元和所述第三处理单元连接,用于返回查询结果,以完成可配置接口快速查询数据库。
44、进一步地,所述第三处理单元包括:
45、第一处理模块,与所述判定单元连接,用于在所述判定单元判定出目标数据库不是只为一个后,通过直接在集中关系型数据库执行sql语句,返回查询结果;
46、第二处理模块,与所述判定单元连接,用于在所述判定单元判定出目标数据库不是只为一个后,从沉淀的redis结果集数据库中得到查询结果;
47、其中,所述集中关系型数据库和所述redis结果集数据库均为预先建立的数据库,所述集中关系型数据库和所述redis结果集数据库均包括所述目标表所涉及的所有数据。
48、进一步地,配置单元包括:
49、第一鉴权模块,用于对数据库本文档来自技高网...
【技术保护点】
1.一种具有可配置接口实现数据库查询的方法,其特征在于,所述方法包括如下步骤:
2.根据权利要求1所述的具有可配置接口实现数据库查询的方法,其特征在于,
3.根据权利要求2所述的具有可配置接口实现数据库查询的方法,其特征在于,
4.根据权利要求1所述的具有可配置接口实现数据库查询的方法,其特征在于,
5.根据权利要求4所述的具有可配置接口实现数据库查询的方法,其特征在于,
6.根据权利要求1至5任一项所述的具有可配置接口实现数据库查询的方法,其特征在于,
7.一种具有可配置接口实现数据库查询的装置,其特征在于,所述装置包括:
8.根据权利要求7所述的具有可配置接口实现数据库查询的装置,其特征在于,
9.根据权利要求7所述的具有可配置接口实现数据库查询的装置,其特征在于,
10.根据权利要求7至9任一项所述的具有可配置接口实现数据库查询的装置,其特征在于,
【技术特征摘要】
1.一种具有可配置接口实现数据库查询的方法,其特征在于,所述方法包括如下步骤:
2.根据权利要求1所述的具有可配置接口实现数据库查询的方法,其特征在于,
3.根据权利要求2所述的具有可配置接口实现数据库查询的方法,其特征在于,
4.根据权利要求1所述的具有可配置接口实现数据库查询的方法,其特征在于,
5.根据权利要求4所述的具有可配置接口实现数据库查询的方法,其特征在于,
...
【专利技术属性】
技术研发人员:邱斌,高肇捷,侯青军,裴伦浩,寇鹏,马晓峰,葛莲莲,宋鲁鹏,密鸿吉,徐莹璇,
申请(专利权)人:中国联合网络通信集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。