1.本技术实施例涉及大数据处理的技术领域,特别是涉及一种异构数据源同步质量监控方法及装置。
背景技术:2.现有的数据质量监控方案针对mapreduce作业和hive作业,根据业务上的需求,配置相应的数据质量规则,通过计算框架在数据产出过程中进行规则判定,最后通过数据的产出结果通过计数器counter生成质量报告。现有的数据质量监控技术构建于大数据计算框架下,合理利用集群资源,在计算框架下数据产出的同时进行数据质量监控,针对mapreduce作业跟hive作业的产出结果生成详实的质量报告。
3.然而,这种方案依赖集群及大数据计算框架,在面对异构数据源例如:主流的rdbms数据库、nosql等,配置繁琐,支持不完善,服务器资源占用较高,增加开发、维护及运维成本。并且,数据质量监控数据通过计数器counter的方式输出,需对数据质量监控结果进行下一步分析或持久化。由于计算框架的局限,对于链式任务过程,在数据质量未达到标准的情况下,未能实时处理此数据问题,也未能中断此任务,还需要根据质量报告进行二次处理,不可避免地造成资源的浪费。
技术实现要素:4.基于此,本技术实施例的目的在于,提供一种异构数据源同步质量监控方法及装置,可预先配置多样化的监控规则,通过计算框架实现监控数据输出的多样化,并实现异构数据源的同步处理。
5.第一方面,本技术实施例提供一种异构数据源同步质量监控方法,该方法包括以下步骤:
6.从调度平台获取预先配置好的监控规则;
7.按照预设的规则协议,将所述监控规则转换为配置信息,并将所述配置信息传递至计算框架,其中,所述计算框架规定有所述规则协议的结构,所述规则协议指示了可被用于被转换的监控规则;
8.所述计算框架通过所述规则协议,解析所述配置信息,得到所述监控规则;
9.所述计算框架对产出的每一行数据使用所述监控规则,并判断每一行数据是否满足所述监控规则,以及对判断结果进行统计计数,得到数据质量监控数据;
10.数据产出完毕时,通过计数器的方式输出所述数据质量监控数据。
11.进一步地,所述监控规则包括一组或多组,多组所述监控规则可配置为“and”和/或“or”的关系。
12.进一步地,所述监控规则以插件的形式加载于所述计算框架。
13.进一步地,所述规则协议还用于配置开启或配置关闭所述监控规则。
14.进一步地,所述计算框架包括任务模块、调度模块和任务组模块;
15.所述任务模块为中枢管理节点,用于数据清理、子任务切分和工作组管理;
16.所述调度模块用于将所述任务模块切分的多个子任务重新组合成任务组;
17.所述任务组模块用于启动reader—》processor—》writer的工作线程以完成任务同步工作。
18.进一步地,所述通过计数器的方式输出所述数据质量监控数据,包括:
19.通过计数器的方式,将所述数据质量监控以文件形式输出到文件系统。
20.进一步地,得到数据质量监控数据后,还包括如下步骤:
21.根据所述监控规则堵塞当前任务节点或发出预警信号。
22.进一步地,所述监控规则包括表级规则和字段级规则;
23.所述监控规则的对象包括但不限于:表总数、表空间、字段空值、字段最大值、字段最小值、字段平均值占比、空值、重复值。
24.第二方面,本技术实施例还提供一种异构数据源同步质量监控装置,包括:
25.监控规则获取模块,用于从调度平台获取预先配置好的监控规则;
26.配置信息传递模块,用于按照预设的规则协议,将所述监控规则转换为配置信息,并将所述配置信息传递至计算框架,其中,所述计算框架规定有所述规则协议的结构,所述规则协议指示了可被用于被转换的监控规则;
27.配置信息解析模块,用于控制所述计算框架通过所述规则协议,解析所述配置信息,得到所述监控规则;
28.监控模块,用于控制所述计算框架对产出的每一行数据使用所述监控规则,并判断每一行数据是否满足所述监控规则,以及对判断结果进行统计计数,得到数据质量监控数据;
29.数据输出模块,用于在数据产出完毕时,通过计数器的方式输出所述数据质量监控数据。
30.第三方面,本技术实施例还提供一种电子设备,该电子设备包括存储器,处理器以及储存在所述储存器中并可被所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如本技术实施例第一方面任意一项所述的异构数据源同步质量监控方法的步骤。
31.本技术实施例提供的一种异构数据源同步质量监控方法及装置,采用自研框架,针对异构数据源(主流的rdbms数据库、nosql、大数据工具等)提供更全面的监控能力;通过自定义协议约束规则,对符合协议结构的规则进行解析;根据配置粒度,既能输出细粒度的报告详情,也能从任务层面输出监控报告;在监控规则配置下,对于链式任务的调度,根据规则进行实时堵塞跟预警。
32.本技术实施例提供的一种异构数据源同步质量监控方法及装置,基于开源框架二次开发,对异构数据源(主流的rdbms数据库、nosql、大数据工具等)支持良好。通过配置数据质量监控规则,在数据产出的时候同时输出数据质量监控数据,避免了数据重复扫描,降低了集群计算资源的使用,提高了整个集群计算资源的有效利用率。同时监控规则是可配置的,不需要开发mapreduce监控作业,减少了开发工作量。而本技术实施例对于多源进行切分,互不干扰,职责清晰,可显著提高维护能力及执行效率。
33.为了更好地理解和实施,下面结合附图详细说明本技术实施例。
附图说明
34.图1为本技术实施例提供的一种异构数据源同步质量监控方法的流程示意图;
35.图2为本技术实施例所使用的调度组件的工作示意图;
36.图3为本技术实施例所使用的同步组件的内部工作示意图;
37.图4为本技术实施例在一个实施例中进行堵塞节点的流程示意图;
38.图5为本技术实施例所使用的计算框架的结构示意图;
39.图6为本技术实施例提供的一种异构数据源同步质量监控装置的结构示意图;
40.图7位本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
41.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施例方式作进一步地详细描述。
42.应当明确,所描述的实施例仅仅是本技术实施例一部分实施例,而不是全部的实施例。基于本技术实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本技术实施例保护的范围。
43.在本技术实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术实施例。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
44.下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。在本技术的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本技术中的具体含义。
45.此外,在本技术的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
46.针对背景技术中的问题,本技术实施例提供一种异构数据源同步质量监控方法,如图1所示,该方法包括以下步骤:
47.s01:从调度平台获取预先配置好的监控规则。
48.如图2所示,其中,调度平台是自动运行调度任务的计算机设备或虚拟模块,在本技术实施例中,监控规则并不限定于提前写好的固定规则,用户可以在调度平台上配置以及修改监控规则。
49.其中,监控规则规定了对数据的质量进行监督的规则,其可以包括了不同维度、不同方式的与数据质量相关的规则,通常来说,监控规则可以用于指示数据处理流程的各个环节中数据的完整性、准确性、一致性和及时性。在一个具体的实施例中,监控规则包括一组或多组,多组所述监控规则可配置为“and”和/或“or”的关系。
50.优选的,监控规则包括表级规则和字段级规则。
51.如下表所示,监控规则的对象包括但不限于:表总数、表空间、字段空值、字段最大值、字段最小值、字段平均值占比、空值、重复值。
[0052][0053][0054]
s02:按照预设的规则协议,将所述监控规则转换为配置信息,并将所述配置信息传递至计算框架,其中,所述计算框架规定有所述规则协议的结构,所述规则协议指示了可被用于被转换的监控规则。
[0055]
在本技术实施例中,计算框架用于完成数据处理的任务,以及执行对数据质量的监督。
[0056]
该规则协议用于实现监控规则的转换,可以通过在规则协议中确定可用或需要使用的监控规则,将需要用到的监控规则转换为配置信息,并将配置信息传递个计算框架后再转换为具体使用到的监控规则。
[0057]
具体的,监控规则被调度系统以配置信息的方式传递到计算框架,计算框架通过上下文方式进一步传递这些规则信息;如图2所示,通过rpc框架传输到执行器组,执行器组再根据调度配置传递到计算框架即同步组件上。
[0058]
优选的,监控规则以插件的形式加载于计算框架。根据不同的数据使用目的和规则,可变更加载不同的质量监控规则。
[0059]
优选的,规则协议还用于配置开启或配置关闭所述监控规则,节省资源。
[0060]
s03:所述计算框架通过所述规则协议,解析所述配置信息,得到所述监控规则。
[0061]
调度执行时,计算框架自动识别监控规则。具体的,计算框架规定交互协议的结构,调度平台根据协议的结构进行解析,通过rpc传输到执行器。执行时,计算框架通过解析协议的内容,获取到这些监控规则。
[0062]
s04:所述计算框架对产出的每一行数据使用所述监控规则,并判断每一行数据是否满足所述监控规则,以及对判断结果进行统计计数,得到数据质量监控数据。
[0063]
如图3所示,图3为本技术实施例所使用的同步组件的内部工作示意图。源读取组件从数据源获取收据后,计算框架判断每一行数据是否满足所述监控规则。满足监控规则
的数据被判断为正常,将由目标写入组件对其进行处理;不满足监控规则的数据需要被拦截,将由收集组件对其进行处理。优选的,收集组件还可以对拦截的数据进行计数,达到预设的阈值后,将终止源读取组件的工作,停止从该数据源获取数据。
[0064]
s05:数据产出完毕时,通过计数器的方式输出所述数据质量监控数据。
[0065]
优选的,通过计数器的方式,将所述数据质量监控以文件形式输出到文件系统。数据质量监控数据输出到文件,可供监控人员在宏观层面上对数据整体质量进行二次加工,如数据质量大屏等。
[0066]
另外,本技术实施例配置的监控规则,提供监控粒度的控制,能细粒度输出每条满足监控规则数据(可通过配置输出到文件系统可供详细的数据分析),计算框架收集满足规则的数据后,可配置输出以供监控人员细粒度排查质量问题。
[0067]
也能从任务层面输出监控报告,监控报告输出到数据库及文件系统。
[0068]
在另一个优选的实施例中,得到数据质量监控数据后,还包括如下步骤:
[0069]
s06:根据所述监控规则堵塞当前任务节点或发出预警信号。
[0070]
其中,监控规则可提前配置好特定的阈值、强弱,根据监控规则所设置的阈值、强弱等判定任务是否中断执行。
[0071]
优选的,可根据监控规则进行堵塞节点(当前任务节点中断)或进行预警(通过邮件预警、短信预警),运行时的关键链路如图4所示。任务节点1获取到的数据,通过数据之间规则后,输出数据1,同时判断数据1是否存在风险。若存在低风险,则将其记录在质量报告;若存在高风险,则发出预警信息至管理人员,其中,预警信息可以为邮件、短信等形式,提醒管理人员及时查看异常;若触及强规则,则根据规则进行中断处理,堵塞下游的任务节点2,堵塞该链式流程。
[0072]
在一个优选的实施例中,本技术实施例所使用的计算框架为自研框架,如图5所示,计算框架包括任务模块、调度模块和任务组模块。
[0073]
所述任务模块为中枢管理节点,用于数据清理、子任务切分和工作组管理。
[0074]
所述调度模块用于将所述任务模块切分的多个子任务重新组合成任务组。
[0075]
所述任务组模块用于启动reader—》processor—》writer的工作线程以完成任务同步工作。
[0076]
在一个具体的实施例和工作场景中,将计算框架完成单个数据同步、计算的作业,称之为job,任务模块是单个job作业的中枢管理节点,承担了数据清理、子任务切分(将单一job作业计算转化为多个task子任务)、taskgroup管理等功能。
[0077]
优选的,使用者可根据不同的源端切分策略(例如:mysql、oracle等组),将job切分成多个小的task(子任务),以便于并发执行。与现有技术相比,现技术只能针对mapreduce作业跟hive作业,而本技术实施例对于多源进行切分,互不干扰,职责清晰,可显著提高维护能力及执行效率。
[0078]
将单一job作业计算切分转化为多个task子任务后,调度模块(scheduler模块)用于将所述任务模块切分的多个子任务重新组合成任务组。根据配置的并发数据量,将拆分成的task重新组合,组装成taskgroup(任务组)。每一个taskgroup负责以一定的并发运行完毕分配好的所有task。与现技术相比,本技术通过配置可根据服务器信息动态调整并发执行的个数,充分利用了服务器性能,提高计算框架的处理能力。
[0079]
每一个task子任务都由taskgroup负责启动,task启动后,任务组模块会固定启动reader—》processor—》writer的线程来完成任务同步工作。其中processor(处理器模块)提供扩展功能,规则处理模块于此处加入,对比现技术单一的质量监控,本技术可适用不同场景进行扩展,例如:输出细粒度报告,扩展预警能力等。
[0080]
本技术实施例还提供一种异构数据源同步质量监控装置,如图6所示,该异构数据源同步质量监控装置600包括:
[0081]
监控规则获取模块610,用于从调度平台获取预先配置好的监控规则;
[0082]
配置信息传递模块620,用于按预设的规则协议,将所述监控规则转换为配置信息,并将所述配置信息传递至计算框架,其中,所述计算框架规定有所述规则协议的结构;
[0083]
配置信息解析模块630,用于控制所述计算框架通过所述规则协议,解析所述配置信息,得到所述监控规则;
[0084]
监控模块640,用于控制所述计算框架对产出的每一行数据使用所述监控规则,并判断每一行数据是否满足所述监控规则,以及对判断结果进行统计计数,得到数据质量监控数据;
[0085]
数据输出模块650,用于在数据产出完毕时,通过计数器的方式输出所述数据质量监控数据。
[0086]
在一个可选的实施例中,所述监控规则包括一组或多组,多组所述监控规则可配置为“and”和/或“or”的关系。
[0087]
在一个可选的实施例中,所述监控规则以插件的形式加载于所述计算框架。
[0088]
在一个可选的实施例中,所述规则协议还用于配置开启或配置关闭所述监控规则。
[0089]
在一个可选的实施例中,所述计算框架包括任务模块、调度模块和任务组模块;
[0090]
所述任务模块为中枢管理节点,用于数据清理、子任务切分和工作组管理;
[0091]
所述调度模块用于将所述任务模块切分的多个子任务重新组合成任务组;
[0092]
所述任务组模块用于启动reader—》processor—》writer的工作线程以完成任务同步工作。
[0093]
在一个可选的实施例中,数据输出模块650包括:
[0094]
文件输出单元,用于通过计数器的方式,将所述数据质量监控以文件形式输出到文件系统。
[0095]
在一个可选的实施例中,该异构数据源同步质量监控装置600还包括:
[0096]
后处理模块660,用于在得到数据质量监控数据后,根据所述监控规则堵塞当前任务节点或发出预警信号。
[0097]
在一个可选的实施例中,所述监控规则包括表级规则和字段级规则;
[0098]
所述监控规则的对象包括但不限于:表总数、表空间、字段空值、字段最大值、字段最小值、字段平均值占比、空值、重复值。
[0099]
本技术实施例还提供一种电子设备,如图7所示,该电子设备包括存储器720,处理器710以及储存在所述储存器中并可被处理器执行的计算机程序,该处理器执行计算机程序时实现以下步骤:
[0100]
从调度平台获取预先配置好的监控规则;
[0101]
按预设的规则协议,将所述监控规则转换为配置信息,并将所述配置信息传递至计算框架,其中,所述计算框架规定有所述规则协议的结构;
[0102]
所述计算框架通过所述规则协议,解析所述配置信息,得到所述监控规则;
[0103]
所述计算框架对产出的每一行数据使用所述监控规则,并判断每一行数据是否满足所述监控规则,以及对判断结果进行统计计数,得到数据质量监控数据;
[0104]
数据产出完毕时,通过计数器的方式输出所述数据质量监控数据。
[0105]
在一个示例性的实施例中,所述监控规则包括一组或多组,多组所述监控规则可配置为“and”和/或“or”的关系。
[0106]
在一个示例性的实施例中,所述监控规则以插件的形式加载于所述计算框架。
[0107]
在一个示例性的实施例中,所述规则协议还用于配置开启或配置关闭所述监控规则。
[0108]
在一个示例性的实施例中,所述计算框架包括任务模块、调度模块和任务组模块;
[0109]
所述任务模块为中枢管理节点,用于数据清理、子任务切分和工作组管理;
[0110]
所述调度模块用于将所述任务模块切分的多个子任务重新组合成任务组;
[0111]
所述任务组模块用于启动reader—》processor—》writer的工作线程以完成任务同步工作。
[0112]
在一个示例性的实施例中,所述通过计数器的方式输出所述数据质量监控数据,包括:
[0113]
通过计数器的方式,将所述数据质量监控以文件形式输出到文件系统。
[0114]
在一个示例性的实施例中,得到数据质量监控数据后,该处理器执行计算机程序时还实现以下步骤:
[0115]
根据所述监控规则堵塞当前任务节点或发出预警信号。
[0116]
在一个示例性的实施例中,所述监控规则包括表级规则和字段级规则;
[0117]
所述监控规则的对象包括但不限于:表总数、表空间、字段空值、字段最大值、字段最小值、字段平均值占比、空值、重复值。
[0118]
本技术实施例提供的一种异构数据源同步质量监控方法及装置,采用自研框架,针对异构数据源(主流的rdbms数据库、nosql、大数据工具等)提供更全面的监控能力;通过自定义协议约束规则,对符合协议结构的规则进行解析;根据配置粒度,既能输出细粒度的报告详情,也能从任务层面输出监控报告;在监控规则配置下,对于链式任务的调度,根据规则进行实时堵塞跟预警。
[0119]
本技术实施例提供的一种异构数据源同步质量监控方法及装置,基于开源框架二次开发,对异构数据源(主流的rdbms数据库、nosql、大数据工具等)支持良好。通过配置数据质量监控规则,在数据产出的时候同时输出数据质量监控数据,避免了数据重复扫描,降低了集群计算资源的使用,提高了整个集群计算资源的有效利用率。同时监控规则是可配置的,不需要开发mapreduce监控作业,减少了开发工作量。而本技术实施例对于多源进行切分,互不干扰,职责清晰,可显著提高维护能力及执行效率。
[0120]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0121]
显然,本领域的技术人员应该明白,上述的本技术实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术实施例不限制于任何特定的硬件和软件结合。
[0122]
本技术实施例是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0123]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0124]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0125]
以上所述实施例仅表达了本技术实施例的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术实施例构思的前提下,还可以做出若干变形和改进,这些都属于本技术实施例的保护范围。