1.本发明涉及大数据的数据处理技术领域,尤其涉及一种数据同步方法、装置、计算机设备及可读存储介质。
背景技术:2.在日常研发及测试的工作中,不同环境、不同类型的数据库的数据同步的频率十分频繁,因此,为确保用户端和数据源系统之间数据的同步性,通常需要工作人员花费大量时间进行手动数据导入导出操作,以实现上述同步性。
3.然而,发明人意识到,这种手动的导入导出操作,通常需要工作人员首先花费大量精力去查询需要同步的业务数据,再进行手动导入/导出作业实现数据同步,不仅繁琐耗时,而且极大的降低了数据同步的效率。
技术实现要素: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.图1为本发明数据同步方法实施例一的流程图;
44.图2为本发明数据同步方法实施例二中数据同步方法的环境应用示意图;
45.图3是本发明数据同步方法实施例二中数据同步方法的具体方法流程图;
46.图4为本发明数据同步装置实施例三的程序模块示意图;
47.图5为本发明计算机设备实施例四中计算机设备的硬件结构示意图。
具体实施方式
48.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.本发明提供的数据同步方法、装置、计算机设备及可读存储介质,适用于大数据的数据处理技术领域,为提供一种基于页面发送模块、请求生成模块、任务创建模块、任务执行模块的数据同步方法。本发明通过用户端发送的访问请求向用户端发送数据源页面,根据用户端点击数据源页面中的同步按键生成导数请求,通过调度系统根据导数请求创建导数脚本,并根据导数脚本创建调度任务,调用调度系统执行调度任务,使数据源系统和用户端之间进行数据同步。
50.实施例一:
51.请参阅图1,本实施例的一种数据同步方法,包括:
52.s101:接收用户端发送的访问请求,根据所述访问请求向所述用户端发送具有业务信息的数据源页面,其中,所述数据源页面与数据源系统关联,所述数据源系统是用于保存业务数据和业务信息的数据库服务器,所述业务信息用于描述所述业务数据的属性。
53.s103:根据所述用户端点击所述数据源页面中的同步按键生成导数请求。
54.s104:通过预置的调度系统根据所述导数请求创建导数脚本,并根据所述导数脚本创建调度任务。
55.s105:调用所述调度系统执行所述调度任务,用以使所述导数请求中业务信息所对应的业务数据,在所述数据源系统和所述用户端之间进行数据同步。
56.在示例性的实施例中,通过接收用户端发送的访问请求,根据所述访问请求向所述用户端发送具有业务信息的数据源页面,实现了为用户端提供可视化页面的技术效果,提高了用户端维护业务数据的便利度。进一步地,所述数据源页面为vue代码,其中,vue代码是一种基于vue.js所构建的页面代码,其通过在用户端上的渲染操作实现页面的展示,其中,vue.js是一个构建数据驱动的web界面的库,其核心是一个响应的数据绑定系统。因此,vue.js的核心库只关注视图层,非常容易与其它库或已有项目整合,提高了页面及所述业务信息的整合效果。
57.通过springboot在所述数据源页面上构建同步按键,用以实现自动生成导数请求的技术效果,使得用户端仅需点击所述同步按键即可实现导数请求的操作,而无需人工查询业务数据并手工将业务数据导入或导出所述数据源系统,导致数据同步操作繁琐耗时。
58.通过采用dolphinscheduler作为所述调度系统,通过所述调度系统根据所述导数请求创建导数脚本,并根据所述导数脚本创建调度任务的方式,自动生成导数脚本并根据所述导数脚本自动生成调度任务,一旦形成所述调度任务,则仅需服务器对其进行执行即可实现数据同步操作,无需人工进行导入导出数据,提高了数据同步效率。
59.通过调用所述调度系统执行所述调度任务,用以使所述导数请求中业务信息所对应的业务数据,在所述数据源系统和所述用户端之间进行数据同步,使调度任务有序执行,保证了任务执行效率。
60.实施例二:
61.本实施例为上述实施例一的一种具体应用场景,通过本实施例,能够更加清楚、具体地阐述本发明所提供的方法。
62.下面,以在运行有数据同步方法的服务器中,根据导数请求创建导数脚本,使导数请求对应的业务数据在数据源系统和用户端之间进行数据同步为例,来对本实施例提供的方法进行具体说明。需要说明的是,本实施例只是示例性的,并不限制本发明实施例所保护的范围。
63.图2示意性示出了根据本技术实施例二的数据同步方法的环境应用示意图。
64.在示例性的实施例中,数据同步方法所在的服务器2通过网络3分别连接用户端4;所述服务器2可以通过一个或多个网络3提供服务,网络3可以包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或等等。网络3可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,它们的组合和/或类似物。网络3可以包括无线链路,例如蜂窝链路,卫星链路,wi
‑
fi链路和/或类似物;所述用户端4可为智能手机、平板电脑、笔记本电脑、台式电脑等计算机设备。
65.图3是本发明一个实施例提供的一种数据同步方法的具体方法流程图,该方法具体包括步骤s201至s206。
66.s201:接收用户端发送的访问请求,根据所述访问请求向所述用户端发送具有业务信息的数据源页面,其中,所述数据源页面与数据源系统关联,所述数据源系统是用于保存业务数据和业务信息的数据库服务器,所述业务信息用于描述所述业务数据的属性。
67.为向用户端提供可视化的页面以便于用户端操作需要调整或同步的业务数据,本步骤通过接收用户端发送的访问请求,根据所述访问请求向所述用户端发送具有业务信息的数据源页面,提高了用户端维护业务数据的便利度。
68.本步骤中,所述数据源页面为vue代码,其中,vue代码是一种基于vue.js所构建的页面代码,其通过在用户端上的渲染操作实现页面的展示,其中,vue.js是一个构建数据驱动的web界面的库,其核心是一个响应的数据绑定系统。因此,vue.js的核心库只关注视图层,非常容易与其它库或已有项目整合,提高了页面及所述业务信息的整合效果。
69.在一个优选的实施例中,所述根据所述访问请求向所述用户端发送具有业务信息的数据源页面的步骤,包括:
70.s11:提取所述访问请求中的身份信息,通过预置的用户库判断所述身份信息是否有权访问所述数据源系统;
71.本步骤中,所述用户库中具有反映所述用户端的身份信息,与所述权限信息之间映射关系的访问映射表,通过所述映射表获取与所述用户端的身份信息对应的权限信息。
72.s12:若是,则向所述用户端发送数据源页面信息,并控制所述用户端渲染所述数据源页面信息形成数据源页面;
73.本步骤中,通过向所述用户端发送数据源页面信息,并通过vue渲染组件控制所述用户端渲染所述数据源页面信息形成数据源页面,用以在所述用户端上展示。
74.s13:若否,则向所述用户端发送无权访问信息。
75.s202:接收用户端根据所述数据源页面发送的数据维护信息,根据所述数据维护信息编辑所述业务信息、或删除所述业务信息、或新增所述业务数据的业务信息。
76.为便于用户端维护业务信息,本步骤通过用户端通过点击数据源页面上的编辑按
键所生成的具有编辑指令的数据维护信息,用以对所述数据源页面上的业务信息进行编辑;接收用户端通过点击数据源页面上的删除按键所生成的具有删除指令的数据维护信息,用以对所述数据源页面上的业务信息进行删除操作;接收用户端通过点击数据源页面上的新增按键所生成的具有新增指令的数据维护信息,用以在所述数据源页面中新增业务信息,实现快速便捷的维护业务信息的技术效果。
77.在一个优选的实施例中,所述根据所述数据维护信息编辑所述业务信息、或删除所述业务信息、或新增所述业务数据的业务信息的步骤,包括:
78.s21:提取所述数据维护信息中的操作指令,并判断所述操作指令的内容。
79.本步骤中,所述操作指令的内容包括编辑指令、删除指令和新增指令。
80.s22:若所述操作指令的内容为编辑指令,则通过预置的权限库判断所述用户端是否具有编辑权限;若是,则提取所述数据维护信息中的编辑目标信息,将所述数据源系统中与所述编辑目标信息对应的业务信息,修改为所述数据维护信息中的业务信息;若否,则向所述用户端发送无权编辑信息。
81.本步骤中,所述权限库具有反映所述用户端的身份信息,与所述操作指令之间映射关系的的操作映射表,通过所述操作映射表判断所述用户端是否具有编辑权限。
82.s23:若所述操作指令的内容为删除指令,则通过预置的权限库判断所述用户端是否具有删除权限;若是,提取所述数据维护信息中的删除目标信息,并删除所述数据源系统中与所述删除目标信息对应的业务信息;若否,则向所述用户端发送无权删除信息。
83.本步骤中,所述权限库具有反映所述用户端的身份信息,与所述操作指令之间映射关系的的操作映射表,通过所述操作映射表判断所述用户端是否具有删除权限。
84.s24:若所述操作指令的内容为新增指令,则通过预置的权限库判断所述用户端是否具有新增权限;若是,将所述数据维护信息中的业务信息录入所述数据源系统;若否,则向所述用户端发送无权新增信息。
85.本步骤中,所述权限库具有反映所述用户端的身份信息,与所述操作指令之间映射关系的的操作映射表,通过所述操作映射表判断所述用户端是否具有新增权限。
86.s203:根据所述用户端点击所述数据源页面中的同步按键生成导数请求。
87.为自动生成导数请求,用以实现所述用户端和所述数据源系统之间的数据同步,本步骤通过springboot在所述数据源页面上构建同步按键,用以实现自动生成导数请求的技术效果,使得用户端仅需点击所述同步按键即可实现导数请求的操作,而无需人工查询业务数据并手工将业务数据导入或导出所述数据源系统,导致数据同步操作繁琐耗时。其中,springboot是一种通过默认配置springspringboot是一种通过简化spring众多框架中所需的大量且繁琐的配置文件,并用于服务所述spring众多框架的框架,于本实施例中,通过在springboot中进行简单的配置即可构建同步按键所需的依赖,并对所述依赖进行自动化配置,提高了同步按键的构建效率。
88.于本实施例中,所述同步按键包括:离线同步按键、实时同步按键和业务同步按键。
89.在一个优选的实施例中,所述根据所述用户端点击所述数据源页面中的同步按键生成导数请求的步骤,包括:
90.s31:根据用户端在数据源页面上点击所述离线同步按键所生成的离线信号向所
述用户端发送接口表单,接收用户端在所述接口表单中选定的导入操作或导出操作,以及选定的业务信息的业务标签,根据所述导入操作或所述导出操作,以及所述离线信号和所述业务标签生成导数请求。
91.本步骤中,所述离线同步按键是基于springboot在所述数据源页面上所构建的按键,用于生成离线信号并向用户端发送接口表单的交互组件。
92.s32:根据用户端在数据源页面上点击所述实时同步按键所生成的实时信号向所述用户端发送接口表单,接收用户端在所述接口表单中选定的导入操作或导出操作,以及选定的业务信息的业务标签,根据所述导入操作或所述导出操作,以及所述实时信号和所述业务标签生成导数请求。
93.本步骤中,所述实时同步按键是基于springboot在所述数据源页面上所构建的按键,用于生成实时信号并向用户端发送接口表单的交互组件。
94.s33:根据用户端在数根据用户端在数据源页面上点击所述业务同步按键所生成的业务信号向所述用户端发送接口表单,接收用户端在所述接口表单中选定的导入操作或导出操作,以及选定的业务信息的业务标签,根据所述导入操作或所述导出操作,以及所述业务信号和所述业务标签生成导数请求。
95.本步骤中,所述业务同步按键是基于springboot在所述数据源页面上所构建的按键,用于生成业务信号并向用户端发送接口表单的交互组件。
96.s204:通过预置的调度系统根据所述导数请求创建导数脚本,并根据所述导数脚本创建调度任务。
97.为实现自动生成用于数据同步的调度任务,进而实现业务数据自动同步的技术效果,本步骤采用dolphinscheduler作为所述调度系统,通过所述调度系统根据所述导数请求创建导数脚本,并根据所述导数脚本创建调度任务的方式,自动生成导数脚本并根据所述导数脚本自动生成调度任务,一旦形成所述调度任务,则仅需服务器对其进行执行即可实现数据同步操作,无需人工进行导入导出数据,提高了数据同步效率。
98.需要说明的是,dolphinscheduler,即:apache dolphinscheduler,其为一种分布式去中心化,易扩展的可视化dag工作流任务调度系统,所述dolphinscheduler用于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用,提高了导数请求的调度效率。
99.在一个优选的实施例中,所述通过预置的调度系统根据所述导数请求创建导数脚本,并根据所述导数脚本创建调度任务的步骤,包括:
100.s41:从所述导数请求中提取入参信息,提取所述导数请求中的请求信息;其中,所述入参信息包括所述业务标签,所述请求信息为所述导入操作或所述导出操作。
101.s42:根据所述请求信息从预置的接口模板中获取目标模板,将所述入参信息录入所述目标模板中以生成所述导数脚本。
102.本步骤中,所述接口模板是入参项为空置的计算机模板,所述计算机模板通过调用所述调度系统的api,使所述调度系统根据所述计算机模板创建任务。
103.所述接口模板包括导入模板和导出模板;若所述请求信息为导入操作,则将所述导入模板设为目标模板,将所述入参信息录入所述目标模板的入参项后,将获得能够通过所述api调用所述调度系统并生成调度任务的导数脚本,所述导数脚本用于将所述用户端
中与所述业务标签对应的业务数据导入所述数据源系统中。
104.若所述请求信息为导出操作,则将所述导出模板设为目标模板,将所述入参信息录入所述目标模板的入参项后,将获得能够通过所述api调用所述调度系统并生成调度任务的导数脚本,所述导数脚本用于将所述数据源系统中与所述业务标签对应的业务数据导入所述用户端中。
105.s43:调用所述调度系统根据所述导数脚本,创建用于从保存有业务数据的数据库中获取业务数据,或向所述数据库载入业务数据的调度任务。
106.本步骤中,所述调度任务中具有业务标签,以及离线信号或实时信号或业务信号。具体地,通过调用所述调度系统的api实现调用所述调度系统的技术效果;根据所述导数脚本中的导入操作,生成从所述数据库中获取与所述业务标签对应业务数据的调度任务;根据所述导数脚本中的导出操作,生成向所述数据库中载入与所述业务标签对应业务数据的调度任务;其中,若所述导数脚本是根据所述导入模板所创建的,所述调度任务为向所述数据库载入业务数据;若所述导数脚本是根据所述导出模板所创建的,所述调度任务为从保存有业务数据的数据库中获取业务数据。
107.s205:调用所述调度系统执行所述调度任务,用以使所述导数请求中业务信息所对应的业务数据,在所述数据源系统和所述用户端之间进行数据同步。
108.为使调度任务得以有序执行,避免出现大量调度任务堆积导致任务阻塞的情况发生,本步骤通过调用所述调度系统执行所述调度任务,用以使所述导数请求中业务信息所对应的业务数据,在所述数据源系统和所述用户端之间进行数据同步,使调度任务有序执行,保证了任务执行效率。
109.在一个优选的实施例中,所述调用所述调度系统执行所述调度任务的步骤,包括:
110.s51:若所述调度任务中具有离线信号,调用所述调度系统中的导数组件按照预置的离线周期或离线时间段执行所述调度任务,使所述导数请求中业务信息所对应的业务数据,在所述数据源系统和所述用户端之间进行数据同步。
111.本步骤中,对于基于非关系型数据库所构建的数据源系统,和/或具有非关系型数据库的用户端,可通过所述导数组件执行所述调度任务以实现所述数据同步;其中,所述离线周期是预置的时间周期,其目的在于使所述导数组件周期性地执行所述调度任务,使所述导数请求中业务信息所对应的业务数据,在所述数据源系统和所述用户端之间进行数据同步;所述离线时间段是预置的时间期间,其目的在于使所述导数组件在所述离线时间段内执行所述调度任务,使所述调度任务中与所述业务标签对应的业务数据,在所述数据源系统和所述用户端之间进行数据同步;其中,所述数据同步包括:向所述数据库载入业务数据的操作,以及从保存有业务数据的数据库中获取业务数据的操作。
112.于本实施例中,采用datax或sqoop作为所述导数组件;
113.所述datax是一种在异构的数据库/文件系统之间高速交换数据的工具,实现了在任意的数据处理系统(rdbms/hdfs/local filesystem)之间的数据交换。
114.所述sqoop是一种用于hadoop和关系型数据库之间数据导入导出的工具。其可通过sqoop把数据从数据库(比如mysql,oracle)导入到hdfs中;也可把数据从hdfs中导出到关系型数据库中。sqoop通过hadoop的mapreduce导入导出,因此提供了很高的并行性能以及良好的容错性。
115.s52:若所述调度任务中具有实时信号,调用所述调度系统中的导数组件执行所述调度任务,使所述导数请求中业务信息所对应的业务数据,在所述数据源系统和所述用户端之间进行数据同步。
116.本步骤中,对于基于非关系型数据库所构建的数据源系统,和/或具有非关系型数据库的用户端,因此,当所述调度任务中具有实时信号时,所述调度系统将使导数组件实时执行调度任务,使所述调度任务中与所述业务标签对应的业务数据,在所述数据源系统和所述用户端之间进行数据同步;其中,所述数据同步包括:向所述数据库载入业务数据的操作,以及从保存有业务数据的数据库中获取业务数据的操作。
117.于本实施例中,采用datax或sqoop作为所述导数组件;
118.所述datax是一种在异构的数据库/文件系统之间高速交换数据的工具,实现了在任意的数据处理系统(rdbms/hdfs/local filesystem)之间的数据交换。
119.所述sqoop是一种用于hadoop和关系型数据库之间数据导入导出的工具。其可通过sqoop把数据从数据库(比如mysql,oracle)导入到hdfs中;也可把数据从hdfs中导出到关系型数据库中。sqoop通过hadoop的mapreduce导入导出,因此提供了很高的并行性能以及良好的容错性。
120.s53:若所述调度任务中具有业务信号,则通过所述调度系统启动语句执行组件,使所述导数请求中业务信息所对应的业务数据,在所述数据源系统和所述用户端之间进行数据同步;
121.本步骤中,对于基于关系型数据库所构建的数据源系统,和具有关系型数据库的用户端,采用jdbc(java data base connectivity,java数据库连接)作为所述语句执行组件,其为是一种用于执行sql语句的java api。
122.其通过连接到所述用户端和所述数据源系统的关系型数据库并创建sql或mysql语句,在所述关系型数据库中执行sql或mysql语句,实现向所述数据库载入业务数据的操作,或从保存有业务数据的数据库中获取业务数据的操作,进而实现所述数据同步。
123.s206:获取所述调度任务的执行结果,将所述执行结果导入预置的效率分析组件,调用所述效率分析组件运算所述执行结果得到导数分析信息,将所述导数分析信息发送至所述用户端形成分析页面。
124.为实现用户端能够准确获知调度任务的执行情况,以便于用户端基于所述执行情况构建新的导数请求,本步骤通过获取所述调度任务的执行结果,将所述执行结果导入预置的效率分析组件,调用所述效率分析组件运算所述执行结果得到导数分析信息,将所述导数分析信息发送至所述用户端形成分析页面,使得用户端能够通过所述分析页面获知调度任务的执行情况。
125.在一个优选的实施例中,所述获取所述调度任务的执行结果的步骤,包括:
126.s61:判断所述调度任务是否运行成功;
127.本步骤中,通过所述调度系统监听所述调度任务的执行情况,若所述调度任务执行完成,即所述数据源系统和所述用户端之间完成所述数据同步,则说明调度任务运行成功;若调度任务未执行完成,即所述数据源系统和所述用户端之间的所述数据同步出现中断、失败等情况,则说明所述调度任务运行失败。
128.s62:若是,则判定所述业务数据获取成功或载入成功,并生成内容为同步成功的
执行结果;
129.s63:若否,则判定所述业务数据获取失败或载入失败,并生成内容为同步失败的执行结果。
130.进一步地,所述执行结果还可包括:内容为同步中断、正在同步、等待线程等其他描述调度任务当前执行情况。
131.在一个优选的实施例中,所述调用所述效率分析组件运算所述执行结果得到导数分析信息,将所述导数分析信息发送至所述用户端形成分析页面的步骤,包括:
132.s64:根据所述执行结果的内容对所述执行结果进行分类,并计算各类别所述执行结果内容及其数量得到执行分析信息。
133.本步骤中,计算同步成功的执行结果的数量,以及内容为同步失败的执行结果数量。进一步地,所述执行结果还可包括:内容为同步中断、正在同步、等待线程等其他描述调度任务当前执行情况,此时,所述执行分析信息还包括内容为同步中断的执行结果数量、内容为正在同步的执行结果数量、内容为等待线程的执行结果数量。
134.s65:将所述执行分析信息录入预置的分析页面模板中得到导数分析信息,将所述导数分析信息发送至所述用户端,并在所述用户端上渲染导数分析信息形成分析页面。
135.本步骤中,所述分析页面模板为预置的vue代码,通过将所述执行分析信息录入所述vue代码中形成导数分析信息,将所述导数分析信息发送至所述用户端并对其进行vue渲染,使所述导数分析信息在所述用户端上形成分析页面。
136.需要说明的是,vue代码是一种基于vue.js所构建的页面代码,其通过在用户端上的渲染操作实现页面的展示,其中,vue.js是一个构建数据驱动的web界面的库,其核心是一个响应的数据绑定系统。因此,vue.js的核心库只关注视图层,非常容易与其它库或已有项目整合,提高了页面及所述执行分析信息的整合效果。
137.优选的,所述将所述导数分析信息发送至所述用户端形成分析页面之后,所述方法还包括:
138.将所述分析页面上传至区块链中。
139.需要说明的是,基于分析页面得到对应的摘要信息,具体来说,摘要信息由分析页面进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户设备可以从区块链中下载得该摘要信息,以便查证分析页面是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
140.实施例三:
141.请参阅图4,本实施例的一种数据同步装置1,包括:
142.页面发送模块11,用于接收用户端发送的访问请求,根据所述访问请求向所述用户端发送具有业务信息的数据源页面,其中,所述数据源页面与数据源系统关联,所述数据源系统是用于保存业务数据和业务信息的数据库服务器,所述业务信息用于描述所述业务数据的属性;
143.请求生成模块13,用于根据所述用户端点击所述数据源页面中的同步按键生成导数请求;
144.任务创建模块14,用于通过预置的调度系统根据所述导数请求创建导数脚本,并根据所述导数脚本创建调度任务;
145.任务执行模块15,用于调用所述调度系统执行所述调度任务,用以使所述导数请求中业务信息所对应的业务数据,在所述数据源系统和所述用户端之间进行数据同步。
146.可选的,所述数据同步装置1还包括:
147.信息管理模块12,用于接收用户端根据所述数据源页面发送的数据维护信息,根据所述数据维护信息编辑所述业务信息、或删除所述业务信息、或新增所述业务数据的业务信息。
148.可选的,所述数据同步装置1还包括:
149.导数分析模块16,用于获取所述调度任务的执行结果,将所述执行结果导入预置的效率分析组件,调用所述效率分析组件运算所述执行结果得到导数分析信息,将所述导数分析信息发送至所述用户端形成分析页面。
150.可选的,所述页面发送模块11包括:
151.权限判断单元111,用于提取所述访问请求中的身份信息,通过预置的用户库判断所述身份信息是否有权访问所述数据源系统;
152.页面渲染单元112,用于向所述用户端发送数据源页面信息,并控制所述用户端渲染所述数据源页面信息形成数据源页面;
153.无权判定单元113,用于向所述用户端发送无权访问信息。
154.可选的,所述请求生成模块13,包括:
155.第一请求单元131,用于根据用户端在数据源页面上点击所述离线同步按键所生成的离线信号向所述用户端发送接口表单,接收用户端在所述接口表单中选定的导入操作或导出操作,以及选定的业务信息的业务标签,根据所述导入操作或所述导出操作,以及所述离线信号和所述业务标签生成导数请求。
156.第二请求单元132,用于根据用户端在数据源页面上点击所述实时同步按键所生成的实时信号向所述用户端发送接口表单,接收用户端在所述接口表单中选定的导入操作或导出操作,以及选定的业务信息的业务标签,根据所述导入操作或所述导出操作,以及所述实时信号和所述业务标签生成导数请求。
157.第三请求单元133,用于根据用户端在数根据用户端在数据源页面上点击所述业务同步按键所生成的业务信号向所述用户端发送接口表单,接收用户端在所述接口表单中选定的导入操作或导出操作,以及选定的业务信息的业务标签,根据所述导入操作或所述导出操作,以及所述业务信号和所述业务标签生成导数请求。
158.可选的,所述任务创建模块14包括:
159.信息提取单元141,用于从所述导数请求中提取入参信息,提取所述导数请求中的请求信息;其中,所述入参信息包括所述业务标签,所述请求信息为所述导入操作或所述导出操作。
160.脚本生成单元142,用于根据所述请求信息从预置的接口模板中获取目标模板,将所述入参信息录入所述目标模板中以生成所述导数脚本。
161.任务生成单元143,用于调用所述调度系统根据所述导数脚本,创建用于从保存有业务数据的数据库中获取业务数据,或向所述数据库载入业务数据的调度任务。
162.可选的,所述任务执行模块15包括:
163.离线同步单元151,用于在所述调度任务中具有离线信号时,调用所述调度系统中的导数组件按照预置的离线周期或离线时间段执行所述调度任务,使所述导数请求中业务信息所对应的业务数据,在所述数据源系统和所述用户端之间进行数据同步。
164.实时同步单元152,用于在所述调度任务中具有实时信号时,调用所述调度系统中的导数组件执行所述调度任务,使所述导数请求中业务信息所对应的业务数据,在所述数据源系统和所述用户端之间进行数据同步。
165.业务同步单元153,用于在所述调度任务中具有业务信号时,则通过所述调度系统启动语句执行组件,使所述导数请求中业务信息所对应的业务数据,在所述数据源系统和所述用户端之间进行数据同步。
166.本技术方案应用于大数据的数据处理领域,通过根据所述访问请求向所述用户端发送具有业务信息的数据源页面,并根据所述用户端点击所述数据源页面中的同步按键生成导数请求,再通过预置的调度系统根据所述导数请求创建导数脚本,并根据所述导数脚本创建调度任务,及调用所述调度系统执行所述调度任务,使所述导数请求中业务信息所对应的业务数据,在所述数据源系统和所述用户端之间实现完全同步。
167.实施例四:
168.为实现上述目的,本发明还提供一种计算机设备5,实施例三的数据同步装置的组成部分可分散于不同的计算机设备中,计算机设备5可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个应用服务器所组成的服务器集群)等。本实施例的计算机设备至少包括但不限于:可通过系统总线相互通信连接的存储器51、处理器52,如图5所示。需要指出的是,图5仅示出了具有组件
‑
的计算机设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
169.本实施例中,存储器51(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器51可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器51也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,存储器51还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,存储器51通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例三的数据同步装置的程序代码等。此外,存储器51还可以用于暂时地存储已经输出或者将要输出的各类数据。
170.处理器52在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器52通常用于控制计算机设备的总体操作。本实施例中,处理器52用于运行存储器51中存储的程序代码或者处理数据,例如运行数据同步装置,以实现实施例一和实施例二的数据同步方法。
171.实施例五:
172.为实现上述目的,本发明还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,程序被处理器52执行时实现相应功能。本实施例的计算机可读存储介质用于存储实现所述数据同步方法的计算机程序,被处理器52执行时实现实施例一和实施例二的数据同步方法。
173.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
174.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
175.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。