1.本发明涉及计算机技术领域,特别是涉及一种图表生成方法及装置。
背景技术:2.在很多业务系统中,需要实时了解系统数据情况,生成例如:柱状图、折线图、饼图等数据图表。但是由于,系统数据复杂,从业务代码角度进行分析,往往耗时耗力,并且如果同一个数据库,被多个系统同时使用,也有可能出现遗漏。并且,数据图表不能是每次分析数据都要一份代码进行处理,这样费时费力,因为大部分的图表只是展示形式不同,对于数据的要求是相似的。
技术实现要素:3.有鉴于此,本发明提供一种图表生成方法,通过该方法,可以不侵入业务系统,又能近实时统计数据库表,数据展示及时,又对原有系统没影响。
4.本发明还提供了一种图表生成装置,用以保证上述方法在实际中的实现及应用。
5.一种图表生成方法,包括:启用预先设置的数据同步工具canal连接业务系统中的多个业务数据库;通过所述canal获取各个所述业务数据库中的发生变化的至少一个数据库表,并确定所述至少一个数据库表对应的表变更操作,所述表变更操作包括新增数据操作、修改数据操作和删除数据操作;对所述至少一个数据库表进行预处理,并基于所述至少一个数据库表对应的表变更操作,获得所述至少一个数据库表对应的中间数据;确定所述中间数据对应的数据属性,并将所述中间数据添加至所述数据属性对应的图表数据集合;确定所述图表数据集合对应的图表类型,并基于所述图表数据集合中已存储的各个数据生成所述图表类型对应的数据图表。
6.上述的方法,可选的,所述对所述至少一个数据库表进行预处理,并基于所述至少一个数据库表对应的表变更操作,获得所述至少一个数据库表对应的中间数据,包括:确定各个所述业务数据库中发生变化的数据库表的数量;当各个所述业务数据库中只有一个数据库表发生变化时,对该数据库表进行数据清洗,并基于所述表变更操作,提取已清洗的数据库表中发生变化的数据为中间数据;当各个所述业务数据库中多个数据库表发生变化时,将各个所述数据库表在其所属的业务数据库中进行数据清洗,并基于每个所述数据库表对应的表变更操作,提取每个已清洗的数据库表中发生变化的数据,将各个已提取的数据作为各个所述数据库表对应的中间数据。
7.上述的方法,可选的,所述确定所述中间数据对应的数据属性,包括:获取对所述中间数据进行审核的审核信息;
解析所述审核信息,获得所述中间数据对应的数据属性。
8.上述的方法,可选的,所述基于所述图表数据集合中已存储的各个数据生成所述图表类型对应的数据图表,包括:确定所述图表类型对应的数据图表所支持的数据格式;基于所述数据格式,对所述图表数据集合中的各个数据进行数据格式转换,获得所述数据格式对应的目标数据;基于各个所述目标数据,生成所述图表类型对应的数据图表。
9.上述的方法,可选的,还包括:当接收到用户向所述业务系统发送的对所述数据图表的图表类型进行变更的变更指令时,获取所述业务系统中对所述数据图表进行展示的展示场景;确定符合所述展示场景对应的图表类型;获取符合所述展示场景对应的图表类型的图表参数;基于所述图表参数,变更所述数据图表。
10.一种图表生成装置,包括:连接单元,用于启用预先设置的数据同步工具canal连接业务系统中的多个业务数据库;第一确定单元,用于通过所述canal获取各个所述业务数据库中的发生变化的至少一个数据库表,并确定所述至少一个数据库表对应的表变更操作,所述表变更操作包括新增数据操作、修改数据操作和删除数据操作;处理单元,用于对所述至少一个数据库表进行预处理,并基于所述至少一个数据库表对应的表变更操作,获得所述至少一个数据库表对应的中间数据;第二确定单元,用于确定所述中间数据对应的数据属性,并将所述中间数据添加至所述数据属性对应的图表数据集合;生成单元,用于确定所述图表数据集合对应的图表类型,并基于所述图表数据集合中已存储的各个数据生成所述图表类型对应的数据图表。
11.上述的装置,可选的,所述处理单元,包括:第一确定子单元,用于确定各个所述业务数据库中发生变化的数据库表的数量;第一处理子单元,用于当各个所述业务数据库中只有一个数据库表发生变化时,对该数据库表进行数据清洗,生成所述数据库表对应的中间数据,并基于所述表变更操作,提取已清洗的数据库表中发生变化的数据为中间数据;第二处理子单元,用于当各个所述业务数据库中多个数据库表发生变化时,将各个所述数据库表在其所属的业务数据库中进行数据清洗,并基于每个所述数据库表对应的表变更操作,提取每个已清洗的数据库表中发生变化的数据,将各个已提取的数据作为各个所述数据库表对应的中间数据。
12.上述的装置,可选的,所述第二确定单元,包括:获取子单元,用于获取对所述中间数据进行审核的审核信息;解析子单元,用于解析所述审核信息,获得所述中间数据对应的数据属性。
13.上述的装置,可选的,所述生成单元,包括:第二确定子单元,用于确定所述图表类型对应的数据图表所支持的数据格式;
转换子单元,用于基于所述数据格式,对所述图表数据集合中的各个数据进行数据格式转换,获得所述数据格式对应的目标数据;生成子单元,用于基于各个所述目标数据,生成所述图表类型对应的数据图表。
14.上述的装置,可选的,还包括:第一获取单元,用于当接收到用户向所述业务系统发送的对所述数据图表的图表类型进行变更的变更指令时,获取所述业务系统中对所述数据图表进行展示的展示场景;第三确定单元,用于确定符合所述展示场景对应的图表类型;第二获取单元,用于获取符合所述展示场景对应的图表类型的图表参数;变更单元,用于基于所述图表参数,变更所述数据图表。
15.一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述的图表生成方法。
16.一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行上述的图表生成方法。
17.与现有技术相比,本发明包括以下优点:本发明提供一种图表生成方法,包括:启用预先设置的数据同步工具canal连接业务系统中的多个业务数据库;通过所述canal获取各个所述业务数据库中的发生变化的至少一个数据库表,并确定所述至少一个数据库表对应的表变更操作,所述表变更操作包括新增数据操作、修改数据操作和删除数据操作;对所述至少一个数据库表进行预处理,并基于所述至少一个数据库表对应的表变更操作,获得所述至少一个数据库表对应的中间数据;确定所述中间数据对应的数据属性,并将所述中间数据添加至所述数据属性对应的图表数据集合;确定所述图表数据集合对应的图表类型,并基于所述图表数据集合中已存储的各个数据生成所述图表类型对应的数据图表应用本发明提供的方法,可以不侵入业务系统,又能近实时统计数据库表,数据展示及时,又对原有系统没影响。
附图说明
18.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
19.图1为本发明实施例提供的一种图表生成方法的方法流程图;图2为本发明实施例提供的一种图表生成方法的又一方法流程图;图3为本发明实施例提供的一种图表生成方法的再一方法流程图;图4为本发明实施例提供的一种图表生成装置的装置结构图;图5为本发明实施例提供的一种电子设备结构示意图。
具体实施方式
20.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.在本技术中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
22.本发明可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
23.本发明实施例提供了一种图表生成方法,该方法可以应用在多种系统平台,其执行主体可以为计算机终端或各种移动设备的处理器,所述方法的方法流程图如图1所示,具体包括:s101:启用预先设置的数据同步工具canal连接业务系统中的多个业务数据库。
24.其中,canal是数据同步工具,业务数据库中的数据发生变化时,canal可以及时将变化后的数据进行同步。
25.s102:通过所述canal获取各个所述业务数据库中的发生变化的至少一个数据库表,并确定所述至少一个数据库表对应的表变更操作。
26.其中,所述表变更操作包括新增数据操作、修改数据操作和删除数据操作。
27.需要说明的是,数据库表中新增数据、删除数据或者修改数据时,canal对变更的数据库表进行同步,每个业务数据库中均包含数据库表,用于记录其所属的业务数据库中包含的各个数据。
28.s103:对所述至少一个数据库表进行预处理,并基于所述至少一个数据库表对应的表变更操作,获得所述至少一个数据库表对应的中间数据。
29.其中,中间数据为数据库表前后发生变化的数据。
30.s104:确定所述中间数据对应的数据属性,并将所述中间数据添加至所述数据属性对应的图表数据集合。
31.具体的,本发明实施例提供的方法中,确定所述中间数据对应的数据属性,包括:获取对所述中间数据进行审核的审核信息;解析所述审核信息,获得所述中间数据对应的数据属性。
32.其中,审核信息包括对中间数据进行操作的当前操作人、审核动作、审核数据的类型、审核数据的主键、审核数据通道、审核备注、风险标签等等。
33.需要说明的是,业务数据库中的数据库表发生变更的变更操作由用户进行操作,该操作信息包括需要对变更的数据进行审核的审核信息以及操作时间等。从该操作信息中获取审核信息,并解析审核信息确定中间数据对应的数据属性。其中,审核信息包含审核数据的类型,根据审核数据的类型确定中间数据对应的数据属性。
34.s105:确定所述图表数据集合对应的图表类型,并基于所述图表数据集合中已存
储的各个数据生成所述图表类型对应的数据图表。
35.其中,数据图表为多条折线图、多根柱状图、柱状图上带有折线图或饼状图等。
36.基于上述实施例提供的方法,canal将自己伪装为mysql的slave,向master(业务数据库)发送dump协议。master收到dump协议,当业务数据库的数据发生改变后推送binary log(数据库表)给canal。canal解析binary log对象,转换为增量数据。
37.本发明实施例提供的方法中,启用canal连接业务系统中的各个业务数据库,并通过canal实时同步各个业务数据库中的数据,当任意的业务数据库发生变化时,获取发生变化的至少一个数据库表,并确定数据库表发生变化对应的表变更操作。对表数据库进行预处理后基于表数据库对应的表变更操作,获得表数据库对应的中间数据。基于中间数据的数据属性,将其加入对应的图表数据集合中,并将图表数据集合中已存储的各个数据生成数据图表。其中,图表数据集合中生成数据图表的各个数据包含所述中间数据。
38.应用本发明实施例提供的方法,可以不侵入业务系统,又能近实时统计数据库表,数据展示及时,又对原有系统没影响。
39.本发明实施例提供的方法中,所述对所述至少一个数据库表进行预处理,获得所述至少一个数据库表对应的中间数据,包括:确定各个所述业务数据库中发生变化的数据库表的数量;当各个所述业务数据库中只有一个数据库表发生变化时,对该数据库表进行数据清洗,并基于所述表变更操作,提取已清洗的数据库表中发生变化的数据为中间数据;当各个所述业务数据库中多个数据库表发生变化时,将各个所述数据库表在其所属的业务数据库中进行数据清洗,并基于每个所述数据库表对应的表变更操作,提取每个已清洗的数据库表中发生变化的数据,将各个已提取的数据作为各个所述数据库表对应的中间数据。
40.需要说明的是,每个业务数据库对应一个数据库表,其中记录业务数据库中存储的各个数据。若只有一个业务数据库的数据库表发生变化,则对该数据库表中的各个数据进行数据清洗后,根据表变更操作提取发生变化的数据为中间数据,例如,变更操作为新增数据操作,则提取新增的数据为中间数据。若有多个业务数据库的数据库表发生变化,则将各个所述数据库表在其所属的业务数据库中进行数据清洗后,提取出各个数据库表中发生变化的数据,将各个已提取的数据进行归集处理,处理后的数据为各个数据库表对应的中间数据。
41.其中,当多个数据库表发生变化时,每个数据库对应的表变更操作可以均不相同,例如,三个数据库表发生变化,对应的表变更操作分别可以是新增数据操作、修改数据操作以及删除数据操作;对各个数据库表进行数据清洗后,提取新增数据操作的数据库表中新增的数据,提取修改数据操作的数据库表中修改前后的数据以及提取删除数据操作对应的数据库表中被删除的数据。
42.本发明实施例提供的方法中,所述基于所述图表数据集合中已存储的各个数据生成所述图表类型对应的数据图表的过程如图2所示,包括:s201:确定图表类型对应的数据图表所支持的数据格式。
43.需要说明的是,不同图表类型对应的数据图表可以支持不同的数据格式,也可以支持相同的数据格式。
44.s202:基于所述数据格式,对图表数据集合中的各个数据进行数据格式转换,获得所述数据格式对应的目标数据。
45.需要说明的是,若图表数据集合中数据的数据格式与图表类型支持的数据格式一致,则无需进行格式转换。
46.s203:基于各个所述目标数据,生成所述图表类型对应的数据图表。
47.本发明实施例提供的方法中,在生成数据图表前,先确定待生成的数据图表支持的数据格式,并按照该数据格式对图表数据集合中的各个数据进行数据格式转换,格式转化成功后生成数据图表。
48.本发明实施例提供的方法中,在展示数据图表的过程中还可以根据实际场景变更图表类型,具体过程如图3所示,具体可以包括:s301:当接收到用户向业务系统发送的对数据图表的图表类型进行变更的变更指令时,获取所述业务系统中对所述数据图表进行展示的展示场景。
49.在本发明中,基于上述s105生成数据图表后,对该数据图表进行展示,技术人员可以对展示的数据图表进行审核,在审核的过程中,可以根据具体的展示场景变更数据图表的图表类型,并发出图表变更指令。
50.s302:确定符合所述展示场景对应的图表类型。
51.需要说明的是,不同的图表类型应用于不同的展示场景中。
52.s303:获取符合所述展示场景对应的图表类型的图表参数。
53.在本发明中,不同的数据图表的生成过程需要应用该数据图表对应的图表参数,当需要变更数据图表的图表类型时,获取需要更改的数据图表的图表类型的图表参数。
54.s304:基于所述图表参数,变更所述数据图表。
55.需要说明的是,只需要数据图表的图表参数级即可变更数据图表,无需编写新的数据图表的图表代码。例如:最初需求数据图表是给后台技术人员看的,所以可能展示的数据图表为一个柱状图,此时的技术人员比较关心具体数据。后期这个数据图表想展示在审核监控大屏幕上,那数据图表展示可能以饼状图为主,主要展示占比情况,具体数字无需展示在大屏幕上,在更改数据图表时,若原先的柱状图type参数为bar,如果把柱状图改为饼状图,则饼状图对应的参数为pie,只需要将参数bar改成pie,则可以实现数据图表的变更。
56.上述各个实施例的具体实施过程及其衍生方式,均在本发明的保护范围之内。
57.与图1所述的方法相对应,本发明实施例还提供了一种图表生成装置,用于对图1中方法的具体实现,本发明实施例提供的图表生成装置可以应用计算机终端或各种移动设备中,其结构示意图如图4所示,具体包括:连接单元401,用于启用预先设置的数据同步工具canal连接业务系统中的多个业务数据库;第一确定单元402,用于通过所述canal获取各个所述业务数据库中的发生变化的至少一个数据库表,并确定所述至少一个数据库表对应的表变更操作,所述表变更操作包括新增数据操作、修改数据操作和删除数据操作;处理单元403,用于对所述至少一个数据库表进行预处理,并基于所述至少一个数据库表对应的表变更操作,获得所述至少一个数据库表对应的中间数据;第二确定单元404,用于确定所述中间数据对应的数据属性,并将所述中间数据添
加至所述数据属性对应的图表数据集合;生成单元405,用于确定所述图表数据集合对应的图表类型,并基于所述图表数据集合中已存储的各个数据生成所述图表类型对应的数据图表。
58.本发明实施例提供的装置中,启用canal连接业务系统中的各个业务数据库,并通过canal实时同步各个业务数据库中的数据,当任意的业务数据库发生变化时,获取发生变化的至少一个数据库表,并确定数据库表发生变化对应的表变更操作。对表数据库进行预处理后基于表数据库对应的表变更操作,获得表数据库对应的中间数据。基于中间数据的数据属性,将其加入对应的图表数据集合中,并将图表数据集合中已存储的各个数据生成数据图表。其中,图表数据集合中生成数据图表的各个数据包含所述中间数据。
59.应用本发明实施例提供的装置,可以不侵入业务系统,又能近实时统计数据库表,数据展示及时,又对原有系统没影响。
60.本发明实施例提供的装置中,所述处理单元403,包括:第一确定子单元,用于确定各个所述业务数据库中发生变化的数据库表的数量;第一处理子单元,用于当各个所述业务数据库中只有一个数据库表发生变化时,对该数据库表进行数据清洗,生成所述数据库表对应的中间数据,并基于所述表变更操作,提取已清洗的数据库表中发生变化的数据为中间数据;第二处理子单元,用于当各个所述业务数据库中多个数据库表发生变化时,将各个所述数据库表在其所属的业务数据库中进行数据清洗,并基于每个所述数据库表对应的表变更操作,提取每个已清洗的数据库表中发生变化的数据,将各个已提取的数据作为各个所述数据库表对应的中间数据。
61.本发明实施例提供的装置中,所述第二确定单元404,包括:获取子单元,用于获取对所述中间数据进行审核的审核信息;解析子单元,用于解析所述审核信息,获得所述中间数据对应的数据属性。
62.本发明实施例提供的装置中,所述生成单元405,包括:第三确定子单元,用于确定所述图表类型对应的数据图表所支持的数据格式;转换子单元,用于基于所述数据格式,对所述图表数据集合中的各个数据进行数据格式转换,获得所述数据格式对应的目标数据;生成子单元,用于基于各个所述目标数据,生成所述图表类型对应的数据图表。
63.本发明实施例提供的装置中,还包括:第一获取单元,用于当接收到用户向所述业务系统发送的对所述数据图表的图表类型进行变更的变更指令时,获取所述业务系统中对所述数据图表进行展示的展示场景;第三确定单元,用于确定符合所述展示场景对应的图表类型;第二获取单元,用于获取符合所述展示场景对应的图表类型的图表参数;变更单元,用于基于所述图表参数,变更所述数据图表。
64.以上本发明实施例公开的图表生成装置中各个单元及子单元的具体工作过程,可参见本发明上述实施例公开的图表生成方法中的对应内容,这里不再进行赘述。
65.本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述图表生成方法。
66.本发明实施例还提供了一种电子设备,其结构示意图如图5所示,具体包括存储器
501,以及一个或者一个以上的指令502,其中一个或者一个以上指令502存储于存储器501中,且经配置以由一个或者一个以上处理器503执行所述一个或者一个以上指令502进行以下操作:启用预先设置的数据同步工具canal连接业务系统中的多个业务数据库;通过所述canal获取各个所述业务数据库中的发生变化的至少一个数据库表,并确定所述至少一个数据库表对应的表变更操作,所述表变更操作包括新增数据操作、修改数据操作和删除数据操作;对所述至少一个数据库表进行预处理,并基于所述至少一个数据库表对应的表变更操作,获得所述至少一个数据库表对应的中间数据;确定所述中间数据对应的数据属性,并将所述中间数据添加至所述数据属性对应的图表数据集合;确定所述图表数据集合对应的图表类型,并基于所述图表数据集合中已存储的各个数据生成所述图表类型对应的数据图表。
67.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
68.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现。
69.为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
70.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。