发明内容
本发明的主要目的在于解决现有数据治理效率低的技术问题。
本发明第一方面提供了一种数据治理方法,所述数据治理方法包括:
对数据仓库内所有源数据进行预处理,所述预处理包括数据标注;
根据各源数据对应的数据标签,配置具有多种计算粒度和多种运算规则的指标集,其中,所述指标集中每个指标对应一个或多个数据标签;
根据所述指标集中各指标,生成多条计算任务,其中,所述计算任务包括离线计算任务与实时流计算任务;
执行所述各计算任务,以根据所述各指标对应的计算粒度和运算规则,对所述各指标对应数据标签的源数据进行计算,得到指标数据;
根据预置数据存储规则,对所述各指标数据进行分类存储。
可选的,在本发明第一方面的第一种实现方式中,所述根据各源数据对应的数据标签,配置具有多种计算粒度和多种运算规则的指标集包括:
获取各源数据对应的数据标签;
分别将各数据标签与预置指标配置规则进行匹配;
若匹配成功,则基于匹配的指标配置规则,将匹配到的数据标签与对应指标绑定;
根据指标配置规则、数据标签与指标的绑定关系,构建各数据标签对应的具有多种计算粒度和多种运算规则的指标集。
可选的,在本发明第一方面的第一种实现方式中,所述根据所述指标集中各指标,生成多条计算任务包括:
获取所述指标集中各指标;
根据所述指标集中各指标,对应生成多条计算任务;
根据各指标的时效要求,确定各计算任务的执行方式,其中,所述执行方式包括离线执行与实时执行。
可选的,在本发明第一方面的第一种实现方式中,所述执行所述各计算任务,以根据所述各指标对应的计算粒度和运算规则,对所述各指标对应数据标签的源数据进行计算,得到指标数据包括:
获取待执行的计算任务;
根据预置任务生成规则,确定各计算任务之间的任务依赖关系;
根据各计算任务之间的任务依赖关系以及预置的任务执行规则,确定各计算任务的执行顺序;
根据所述执行顺序,执行所述各计算任务,以根据所述各指标对应的计算粒度和运算规则,对所述各指标对应数据标签的源数据进行计算,得到指标数据。
可选的,在本发明第一方面的第一种实现方式中,在所述对数据仓库内所有源数据进行预处理之前,还包括:
接收业务端发起的数据订阅请求;
根据所述数据订阅请求,确定数据订阅信息,所述数据订阅信息包括:订阅的指标数据信息以及订阅数据的提供方式。
可选的,在本发明第一方面的第一种实现方式中,在所述根据预置数据存储规则,对所述各指标数据进行分类存储之后,还包括:
根据订阅的指标数据信息,确定对应的指标数据;
根据订阅数据的提供方式,将订阅的指标数据实时发布给订阅方。
本发明第二方面提供了一种数据治理装置,所述数据治理装置包括:
预处理模块,用于对数据仓库内所有源数据进行预处理,所述预处理包括数据标注;
配置模块,用于根据各源数据对应的数据标签,配置具有多种计算粒度和多种运算规则的指标集,其中,所述指标集中每个指标对应一个或多个数据标签;
生成模块,用于根据所述指标集中各指标,生成多条计算任务,其中,所述计算任务包括离线计算任务与实时流计算任务;
执行模块,用于执行所述各计算任务,以根据所述各指标对应的计算粒度和运算规则,对所述各指标对应数据标签的源数据进行计算,得到指标数据;
存储模块,用于根据预置数据存储规则,对所述各指标数据进行分类存储。
可选的,在本发明第二方面的第一种实现方式中,所述配置模块具体用于:
获取各源数据对应的数据标签;
分别将各数据标签与预置指标配置规则进行匹配;
若匹配成功,则基于匹配的指标配置规则,将匹配到的数据标签与对应指标绑定;
根据指标配置规则、数据标签与指标的绑定关系,构建各数据标签对应的具有多种计算粒度和多种运算规则的指标集。
可选的,在本发明第二方面的第二种实现方式中,所述生成模块具体用于:
获取所述指标集中各指标;
根据所述指标集中各指标,对应生成多条计算任务;
根据各指标的时效要求,确定各计算任务的执行方式,其中,所述执行方式包括离线执行与实时执行。
可选的,在本发明第二方面的第三种实现方式中,所述执行模块具体用于:
获取待执行的计算任务;
根据预置任务生成规则,确定各计算任务之间的任务依赖关系;
根据各计算任务之间的任务依赖关系以及预置的任务执行规则,确定各计算任务的执行顺序;
根据所述执行顺序,执行所述各计算任务,以根据所述各指标对应的计算粒度和运算规则,对所述各指标对应数据标签的源数据进行计算,得到指标数据。
可选的,在本发明第二方面的第四种实现方式中,所述数据治理装置还包括:
订阅模块,用于接收业务端发起的数据订阅请求;根据所述数据订阅请求,确定数据订阅信息,所述数据订阅信息包括:订阅的指标数据信息以及订阅数据的提供方式。
可选的,在本发明第二方面的第五种实现方式中,所述数据治理装置还包括:
发布模块,用于根据订阅的指标数据信息,确定对应的指标数据;根据订阅数据的提供方式,将订阅的指标数据实时发布给订阅方。
本发明第三方面提供了一种数据治理设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述数据治理设备执行上述的数据治理方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的数据治理方法。
本发明提供的技术方案中,先对各源数据进行打标,不同数据使用不同的数据标签,然后再根据各源数据的数据标签,配置具有多种计算粒度和多种运算规则的指标集,然后再根据配置的各指标,生成对应的计算任务并运行,从而得到各种指标数据。本发明采用标签对源数据进行管理,使得繁多的指标不再无序、单一。指标管理更加方便高效。另外,多标签、多粒度的指标管理更能适应业务的多维分析、数据可视化的数据需求。
具体实施方式
本发明实施例提供了一种数据治理方法、装置、设备及存储介质。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中数据治理方法的第一个实施例包括:
101、对数据仓库内所有源数据进行预处理,所述预处理包括数据标注;
可以理解的是,本发明的执行主体可以为数据治理装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
本实施例中,在对数据仓库内的源数据进行数据治理计算之前,需要先进行预处理,也即进行元数据管理,包括:对数据进行定义、格式转换、规范化处理等。
本实施例中,为使源数据管理更为高效,因此在对源数据进行预处理时,进一步给不同类型数据分别打上数据标签,后续根据数据标签即可对数据进行精确管理。
在一实施例中,优选基于预置标注规则,进行数据标注。例如,根据各源数据来源的业务系统、在业务系统中的字段命名,进行数据标注。源数据A在业务系统1中对应的字段名称为用户名,则可以标注为业务系统1、用户名。
102、根据各源数据对应的数据标签,配置具有多种计算粒度和多种运算规则的指标集,其中,所述指标集中每个指标对应一个或多个数据标签;
本实施例中,使用不同数据标签对各源数据进行标注,数据标签具体根据源数据对应的业务类型、业务场景等进行设置。例如,源数据为销售业务数据,因此可以打上的数据标签有:进货量、出货量、进货价、销售价等。
本实施例中,计算粒度指对源数据进行计算所采用的计算标准,比如时间计算标准可以划分为年粒度、季度粒度、月粒度、周粒度、天粒度,地理计算标准可以划分为:世界粒度、国家粒度、省粒度、市粒度、县粒度等。其中,各粒度之间有粗粒度和细粒度之分并具有父子依赖关系。例如,年粒度比月粒度粗,计算12个月的月粒度等价于以年粒度计算的数据。因此,年粒度指标可以取月粒度指标作为数据源计算。
本实施例中,运算规则是指对一个或多个数据标签对应的源数据进行计算而得到某个指标所采用的计算方式,例如,利润指标对应的计算规则为:出货量*销售价-进货量*进货价。年利润指标等于每个月的月利润指标之和。
本实施例的指标集中包含有多个指标,不同的指标通过不同的运算规则得到,计算粒度可能相同,也可能不同,具体根据实际业务需要进行配置。
103、根据所述指标集中各指标,生成多条计算任务,其中,所述计算任务包括离线计算任务与实时流计算任务;
本实施例中,各指标需要根据配置的运算规则对各数据标签对应源数据进行计算得到,因此,需要根据配置的各指标来生成对应指标的计算任务得到指标数据。其中,计算任务可以是以各数据标签对应的数据为源数据进行指标数据计算,也可以是以指标数据为源数据,计算其他指标数据。也即使得计算任务之间存在依赖关系。
本实施例中,在生成计算任务时,进一步分析各计算任务之间的任务依赖关系,对有依赖关系的任务串行执行,而对无依赖关系的任务可并行执行。根据实际的业务数据时效需求,分为离线、实时两种计算方式,也即计算任务包括离线计算任务与实时流计算任务。
104、执行所述各计算任务,以根据所述各指标对应的计算粒度和运算规则,对所述各指标对应数据标签的源数据进行计算,得到指标数据;
本实施例中,在生成计算任务后即可运行该计算任务而得到对应的指标数据,也即进行数据治理后得到的数据。
本实施例中,各计算任务都对应有待计算指标对应的计算粒度和运算规则,通过运行计算任务,从而对各指标对应数据标签的源数据进行计算,得到进行数据治理后的指标数据。
本实施例中,根据计算任务类型的不同,采用不同方式进行计算。对于离线计算任务,优选采用两级计算方式运行,先运行小粒度、多数据标签的指标计算,然后再运行大粒度、少数据标签的指标计算。而对于实时流计算任务,则实时计算。
105、根据预置数据存储规则,对所述各指标数据进行分类存储。
本实施例中,数据存储规则具体根据数据特性、用途、时效等因素进行设置。针对不同的数据特性、用途、时效要求等,采用不同的存储介质、计算方式,满足业务需求的同时,注重资源的合理分配及计算性能的保障。指标计算结果优选以influxdb、hive作为存储介质。根据不同存储介质的特性,对应进行数据分类存储。例如,将冷数据、明细数据存储于hive,便于mapreduce离线计算;而将热数据存储于influxdb,便于实时查询获取。
可选的,在步骤S101之前,还包括:
接收业务端发起的数据订阅请求;
根据所述数据订阅请求,确定数据订阅信息,所述数据订阅信息包括:订阅的指标数据信息以及订阅数据的提供方式。
可选的,在步骤S105之后,还包括:
根据订阅的指标数据信息,确定对应的指标数据;
根据订阅数据的提供方式,将订阅的指标数据实时发布给订阅方。
本可选实施例中,数据治理计算平台提供各种指标的计算服务,计算出的指标数据可供各业务端订阅。业务端可以预先向数据治理计算平台发起相关指标数据的订阅请求,数据治理计算平台根据数据订阅请求,进一步确定数据订阅信息,包括订阅的指标数据信息以及订阅数据的提供方式,本可选实施例优选提供kafka、redis两种数据发布方式,数据治理计算平台会根据数据订阅信息将订阅的指标数据实时发布给订阅方,数据提供方式可采用push或者pull方式。
本实施例中,先对各源数据进行打标,不同数据使用不同的数据标签,然后再根据各源数据的数据标签,配置具有多种计算粒度和多种运算规则的指标集,然后再根据配置的各指标,生成对应的计算任务并运行,从而得到各种指标数据。本实施例采用标签对源数据进行管理,使得繁多的指标不再无序、单一。指标管理更加方便高效。另外,多标签、多粒度的指标管理更能适应业务的多维分析、数据可视化的数据需求。
请参阅图2,本发明实施例中数据治理方法的第二个实施例包括:
201、对数据仓库内所有源数据进行预处理,所述预处理包括数据标注;
202、获取各源数据对应的数据标签;
203、分别将各数据标签与预置指标配置规则进行匹配;
204、若匹配成功,则基于匹配的指标配置规则,将匹配到的数据标签与对应指标绑定;
205、根据指标配置规则、数据标签与指标的绑定关系,构建各数据标签对应的具有多种计算粒度和多种运算规则的指标集,其中,所述指标集中每个指标对应一个或多个数据标签;
本实施例中预先设置有各指标的配置规则,包括指标所使用的数据标签、各数据标签对应数据之间的计算式等。例如,利润指标对应的数据标签有:进货量、出货量、进货价、销售价,对应的计算式为:利润=出货量*销售价-进货量*进货价,计算粒度为按月计算。
本实施例中,在完成对数据仓库中源数据的打标后,将各源数据对应的数据标签分别与预置的指标配置规则一一进行匹配,若匹配成功,则说明当前指标配置规则需要使用与之匹配的数据标签的源数据来构建对应的指标,因此,基于匹配的指标配置规则,将匹配到的数据标签与对应指标绑定,然后根据指标配置规则、数据标签与指标的绑定关系,构建各数据标签对应的具有多种计算粒度和多种运算规则的指标集。
206、根据所述指标集中各指标,生成多条计算任务,其中,所述计算任务包括离线计算任务与实时流计算任务;
207、执行所述各计算任务,以根据所述各指标对应的计算粒度和运算规则,对所述各指标对应数据标签的源数据进行计算,得到指标数据;
208、根据预置数据存储规则,对所述各指标数据进行分类存储。
本实施例采用标签对源数据进行管理,使得繁多的指标不再无序、单一。指标管理更加方便高效。指标集中包含有多个指标,不同的指标通过不同的运算规则得到,计算粒度可能相同,也可能不同,多标签、多粒度的指标管理更能适应业务的多维分析、数据可视化的数据需求。
请参阅图3,本发明实施例中数据治理方法的第三个实施例包括:
301、对数据仓库内所有源数据进行预处理,所述预处理包括数据标注;
302、根据各源数据对应的数据标签,配置具有多种计算粒度和多种运算规则的指标集,其中,所述指标集中每个指标对应一个或多个数据标签;
303、获取所述指标集中各指标;
304、根据所述指标集中各指标,对应生成多条计算任务;
305、根据各指标的时效要求,确定各计算任务的执行方式,其中,所述执行方式包括离线执行与实时执行,其中,所述计算任务包括离线计算任务与实时流计算任务;
本实施例中,先根据指标生成计算任务,同时根据各指标的时效要求,确定各计算任务的执行方式。例如,对于时效要求不高的指标,则采用离线方式计算,而对于时效要求较高的,则采用实时方式计算。
本实施例中,在生成计算任务时,还根据实际的业务数据时效需求,将计算任务的执行方式分为离线执行、实时执行两种方式,在保证满足业务需求的同时,减少了系统开销,降低了系统运行成本。
306、获取待执行的计算任务;
307、根据预置任务生成规则,确定各计算任务之间的任务依赖关系;
308、根据各计算任务之间的任务依赖关系以及预置的任务执行规则,确定各计算任务的执行顺序;
309、根据所述执行顺序,执行所述各计算任务,以根据所述各指标对应的计算粒度和运算规则,对所述各指标对应数据标签的源数据进行计算,得到指标数据;
310、根据预置数据存储规则,对所述各指标数据进行分类存储。
本实施例中,在生成计算任务时,还进一步分析各计算任务之间的任务依赖关系,对有依赖关系的任务串行执行,而对无依赖关系的任务可并行执行。例如,细粒度的指标先执行,粗粒度的指标后运行。当存在数据修正情况而需要对相关指标重新计算时,相关联指标任务可一次性重新运行,无需人工排查数据影响。
本实施例中,不同计算粒度之间具有父子依赖关系,因此对于具有任务依赖关系的计算任务,需要串行执行。同时,为保证任务计算效率,进一步引入了任务执行规则。
在一具体实施例中,所述任务执行规则包括:
(1)具有细计算粒度的指标的计算任务先执行,具有粗计算粒度的指标的计算任务后执行;
(2)采用多数个数据标签的指标的计算任务先执行,采用少数个数据标签的指标的计算任务后执行;
(3)当指标同时具有细计算粒度和粗计算粒度时,先执行细计算粒度的指标的计算任务,再以细计算粒度的指标对应数据为数据源,执行粗计算粒度的指标的计算任务。
本实施例中,对于多标签指标、细粒度优先计算,相对的较少标签、较粗粒度指标基于已计算过的指标计算,如年粒度指标会取月粒度指标作为数据源计算,从而最大程度的减小计算量,降低计算性能要求、提高计算效率。
上面对本发明实施例中数据治理方法进行了描述,下面对本发明实施例中数据治理装置进行描述,请参阅图4,本发明实施例中数据治理装置一个实施例包括:
预处理模块401,用于对数据仓库内所有源数据进行预处理,所述预处理包括数据标注;
配置模块402,用于根据各源数据对应的数据标签,配置具有多种计算粒度和多种运算规则的指标集,其中,所述指标集中每个指标对应一个或多个数据标签;
生成模块403,用于根据所述指标集中各指标,生成多条计算任务,其中,所述计算任务包括离线计算任务与实时流计算任务;
执行模块404,用于执行所述各计算任务,以根据所述各指标对应的计算粒度和运算规则,对所述各指标对应数据标签的源数据进行计算,得到指标数据;
存储模块405,用于根据预置数据存储规则,对所述各指标数据进行分类存储。
可选的,在一实施例中,所述配置模块402具体用于:
获取各源数据对应的数据标签;
分别将各数据标签与预置指标配置规则进行匹配;
若匹配成功,则基于匹配的指标配置规则,将匹配到的数据标签与对应指标绑定;
根据指标配置规则、数据标签与指标的绑定关系,构建各数据标签对应的具有多种计算粒度和多种运算规则的指标集。
可选的,在一实施例中,所述生成模块403具体用于:
获取所述指标集中各指标;
根据所述指标集中各指标,对应生成多条计算任务;
根据各指标的时效要求,确定各计算任务的执行方式,其中,所述执行方式包括离线执行与实时执行。
可选的,在一实施例中,所述执行模块404具体用于:
获取待执行的计算任务;
根据预置任务生成规则,确定各计算任务之间的任务依赖关系;
根据各计算任务之间的任务依赖关系以及预置的任务执行规则,确定各计算任务的执行顺序;
根据所述执行顺序,执行所述各计算任务,以根据所述各指标对应的计算粒度和运算规则,对所述各指标对应数据标签的源数据进行计算,得到指标数据。
可选的,在一实施例中,所述数据治理装置还包括:
订阅模块,用于接收业务端发起的数据订阅请求;根据所述数据订阅请求,确定数据订阅信息,所述数据订阅信息包括:订阅的指标数据信息以及订阅数据的提供方式;
发布模块,用于根据订阅的指标数据信息,确定对应的指标数据;根据订阅数据的提供方式,将订阅的指标数据实时发布给订阅方。
本实施例中,先对各源数据进行打标,不同数据使用不同的数据标签,然后再根据各源数据的数据标签,配置具有多种计算粒度和多种运算规则的指标集,然后再根据配置的各指标,生成对应的计算任务并运行,从而得到各种指标数据。本实施例采用标签对源数据进行管理,使得繁多的指标不再无序、单一。指标管理更加方便高效。另外,多标签、多粒度的指标管理更能适应业务的多维分析、数据可视化的数据需求。
上面图4从模块化功能实体的角度对本发明实施例中的数据治理装置进行详细描述,下面从硬件处理的角度对本发明实施例中数据治理设备进行详细描述。
图5是本发明实施例提供的一种数据治理设备的结构示意图,该数据治理设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据治理设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在数据治理设备500上执行存储介质530中的一系列指令操作。
数据治理设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的数据治理设备结构并不构成对数据治理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种数据治理设备,所述数据治理设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述数据治理方法的步骤。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述数据治理方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。