数据查询方法、装置、设备及存储介质与流程

文档序号:33623832发布日期:2023-03-25 14:12阅读:41来源:国知局
数据查询方法、装置、设备及存储介质与流程

1.本技术涉及数据处理技术领域,具体而言,涉及一种数据查询方法、装置、设备及存储介质。


背景技术:

2.随着业务的发展,数据不断膨胀,在进行业务数据分析时,往往需要对多个数据表之间的数据进行关联,以便业务人员分析决策,方便公司各类报表快速输出。
3.现有技术中,通常依靠数据库自身进行数据关联查询,并且为了保证业务稳定性,通常需要对oracle数据库进行分库分表,需要将一张大表存储在不同服务器上并使用物理隔离,即a表存在了s1、s2、s3三台服务器上面,三台服务器数据总和才是这张表的总和。
4.然而,依靠数据库进行数据关联查询会对数据库造成很大压力,并且对于分库分表存储数据,需要将数据关联多次,数据处理难度和复杂度变大,会带来很大的性能瓶颈。


技术实现要素:

5.有鉴于此,本技术实施例提供了一种数据查询方法、装置、设备及存储介质,以解决依靠数据库进行数据关联查询对数据库造成很大压力,以及对于分库分表存储数据所造成的数据处理难度大和复杂度大的问题。
6.第一方面,本技术实施例提供了一种数据查询方法,包括:
7.接收业务数据表查询请求,所述业务数据表查询请求中包括:多个查询业务字段的标识;
8.根据所述多个查询业务字段的标识,确定多个业务数据表中是否包括目标业务数据表,各业务数据表中包括:目标业务字段以及所述目标业务字段的字段值,所述目标业务字段为从预设存储中间件中获取的与所述各业务数据表的数据表内容类型对应的业务字段,所述预设存储中间件中包括:从数据库同步的多个业务字段以及所述多个业务字段的字段值;
9.若所述多个业务数据表中包括目标业务数据表,则输出所述目标业务数据表。
10.在一可选的实施方式中,所述方法还包括:
11.若所述多个业务数据表中不包括所述目标业务数据表,则从所述预设存储中间件中获取所述多个查询业务字段的字段值;
12.根据所述多个查询业务字段和所述多个查询业务字段的字段值,生成所述目标业务数据表。
13.在一可选的实施方式中,所述根据所述多个查询业务字段的标识,确定多个业务数据表中是否包括目标业务数据表之前,所述方法还包括:
14.将所述数据库中的所述多个业务字段和所述多个业务字段的字段值同步至所述预设存储中间件;
15.根据预设的多个数据表内容类型,从所述预设存储中间件中的所述多个业务字段
中确定与各数据表内容类型匹配的目标业务字段和所述目标业务字段的字段值;
16.根据所述目标业务字段以及所述目标业务字段的字段值,生成所述各数据表内容类型对应的业务数据表。
17.在一可选的实施方式中,所述方法还包括:
18.从所述多个业务数据表中确定满足预设条件的至少两个候选业务数据表;
19.将所述至少两个候选业务数据表进行聚合,生成聚合业务数据表,所述聚合业务数据表中包括:所述至少两个候选业务数据表的目标业务字段以及所述目标业务字段的字段值;
20.将所述聚合业务数据表添加至所述多个业务数据表中。
21.在一可选的实施方式中,所述将所述数据库中的所述多个业务字段和所述多个业务字段的字段值同步至所述预设存储中间件,包括:
22.依次通过第一存储中间件、临时存储数据库,将所述数据库中的所述多个业务字段和所述多个业务字段的字段值同步至第二存储中间件中;
23.所述根据预设的多个数据表内容类型,从所述预设存储中间件中的所述多个业务字段中确定与各数据表内容类型匹配的目标业务字段和所述目标业务字段的字段值,包括:
24.根据预设的多个数据表内容类型,从所述第二存储中间件中的所述多个业务字段中确定与所述各数据表内容类型匹配的所述目标业务字段和所述目标业务字段的字段值。
25.在一可选的实施方式中,所述输出所述目标业务数据表之前,所述方法还包括:
26.在所述临时存储数据库的存储时间到达之前,根据所述临时存储数据库中所述多个查询业务字段的字段值,对所述目标业务数据表进行数据校验;
27.所述输出所述目标业务数据表,包括:
28.若校验通过,则输出所述目标业务数据表。
29.在一可选的实施方式中,所述方法还包括:
30.若检测到针对所述数据库中任意业务字段的字段值的调整操作,则将调整后的字段值写入所述预设存储中间件中所述任意业务字段所对应的分区中,所述分区中包括:所述任意业务字段的至少一个字段值;
31.从所述任意业务字段所对应的分区中读取所述调整后的字段值,并根据所述调整后的字段值更新对应业务数据表中所述任意业务字段的字段值。
32.第二方面,本技术实施例还提供了一种数据查询装置,包括:
33.接收模块,用于接收业务数据表查询请求,所述业务数据表查询请求中包括:多个查询业务字段的标识;
34.确定模块,用于根据所述多个查询业务字段的标识,确定多个业务数据表中是否包括目标业务数据表,各业务数据表中包括:目标业务字段以及所述目标业务字段的字段值,所述目标业务字段为从预设存储中间件中获取的与所述各业务数据表的数据表内容类型对应的业务字段,所述预设存储中间件中包括:从数据库同步的多个业务字段以及所述多个业务字段的字段值;
35.输出模块,用于若所述多个业务数据表中包括目标业务数据表,则输出所述目标业务数据表。
36.在一可选的实施方式中,所述装置还包括:
37.获取模块,用于若所述多个业务数据表中不包括所述目标业务数据表,则从所述预设存储中间件中获取所述多个查询业务字段的字段值;
38.处理模块,用于根据所述多个查询业务字段和所述多个查询业务字段的字段值,生成所述目标业务数据表。
39.在一可选的实施方式中,所述处理模块,还用于:
40.将所述数据库中的所述多个业务字段和所述多个业务字段的字段值同步至所述预设存储中间件;
41.所述确定模块,还用于根据预设的多个数据表内容类型,从所述预设存储中间件中的所述多个业务字段中确定与各数据表内容类型匹配的目标业务字段和所述目标业务字段的字段值;
42.所述处理模块,还用于根据所述目标业务字段以及所述目标业务字段的字段值,生成所述各数据表内容类型对应的业务数据表。
43.在一可选的实施方式中,所述确定模块,还用于:
44.从所述多个业务数据表中确定满足预设条件的至少两个候选业务数据表;
45.所述处理模块,还用于将所述至少两个候选业务数据表进行聚合,生成聚合业务数据表,所述聚合业务数据表中包括:所述至少两个候选业务数据表的目标业务字段以及所述目标业务字段的字段值;
46.所述处理模块,还用于将所述聚合业务数据表添加至所述多个业务数据表中。
47.在一可选的实施方式中,所述处理模块,具体用于:
48.依次通过第一存储中间件、临时存储数据库,将所述数据库中的所述多个业务字段和所述多个业务字段的字段值同步至第二存储中间件中;
49.所述确定模块,具体用于:
50.根据预设的多个数据表内容类型,从所述第二存储中间件中的所述多个业务字段中确定与所述各数据表内容类型匹配的所述目标业务字段和所述目标业务字段的字段值。
51.在一可选的实施方式中,所述处理模块,还用于:
52.在所述临时存储数据库的存储时间到达之前,根据所述临时存储数据库中所述多个查询业务字段的字段值,对所述目标业务数据表进行数据校验;
53.所述输出模块,具体用于:
54.若校验通过,则输出所述目标业务数据表。
55.在一可选的实施方式中,所述处理模块,还用于:
56.若检测到针对所述数据库中任意业务字段的字段值的调整操作,则将调整后的字段值写入所述预设存储中间件中所述任意业务字段所对应的分区中,所述分区中包括:所述任意业务字段的至少一个字段值;
57.从所述任意业务字段所对应的分区中读取所述调整后的字段值,并根据所述调整后的字段值更新对应业务数据表中所述任意业务字段的字段值。
58.第三方面,本技术实施例还提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行第一方面任一所
述的数据查询方法。
59.第四方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行第一方面任一所述的数据查询方法。
60.本技术实施例提供一种数据查询方法、装置、设备及存储介质,其中,该方法包括:接收业务数据表查询请求,业务数据表查询请求中包括:多个查询业务字段的标识,根据多个查询业务字段的标识,确定多个业务数据表中是否包括目标业务数据表,各业务数据表中包括:目标业务字段以及目标业务字段的字段值,目标业务字段为从预设存储中间件中获取的与各业务数据表的数据表内容类型对应的业务字段,预设存储中间件中包括:从数据库同步的多个业务字段以及多个业务字段的字段值,若多个业务数据表中包括目标业务数据表,则输出目标业务数据表。从而能够根据预设存储中间件中从数据库同步的业务字段和字段值生成多个业务数据表,并根据查询业务字段从多个业务数据表中确定目标业务数据表,实现数据流上的关联而非数据库上的关联,保证了数据库稳定性,提升了查询性能。
61.为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
62.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
63.图1为本技术实施例提供的数据查询方法的流程示意图一;
64.图2为本技术实施例提供的数据查询方法的流程示意图二;
65.图3为本技术实施例提供的数据查询方法的流程示意图三;
66.图4为本技术实施例提供的数据查询方法的流程示意图四;
67.图5为本技术实施例提供的数据查询系统的示意图;
68.图6为本技术实施例提供的数据查询方法的流程示意图五;
69.图7为本技术实施例提供的数据查询装置的结构示意图;
70.图8为本技术实施例提供的电子设备的结构示意图。
具体实施方式
71.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
72.针对现有技术中依靠数据库进行数据关联查询时,需要遍历数据库中的所有数据,对数据库造成很大压力,例如,a表一天1千万的数据量,b表一天100万的数据量,将ab表一天数据量关联,关联结果体量在50万,首先要把ab中所有数据取出来,再把对应的关联关系数据过滤掉,可以理解为从ab一天数据先全部取出1100万,在1100万里面找出对应的50万条数据,该操作对数据库的服务有很大的压力,会让中央处理器(central processing unit,cpu)、内存,甚至磁盘转数都飙升至预警阈值,严重影响使用。
73.并且针对oracle数据而言,分库分表存储数据需要遍历三个库,并将数据关联多次,数据处理难度大和复杂度大的问题,本技术提供了一种数据查询方法,根据预设存储中间件中从数据库同步的业务字段和字段值生成多个业务数据表,并根据查询业务字段从多个业务数据表中确定目标业务数据表,基于数据流将数据关联后再保存成业务数据表,在数据库层省去了关联,节省了操作,提升了查询性能,保证业务稳步增长的同时没有带来数据服务压力,保证了数据库稳定性,降低了数据处理难度和复杂度。
74.下面结合几个具体实施例对本技术提供的数据查询方法进行说明。
75.图1为本技术实施例提供的数据查询方法的流程示意图一,本实施例的执行主体可以为电子设备。
76.如图1所示,该方法可以包括:
77.s101、接收业务数据表查询请求。
78.在实际应用场景中,若需要查询业务数据表,则可以发送业务数据表查询请求给电子设备,业务数据表查询请求中包括:多个查询业务字段的标识,查询业务字段可以为待进行查询的业务数据表中的业务字段,例如可以为:一年级、语文成绩、数学成绩。
79.其中,电子设备可以提供有可视化查询界面,通过该可视化查询界面用户可以输入多个查询业务字段,并通过选择可视化查询界面上的“查询”控件,实现业务数据表查询请求的发送,相应地,电子设备则接收该业务数据表查询请求。
80.s102、根据多个查询业务字段的标识,确定多个业务数据表中是否包括目标业务数据表。
81.根据多个查询业务字段的标识,确定多个业务数据表中是否包括目标业务数据表,各业务数据表中包括:目标业务字段以及目标业务字段的字段值,即目标业务数据表的目标业务字段包括多个查询业务字段,其中,目标业务字段为从预设存储中间件中获取的与各业务数据表的数据表内容类型对应的业务字段,预设存储中间件中包括:从数据库同步的多个业务字段以及多个业务字段的字段值。
82.其中,预设存储中间件例如可以为kafka,kafka是一款常用的消息中间件,是一个分布式流媒体平台,类似于消息队列或企业消息传递系统。
83.也就是说,将数据库中的多个业务字段以及多个业务字段的字段值同步至预设存储中间件,在生成多个业务数据表时,根据各业务数据表的数据表内容类型,从预设存储中间件中确定目标业务字段以及目标业务字段的字段值,并基于目标业务字段和目标业务字段的字段值生成对应的业务数据表,其中,数据表内容类型包括但不限于成绩数据表类型、个人信息数据表类型,则对于成绩数据表类型的业务数据表而言,目标业务字段可以包括学生姓名、语文成绩、数学成绩、英语成绩等,对于个人信息数据表类型的业务数据表而言,目标业务字段可以包括学生姓名、老师姓名、班级名、年纪、家长电话等。
84.需要说明的是,该数据库可以为任意类型的数据库,如oracle数据库,该数据库可以是分库分表存储数据表的,数据表中包括业务字段以及业务字段的字段值,如此,无需遍历三个库以关联数据生成业务数据表,而是将数据库中的业务数据同步至预设存储中间件中,并基于预设存储中间件实现数据流上的关联,而非数据库上的关联,降低了数据处理难度和复杂度。并且,将数据同步至预设存储中间件中,是将数据解耦,方便下游业务从预设存储中间件中使用数据,另外还能保证业务数据库的性能和稳定性,不会因为同步导致性能波动。
85.s103、若多个业务数据表中包括目标业务数据表,则输出目标业务数据表。
86.若预先生成的多个业务数据表中包括目标业务数据表,则将目标业务数据表作为查询结果进行输出。
87.在本实施例的数据查询方法中,通过接收业务数据表查询请求,根据多个查询业务字段的标识,确定多个业务数据表中是否包括目标业务数据表,各业务数据表中包括:目标业务字段以及目标业务字段的字段值,目标业务字段为从预设存储中间件中获取的与各业务数据表的数据表内容类型对应的业务字段,若多个业务数据表中包括目标业务数据表,则输出目标业务数据表。从而能够根据预设存储中间件中从数据库同步的业务字段和字段值生成多个业务数据表,并根据查询业务字段从多个业务数据表中确定目标业务数据表,实现数据流上的关联而非数据库上的关联,保证了数据库稳定性,提升了查询性能。
88.在一可选的实施方式中,该方法还可以包括:
89.若多个业务数据表中不包括目标业务数据表,则从预设存储中间件中获取多个查询业务字段的字段值;根据多个查询业务字段和多个查询业务字段的字段值,生成目标业务数据表。
90.若预先生成的多个业务数据表中不包括目标业务数据表,则从预设存储中间件中获取多个查询业务字段的字段值,并根据多个查询业务字段和多个查询业务字段的字段值,生成目标业务数据表,其中,多个查询业务字段可以为数据库中同一数据表中的业务字段,也可以为数据库中不同数据表的业务字段,通过数据库中的业务字段同步至预设存储中间件,通过预设存储中间件实现数据流上的关联,以生成目标业务数据表,降低了数据处理难度和复杂度。
91.图2为本技术实施例提供的数据查询方法的流程示意图二,如图2所示,根据多个查询业务字段的标识,确定多个业务数据表中是否包括目标业务数据表之前,该方法还可以包括:
92.s201、将数据库中的多个业务字段和多个业务字段的字段值同步至预设存储中间件。
93.数据库中可以包括多个数据表,数据表中包括多个业务字段和多个业务字段的字段值,将数据库中的多个业务字段以及多个业务字段的字段值同步至预设存储中间件中,即预设存储中间件中包括:从数据库中同步的多个业务字段以及多个业务字段的字段值。
94.例如,数据库可以为oracle数据库,在将业务字段以及业务字段的字段值写入oracle数据库后,oracle数据库可以开启数据同步,采用ogg同步工具将oracle中业务字段以及业务字段的字段值同步至kafka中间件中,其中,ogg可以只同步变更字段的字段值,例如,字段k1、k2、k3中k1的字段值有变化,则只同步k1的字段值至kafka,可以理解的是,在第
一次同步时,由于数据库中的所有业务字段和字段值均为变更字段,则第一次同步时,同步的是全量业务字段和字段值。
95.s202、根据预设的多个数据表内容类型,从预设存储中间件中的多个业务字段中确定与各数据表内容类型匹配的目标业务字段和目标业务字段的字段值。
96.数据表内容类型用于指示数据表所包含内容的类型,例如可以包括成绩数据表类型、个人信息数据表类型。
97.根据预设的多个数据表内容类型,可以从预设存储中间件中的多个业务字段中确定与各数据表内容类型匹配的目标业务字段以及目标业务字段的字段值,其中,与各数据表内容类型匹配的目标业务字段可以为数据表内容类型的业务数据表所包括的业务字段,例如成绩数据表类型的业务数据表,目标业务字段可以包括学生姓名、语文成绩、数学成绩、英语成绩等;个人信息数据表类型的业务数据表,目标业务字段可以包括学生姓名、老师姓名、班级名、年纪、家长电话等。
98.当然,以上仅仅为一种示例,在实际应用中,与数据表内容类型匹配的目标业务字段之间可以具有映射关系,通过该映射关系可以确定各数据表内容类型对应的目标业务字段。
99.s203、根据目标业务字段以及目标业务字段的字段值,生成各数据表内容类型对应的业务数据表。
100.根据各数据表内容类型对应的目标业务字段以及目标业务字段的字段值,生成各数据表内容类型对应的业务数据表,该业务数据表中的业务字段可以包括:目标业务字段。
101.图3为本技术实施例提供的数据查询方法的流程示意图三,如图3所示,该方法还可以包括:
102.s301、从多个业务数据表中确定满足预设条件的至少两个候选业务数据表。
103.预设条件例如可以包括属于同一数据表内容类型,即根据数据表内容类型,从多个业务数据表中确定属于同一数据表内容类型的至少两个候选业务数据表,例如,张三的成绩a表和李四的成绩b表均属于成绩数据表类型,则将a表和b表作为至少两个候选业务数据表,a表和b表中的业务字段分别包括学生姓名、成绩,a表中学生姓名的字段值为张三,成绩的字段值为80,b表中学生姓名的字段值为李四,成绩的字段值为90。
104.预设条件例如还可以包括业务数据表中的业务字段属于预设聚合粒度下的子类,例如预设聚合粒度为一年级,一年级的子类可以包括一年级的所有学生姓名,则满足预设条件的至少两个候选业务数据表可以为一年级所有学生的语文成绩表,各候选业务数据表中的业务字段分别包括对应的学生姓名,如张三、李四等,一个候选业务数据表对应一个一年级学生的成绩表,一个候选业务数据表中的业务字段可以包括学生姓名、成绩。
105.s302、将至少两个候选业务数据表进行聚合,生成聚合业务数据表。
106.其中,至少两个候选业务数据表中的业务字段为目标业务字段,业务字段的字段值为目标业务字段的字段值。
107.将至少两个候选业务数据表聚合可以理解为将至少两个候选业务数据表的目标业务字段和目标业务字段的字段值进行汇总,生成一个聚合业务数据表,聚合业务数据表中包括:至少两个候选业务数据表的目标业务字段以及目标业务字段的字段值。
108.例如,张三的成绩a表和李四的成绩b表均属于成绩数据表类型,a表和b表进行聚
合,生成张三和李四的聚合业务数据表,聚合业务数据表中的业务字段包括学生姓名、成绩,该学生姓名的字段值包括:张三和李四,成绩的字段值包括80、90。
109.又例如,将一年级所有学生的成绩表进行聚合,生成一年级所有学生的聚合业务数据表,聚合业务数据表中的业务字段包括学生姓名、成绩,学生姓名的字段值分别为一年级所有学生的姓名,成绩的字段值分别为一年级所有学生的成绩值。
110.s303、将聚合业务数据表添加至多个业务数据表中。
111.在多个业务数据表的基础,生成聚合业务数据表,将聚合业务数据表添加至多个业务数据表中,这样可实现高粒度聚合,在后续查询时可提供业务人员分析决策,方便各类报表快速输出。
112.需要说明的是,生成的多个业务数据表可以存储至doris数据库的dw层,并在高粒度聚合落地至doris数据库的ads层,以形成业务报表,并对接输出平台(如bi报表平台),形成分析报表。
113.图4为本技术实施例提供的数据查询方法的流程示意图四,如图4所示,将数据库中的多个业务字段和多个业务字段的字段值同步至预设存储中间件,包括:
114.s401、依次通过第一存储中间件、临时存储数据库,将数据库中的多个业务字段和多个业务字段的字段值同步至第二储中间件中。
115.其中,数据库中的多个业务字段和多个业务字段的字段值可以同步至于第一存储中间件中,并由第一存储中间件中将其同步至临时存储数据库中,临时存储数据库用于对数据进行临时存储,然后将临时存储数据库中的数据同步至第二存储中间件中。
116.预设存储中间件包括第一存储中间件和第二存储中间件,第一存储中间件和第二存储中间件例如可以为kafka,kafka是一款常用的消息中间件,是一个分布式流媒体平台,类似于消息队列或企业消息传递系统,临时存储数据库例如可以为mysql数据库,可以将数据临时存储3天。
117.图5为本技术实施例提供的数据查询系统的示意图,如图5所示,oracle数据库中的业务字段和业务字段的字段值分三个库保存,业务数据写入oracle数据库,开启数据同步,采用ogg同步工具将oracle中业务字段以及业务字段的字段值同步至第一kafka中间件中,第一kafka中间件对接mysql数据库,第一kafka中间件中的数据落地至mysql数据库中,通过mysql的binlog同步工具开启全字段同步,将字段k1、k2、k3以及字段k1、k2、k3的字段值,即{k1:v1,k2:v2,k3:v3},全部同步至第二kafka中间件中,采用flink引擎消费第二kafka中的业务字段以及字段值生成业务数据表,并将业务数据表存储至doris数据库。
118.可以理解的是,在对业务字段的字段值进行更新时,为保证能读取到最新的字段值,则在同步字段和字段值至第二kaka中间件时,可以令同一字段的字段值被同步至同一分区,保证数据顺序性。
119.相应地,根据预设的多个数据表内容类型,从预设存储中间件中的多个业务字段中确定与各数据表内容类型匹配的目标业务字段,包括:
120.s402、根据预设的多个数据表内容类型,从第二存储中间件中的多个业务字段中确定与各数据表内容类型匹配的目标业务字段和目标业务字段的字段值。
121.数据库的多个业务字段以及多个业务字段的字段值同步至第二存储中间件中,根据预设的多个数据表内容类型,可以消费第二存储中间件中的多个业务字段,以从第二存
储中间件中多个业务字段中确定与各数据表内容类型匹配的目标业务字段和目标业务字段的字段值,再基于目标业务字段和目标业务字段的字段值,生成各业务数据表。
122.在一可选的实施方式中,输出目标业务数据表之前,该方法还可以包括:
123.在临时存储数据库的存储时间到达之前,根据临时存储数据库中多个查询业务字段的字段值,对目标业务数据表进行数据校验。
124.在确定与数据表查询请求匹配的目标业务数据表之后,还可以在临时存储数据库的存储时间到达之前,根据临时存储数据库中多个查询业务字段的字段值,对目标业务数据表进行数据校验,其中,临时存储数据库用于对从数据库同步的多个业务字段和多个业务字段的字段值进行临时存储,也就是说,为保证生成的目标业务数据表的正确性,根据临时存储数据库中多个查询业务字段的字段值,对目标业务数据表中各查询字段的字段值进行数据校验,若校验通过,输出目标业务数据表,从而保证了输出的目标业务数据表的正确性。
125.图6为本技术实施例提供的数据查询方法的流程示意图五,如图6所示,该方法还可以包括:
126.s501、若检测到针对数据库中任意业务字段的字段值的调整操作,则将调整后的字段值写入预设存储中间件中任意业务字段所对应的分区中。
127.若检测到针对数据库中任意业务字段的字段值的调整操作,则将该调整操作所针对的任意业务字段的调整后的字段值写入预设存储中间件中任意业务字段所对应的分区(topic)中,分区中包括:任意业务字段的至少一个字段值,对于该任意业务字段而言,若该任意业务字段的字段值被调整了多次,则该分区中包括该任意业务字段的多个字段值,其中,最后一个字段值为该任意业务字段的最新字段值。
128.其中,预设存储中间件中包括多个分区,一个分区对应一个业务字段,一个分区中的数据可以分为增删改三类数据,即调整操作包括更新操作和删除操作,更新操作包括增加操作和删除操作,对于删除操作而言,调整后的字段值可以为空,且具有删除标识。
129.值得说明的是,分区是kafka的概念,发到同一个分区是保证消费kafka数据的顺序性,因为kafka只保证单分区有序性,如果一条数据的两次调整分别存放在kafka两个不同分区,在下游业务使用时可能出现顺序混乱,例如,先调整为1,再调整为2,但实际是先调整为2,再调整为1。
130.s502、从任意业务字段所对应的分区中读取调整后的字段值,并根据调整后的字段值更新对应业务数据表中任意业务字段的字段值。
131.从该任意业务字段所对应的分区中读取调整后的字段值,并根据调整后的字段值更新对应业务数据表中该任意业务字段的字段值,其中,对应业务数据表中的业务字段可以包括该任意业务字段,将对应业务数据表中该任意业务字段的字段值更新为调整后的字段值,也就是说,基于更新数据修改业务数据表中的落地数据,或基于删除数据修改业务数据表中的落地数据。
132.基于同一发明构思,本技术实施例中还提供了与数据查询方法对应的数据查询装置,由于本技术实施例中的装置解决问题的原理与本技术实施例上述数据查询方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
133.图7为本技术实施例提供的数据查询装置的结构示意图,该装置可以集成在电子
设备中。如图7所示,该装置可以包括:
134.接收模块601,用于接收业务数据表查询请求,业务数据表查询请求中包括:多个查询业务字段的标识;
135.确定模块602,用于根据多个查询业务字段的标识,确定多个业务数据表中是否包括目标业务数据表,各业务数据表中包括:目标业务字段以及目标业务字段的字段值,目标业务字段为从预设存储中间件中获取的与各业务数据表的数据表内容类型对应的业务字段,预设存储中间件中包括:从数据库同步的多个业务字段以及多个业务字段的字段值;
136.输出模块603,用于若多个业务数据表中包括目标业务数据表,则输出目标业务数据表。
137.在一可选的实施方式中,该装置还包括:
138.获取模块604,用于若多个业务数据表中不包括目标业务数据表,则从预设存储中间件中获取多个查询业务字段的字段值;
139.处理模块605,用于根据多个查询业务字段和多个查询业务字段的字段值,生成目标业务数据表。
140.在一可选的实施方式中,处理模块605,还用于:
141.将数据库中的多个业务字段和多个业务字段的字段值同步至预设存储中间件;
142.确定模块602,还用于根据预设的多个数据表内容类型,从预设存储中间件中的多个业务字段中确定与各数据表内容类型匹配的目标业务字段和目标业务字段的字段值;
143.处理模块605,还用于根据目标业务字段以及目标业务字段的字段值,生成各数据表内容类型对应的业务数据表。
144.在一可选的实施方式中,确定模块602,还用于:
145.从多个业务数据表中确定满足预设条件的至少两个候选业务数据表;
146.处理模块605,还用于将至少两个候选业务数据表进行聚合,生成聚合业务数据表,聚合业务数据表中包括:至少两个候选业务数据表的目标业务字段以及目标业务字段的字段值;
147.处理模块605,还用于将聚合业务数据表添加至多个业务数据表中。
148.在一可选的实施方式中,处理模块605,具体用于:
149.依次通过第一存储中间件、临时存储数据库,将数据库中的多个业务字段和多个业务字段的字段值同步至第二存储中间件中;
150.确定模块602,具体用于:
151.根据预设的多个数据表内容类型,从第二存储中间件中的多个业务字段中确定与各数据表内容类型匹配的目标业务字段和目标业务字段的字段值。
152.在一可选的实施方式中,处理模块605,还用于:
153.在临时存储数据库的存储时间到达之前,根据临时存储数据库中多个查询业务字段的字段值,对目标业务数据表进行数据校验;
154.输出模块603,具体用于:
155.若校验通过,则输出目标业务数据表。
156.在一可选的实施方式中,处理模块605,还用于:
157.若检测到针对数据库中任意业务字段的字段值的调整操作,则将调整后的字段值
写入预设存储中间件中任意业务字段所对应的分区中,分区中包括:任意业务字段的至少一个字段值;
158.从任意业务字段所对应的分区中读取调整后的字段值,并根据调整后的字段值更新对应业务数据表中任意业务字段的字段值。
159.关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
160.图8为本技术实施例提供的电子设备的结构示意图,如图8所示,该设备可以包括:处理器701、存储器702和总线703,所述存储器702存储有所述处理器701可执行的机器可读指令,当电子设备运行时,所述701处理器与所述存储器702之间通过总线703通信,所述处理器701执行所述机器可读指令,以执行上述数据查询方法。
161.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行,所述处理器执行上述数据查询方法。
162.在本技术实施例中,该计算机程序被处理器运行时还可以执行其它机器可读指令,以执行如实施例中其它所述的方法,关于具体执行的方法步骤和原理参见实施例的说明,在此不再详细赘述。
163.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
164.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
165.另外,在本技术提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
166.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
167.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
168.最后应说明的是:以上所述实施例,仅为本技术的具体实施方式,用以说明本技术的技术方案,而非对其限制,本技术的保护范围并不局限于此,尽管参照前述实施例对本申
请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本技术实施例技术方案的精神和范围。都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1