数据的处理方法、装置、电子设备及可读存储介质与流程

文档序号:33116824发布日期:2023-02-01 02:59阅读:45来源:国知局
1.本公开涉及数据处理
技术领域
:,尤其涉及信息流
技术领域
:。
背景技术
::2.在数据治理中,由操作人员编写贴源数据的更新逻辑、指标数据的计算逻辑以及报表数据的生成逻辑等数据处理任务之后,通常采用人工方式,控制贴源数据的数据更新周期。在需要的时间即数据源更新周期的时间到达时,根据各数据处理任务的执行时间,依次手动触发各数据处理任务执行。技术实现要素:3.本公开提供了一种数据的处理方法、装置、电子设备及可读存储介质。4.根据本公开的一方面,提供了一种数据的处理方法,所述数据的处理流向顺次为贴源数据节点、指标数据节点和报表数据节点,所述方法包括:5.根据指标数据节点的数据处理逻辑和报表数据节点的数据处理逻辑,进行数据血缘解析,以获得贴源数据节点、所述指标数据节点与所述报表数据节点之间的依赖关系;6.采用所述贴源数据节点所关联的至少两个贴源数据的数据源更新周期的最大公约数作为触发执行周期,获取所述贴源数据节点所匹配的至少一个贴源数据;7.根据所述依赖关系,生成所述至少一个贴源数据的数据流。8.根据本公开的另一方面,提供了一种数据的处理装置,所述数据的处理流向顺次为贴源数据节点、指标数据节点和报表数据节点,所述装置包括:9.解析单元,用于根据指标数据节点的数据处理逻辑和报表数据节点的数据处理逻辑,进行数据血缘解析,以获得贴源数据节点、所述指标数据节点与所述报表数据节点之间的依赖关系;10.匹配单元,用于采用所述贴源数据节点所关联的至少两个贴源数据的数据源更新周期的最大公约数作为触发执行周期,获取所述贴源数据节点所匹配的至少一个贴源数据;11.生成单元,用于根据所述依赖关系,生成所述至少一个贴源数据的数据流。12.根据本公开的再一方面,提供了一种电子设备,包括:13.至少一个处理器;以及14.与所述至少一个处理器通信连接的存储器;其中,15.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方面和任一可能的实现方式的方法。16.根据本公开的又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如上所述的方面和任一可能的实现方式的方法。17.根据本公开的又一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方面和任一可能的实现方式的方法。18.由上述技术方案可知,本公开实施例通过根据指标数据节点的数据处理逻辑和报表数据节点的数据处理逻辑,进行数据血缘解析,以获得贴源数据节点、所述指标数据节点与所述报表数据节点之间的依赖关系,进而,采用所述贴源数据节点所关联的至少两个贴源数据的数据源更新周期的最大公约数作为触发执行周期,获取所述贴源数据节点所匹配的至少一个贴源数据,使得能够根据所述依赖关系,生成所述至少一个贴源数据的数据流,以供被调度执行时能够及时进行数据的更新处理,整个流程无需人工参与,操作简单,并且正确率高,从而提高了数据处理的效率和可靠性。19.另外,采用本公开所提供的技术方案,能够有效地提高用户的体验。20.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。附图说明21.为了更清楚地说明本公开实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。附图用于更好地理解本方案,不构成对本公开的限定。其中:22.图1是根据本公开第一实施例的示意图;23.图2是图1对应的实施例中形成数据血缘链表的示意图;24.图3是图1对应的实施例中所关联的贴源数据表组的示意图;25.图4a-4d是图1对应的实施例中在不同的周期性触发执行时间所匹配的贴源数据表的示意图;26.图5是图1对应的实施例中在不同的周期性触发执行时间所匹配的各贴源数据表的数据流的示意图;27.图6是图5所示的各贴源数据表的数据流进行合并处理之后的示意图;28.图7是图1对应的实施例中触发器的设计示意图;29.图8是根据本公开第二实施例的示意图;30.图9是用来实现本公开实施例的数据的处理方法的电子设备的框图。具体实施方式31.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。32.显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。33.需要说明的是,本公开实施例中所涉及的终端设备可以包括但不限于手机、个人数字助理(personaldigitalassistant,pda)、无线手持设备、平板电脑(tabletcomputer)等智能设备;显示设备可以包括但不限于个人电脑、电视等具有显示功能的设备。34.另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。35.现如今,数据已成为企业的核心资产和重要的生产要素。在数据驱动的信息化时代,企业只有管理好核心业务数据,才能从中优化产品、开拓市场新渠道,打造企业核心竞争力。但在探索与数据相关的开发技术、应用场景和商业模式时,并非所有项目都能取得预期效果,许多预期需求无法实现,重要原因之一就是数据质量因素导致的。而数据治理正是企业管理和提高数据质量的重要手段。加强数据治理已成为企业提升数据管理能力的重要任务。36.数据的完整性、流通性、准确性、及时性和安全性,是实现规范化数据治理的重要目标,但由于实际项目过程中遇到的技术性阻碍,例如,数据源复杂多样导致无法统一管理,数据源的数据源更新周期不一致导致下层数据更新准确度偏离,数据血缘解析困难,数据更新需要人为触发导致数据实时性差等。因此,实现规范的数据治理往往困难重重。37.实现数据治理的其中三个关键目标在于保证数据的准确性、完整性和及时性。在实际项目中,数据往往采用分层治理的方案:38.(1)贴源层:包括贴源数据节点,负责对数据源进行同步,转换成统一的存储格式即贴源数据;39.(2)中间层:包括指标数据节点,负责对贴源数据进行加工处理,生成指标数据供用户进行数据分析;40.(3)应用层:包括报表数据节点,负责基于贴源数据和指标数据进行数据加工,生成可视化报表数据。41.其中,各个层所生成的数据,具体可以表的形式存在,即贴源数据表、指标数据表和报表数据表。42.在这种模式下,数据由贴源层-》中间层-》应用层进行单向流通,而保证每一层数据的准确性、完整性和及时性的关键问题在于:43.(1)如何自动解析上下层数据血缘,实现具有血缘关系的上下层数据表的按序更新,保证数据的正确性;44.(2)如何在上层的贴源数据表更新完成后,及时触发下层的指标数据表和报表数据表的更新,保证数据的及时性;45.(3)当下层的指标数据表和报表数据表依赖多个贴源数据表进行更新,而每个贴源数据表的数据源更新周期、触发逻辑不一致时,如何管理下层的指标数据表和报表数据表的触发逻辑,避免指标数据表和报表数据表的重复计算,从而保证数据的完整性。46.现有技术的一种实现方案为:人为管理数据更新;47.通常的数据治理场景,都是由数据分析师手动编写贴源数据的更新逻辑、指标数据的计算逻辑以及报表数据的生成逻辑等数据处理任务,然后人为控制贴源数据的数据更新周期即贴源数据的数据更新的时间周期,在需要的时间即数据源更新周期的时间到达时,按照人为解析的数据血缘,依次手动触发各数据处理任务执行。这种方式,在对数据实时性要求不高的数据治理场景较为常用。48.但是,这种方式,有如下缺点:49.(1)人为解析数据血缘错误率高,影响数据更新的准确性;50.(2)人为触发各数据处理任务的执行,即贴源数据的更新、指标数据的计算和报表数据的生成的执行,时间掌控精度差,影响数据更新的及时性;51.(3)需要数据分析师时刻关注数据源更新的时机,耗费人力资源,且随着涉及到的数据表越来越多,人为管控数据依赖较为困难。52.现有技术的另一种实现方案为:贴源数据表管理数据更新;53.由于人为管理数据更新的方式过于耗费人力资源,人为解析数据血缘错误率高,且人为无法精准掌控数据的数据源更新周期和更新时间,因此部分数据治理场景提出了一种由贴源数据表来统一管理上下层数据更新的方式。由数据分析师提前预置好贴源数据表的数据源、数据源更新周期,及其下层所依赖的指标数据表和报表数据表,基于数据依赖关系配置数据流,托管计算机自动触发数据源更新、指标数据计算以及报表数据生成的按序执行,从而保证数据更新的及时性。54.但是,这种方式,也有如下缺点:55.(1)一个数据流只能由单个贴源数据表的数据源集成任务进行管理,对于数据源更新周期、触发逻辑不一致的贴源数据表,无法进行统一管理;56.(2)数据血缘仍需要人为提前预置,当指标数据的计算逻辑和报表数据的生成逻辑发生变更时,需要人为介入更新数据血缘和数据依赖关系的配置;57.(3)当数据依赖关系愈加复杂时,例如,一个指标数据表的计算依赖多个数据源更新周期、触发逻辑不一致的贴源数据表的更新,在这种场景下,由贴源数据表管理数据更新的方式则会造成下层的指标数据表、报表数据表的重复计算,影响数据的准确性和完整性。58.针对上述问题,本公开提供了一种数据的处理方法,实现了一种特有的数据血缘自动解析方式,并能关联多套数据源更新周期、触发逻辑不一致的贴源数据,从而保证下层的数据更新的及时性、正确性和完整性。59.本公开的技术方案适用于金融领域,所处理的数据可以为金融数据,是指金融行业所涉及的市场数据、公司数据、行业指数和定价数据等的统称,凡是金融行业涉及相关的数据都可以归入金融市场大数据体系中,为从业者进行市场分析提供参考。例如,用户资源数据、用户属性数据、用户个性化数据等。60.本公开采用分层治理的数据治理方式,可以包括贴源层、中间层和应用层。数据的处理流向顺次为贴源数据节点、指标数据节点和报表数据节点。其中,贴源数据节点位于贴源层,指标数据节点位于中间层,报表数据节点位于应用层。61.数据源的数据会同步到所对应的贴源数据节点,经过贴源数据节点转换成统一的存储格式的贴源数据。贴源数据经过对应的指标数据节点进行计算处理,可以生成指标数据。贴源数据和指标数据再经由报表数据节点进行可视化处理,进而生成可视化的报表数据。62.图1是根据本公开第一实施例的示意图,如图1所示。63.101、根据指标数据节点的数据处理逻辑和报表数据节点的数据处理逻辑,进行数据血缘解析,以获得贴源数据节点、所述指标数据节点与所述报表数据节点之间的依赖关系。64.其中,指标数据节点的数据处理逻辑和报表数据节点的数据处理逻辑,可以基于特定语言语法,例如,结构化查询语言(structuredquerylanguage,sql)语法等,采用预先配置的方式。65.由于采用分层治理的方式,由贴源层配置对应的数据源之后,统一数据源的数据格式即贴源数据。后续的中间层指标数据节点所生成的指标数据和应用层报表数据节点所生成的报表数据可以采用特定语言语法,例如,结构化查询语言(structuredquerylanguage,sql)语法等,基于贴源数据生成即可。66.102、采用所述贴源数据节点所关联的至少两个贴源数据的数据源更新周期的最大公约数作为触发执行周期,获取所述贴源数据节点所匹配的至少一个贴源数据。67.103、根据所述依赖关系,生成所述至少一个贴源数据的数据流。68.至此,获得了更新之后的贴源数据的数据流,进而则可以及时执行该贴源数据的数据流,这样,能够自动把控数据流上下游数据的更新,比人为把控时间精度更加精准,从而保证了数据更新的及时性。69.需要说明的是,101~103执行主体的部分或全部可以为位于本地终端的应用,或者还可以为设置在位于本地终端的应用中的插件或软件开发工具包(softwaredevelopmentkit,sdk)等功能单元,或者还可以为位于网络侧服务器中的处理引擎,或者还可以为位于网络侧的分布式系统,例如,网络侧的触发平台中的处理引擎或者分布式系统等,本实施例对此不进行特别限定。70.可以理解的是,所述应用可以是安装在本地终端上的本地程序(nativeapp),或者还可以是本地终端上的浏览器的一个网页程序(webapp),本实施例对此不进行限定。71.这样,通过根据指标数据节点的数据处理逻辑和报表数据节点的数据处理逻辑,进行数据血缘解析,以获得贴源数据节点、所述指标数据节点与所述报表数据节点之间的依赖关系,进而,采用所述贴源数据节点所关联的至少两个贴源数据的数据源更新周期的最大公约数作为触发执行周期,获取所述贴源数据节点所匹配的至少一个贴源数据,使得能够根据所述依赖关系,生成所述至少一个贴源数据的数据流,以供被调度执行时能够及时进行数据的更新处理,整个流程无需人工参与,操作简单,并且正确率高,从而提高了数据处理的效率和可靠性。72.数据血缘即数据的来龙去脉,主要包含数据的来源、数据的加工方式、映射关系以及数据出口。73.可选地,在本实施例的一个可能的实现方式中,在101中,具体可以采用语法解析工具,对所述指标数据节点的数据处理逻辑和所述报表数据节点的数据处理逻辑进行解析处理,以获得抽象语法树。进而,则可以根据所述抽象语法树,获得所述贴源数据节点、所述指标数据节点与所述报表数据节点之间的依赖关系。74.本实现方式中,基于语法解析工具由中间层指标数据节点的数据处理逻辑和应用层报表数据节点的数据处理逻辑自动进行数据血缘解析,能够实现自动配置数据流,杜绝人为解析数据血缘可能导致的数据错误。75.由于数据血缘是在本公开的技术方案执行时动态解析,无需人为预置,同时,后续数据依赖关系的配置变更也能被实时感知,无需人为介入进行修改。76.具体地,可以提供一种基于sql语法解析数据血缘的方式,进行表级别和字段级别的数据血缘解析,从中间层指标数据节点的数据处理逻辑的sql配置和应用层报表数据节点的数据处理逻辑的sql配置中,自动解析出上下游依赖的数据表,从而形成数据血缘链表,即贴源数据节点、所述指标数据节点与所述报表数据节点之间的依赖关系,并以此作为数据流生成的基础。77.例如,可以采用基于calcitesql语法解析工具(sqlparser)解析,得到sql语法树结构,进而,从中解析出源表、源字段,以及目标表和目标字段,得到上下游依赖的数据表,从而形成数据血缘链表,如图2所示。78.201、输入中间层指标数据节点的数据处理逻辑的sql配置和应用层报表数据节点的数据处理逻辑的sql配置。79.202、对输入的sql配置进行解析前置处理,以获得标准sql语句。80.203、采用sql语法解析工具(例如,calcitesqlparser等),对所述标准sql语句进行解析,以获得对应的抽象语法树对象。其中,sqlnode作为树的节点。81.204、解析当前sql语句的类型,根据类型决定解析策略,对抽象语法树对象进行解析处理,以获得所对应的数据血缘关系,即所述贴源数据节点、所述指标数据节点与所述报表数据节点之间的依赖关系。具体可以包括如下步骤:82.2041、判断类型是否为数据操作语言(datamanipulationlanguage,dml)语句或数据查询语言(dataquerylanguage,dql)语句,若类型为dml语句,则执行2042,若类型为dql语句,则执行2044。83.由于数据库定义语言(datadefinitionlanguage,ddl)及数据库控制语言(datacontrollanguage,dcl)一般不存在数据血缘关系,因此进行屏蔽处理,只接收dml语句和dql语句。84.2042、解析dml语句中的目标表和目标字段,以获得解析结果,分别执行2043和2045。85.2043、解析所获得的解析结果中的结果字段resultcolumn,根据其前缀prefix(alias),在查询子句fromclause中寻找来源,若存在子查询dql语句,则执行2044,进行递归处理。86.2044、解析dql语句中的源表和源字段,以获得解析结果,执行2045。87.具体可以解析当前dql语句的类型,判断类型是否为标识符identifier类型,如果是,则直接解析出当前identifier对应的表名或字段名,作为解析结果;如果不是,则分别进行如下特殊处理:88.对于联结(join)类型:解析dql语句为join类型,则单独取出左右两个sql节点,进行递归处理;89.对于组合(union)类型:解析dql语句为union类型,则获取unionlist,进行递归处理;90.对于别名(as)类型:解析dql语句为as类型,直接通过sqlbasiccall获取as的前缀prefix——表(table),进行递归处理;91.对于选择(select)类型:解析dql语句为select类型,获取selectfrom子句,进行递归处理;92.对于排序(order_by)类型和分页(limit)类型:解析dql语句为order_by类型和limit类型,按照select类型的逻辑进行递归处理。93.2045、将解析结果,用链表形式记录,以形成数据血缘关系。94.本实现方式中,基于sql语法解析工具由中间层指标数据节点的数据处理逻辑的sql配置和应用层报表数据节点的数据处理逻辑的sql配置自动进行数据血缘解析,能够实现自动配置数据流,杜绝人为解析数据血缘可能导致的数据错误。95.可选地,在本实施例的一个可能的实现方式中,在102中,具体可以采用所述贴源数据节点所关联的至少两个贴源数据的数据源更新周期的最大公约数作为触发执行周期,进行周期性触发执行。进而,则可以在周期性触发执行时,根据所述贴源数据节点所关联的至少两个贴源数据所配置的数据源更新周期进行匹配处理,以获得数据源更新周期满足当前时间的至少一个贴源数据。96.本实现方式中,通过关联绑定一组数据源更新周期、触发逻辑不一致的贴源数据,以贴源数据的各数据源更新周期的最大公约数作为触发执行周期,从而使得由单个触发入口覆盖到贴源数据的每个数据源更新周期,使得能够通过贴源数据的各数据源更新周期的最大公约数管理触发执行周期,并在触发时动态解析满足当前时间节点的贴源数据表组。97.由于本公开所管理的是一组数据源更新周期不一致的贴源数据表,触发执行周期必须覆盖到所管理的每一个贴源数据表的数据源更新周期,才不会造成数据丢失的情况。因此,本公开的周期性触发执行的触发执行周期应该取贴源数据表组中所有数据源更新周期的最大公约数,在周期性触发执行时,再根据其所关联的贴源数据表组配置的数据源更新周期进行动态匹配处理,获取满足当前时间的贴源数据表列表。98.贴源数据表的数据源更新周期配置一般可以由时间cron表达式进行描述,quartz定义的cron表达式的标准格式:99.{秒数}{分钟}{小时}{日期}{月份}{星期}100.如图3所示,假定所关联的贴源数据表组包含四张贴源数据表,其数据源更新周期分别为:101.ods_table_1:00/30***?102.ods_table_2:000/1**?103.ods_table_3:000/2**?104.ods_table_4:00011/1?105.即:106.贴源数据表1(ods_table_1)从0分0秒开始,每隔30分钟更新一次;107.贴源数据表2(ods_table_2)从0时0分0秒开始,每隔1小时更新一次;108.贴源数据表3(ods_table_3)从0时0分0秒开始,每隔2小时更新一次;109.贴源数据表4(ods_table_4)每月的1号0时0分0秒更新一次,即1个月更新一次。110.那么由所管理的贴源数据表的数据源更新周期的最大公约数可知,周期性触发执行应该从0分0秒开始,每隔30分钟更新一次,才能覆盖其所管理的所有贴源数据表的数据源更新周期。在这种情况下,每一个周期内,会先判断当前时间与其所管理的贴源数据表组是否匹配,取出匹配的贴源数据表组之后,再执行后续的数据流生成逻辑。111.在不同的周期性触发执行时间,所匹配的贴源数据表可以如图4a-图4d所示。112.图4a所示,2022-07-0100:00:00,根据触发器关联的贴源表组的更新周期配置可知,当前时间满足四个贴源表的更新周期,因此此时触发器会获取到所有的四张贴源表,并执行后续操作;113.图4b所示,2022-07-0110:30:00,此时只有ods_table_1的数据源更新周期与当前时间匹配,因此此时触发执行只会关联ods_table_1并执行后续操作;114.图4c所示,2022-07-0211:00:00,此时ods_table_1和ods_table_2两张表的数据源更新周期与当前时间匹配,因此此时触发执行会关联ods_table_1和ods_table_2并执行后续操作;115.图4d所示,2022-07-0212:00:00,此时ods_table_1、ods_table_2和ods_table_3三张表的数据源更新周期与当前时间匹配,因此此时触发执行会关联ods_table_1、ods_table_2和ods_table_3并执行后续操作。116.可选地,在本实施例的一个可能的实现方式中,在103中,具体可以根据所述依赖关系,关联所述至少一个贴源数据中各贴源数据所依赖的指标数据和报表数据。进而,则可以根据所述各贴源数据所依赖的指标数据和报表数据,生成所述各贴源数据的数据流。117.在本实现方式中,触发执行时自动匹配满足数据源更新周期的贴源数据,由所获得的依赖关系,关联绑定其下层所依赖的指标数据和报表数据,针对各贴源数据实时生成数据流,保证了数据的实时性。118.在周期性触发执行获取到当前时间所关联的贴源数据表之后,由101数据血缘解析所获得的结果(即贴源数据节点、所述指标数据节点与所述报表数据节点之间的依赖关系),关联绑定该贴源数据表下层所依赖的指标数据表和报表数据表,为每张贴源数据表生成一个数据流。119.例如,有两张中间层的指标数据表,以及两张应用层的报表数据表,依赖图3所示的贴源层的四张贴源数据表进行加工生成。120.其中,中间层指标数据节点的数据处理逻辑的sql配置如下:121.指标数据表1(dwd_table_1)[0122][0123]其数据血缘解析的结果为:[0124]源表:ods_table_1、ods_table_3[0125]目标表:dwd_table_1[0126]指标数据表2(dwd_table_2)[0127][0128]其数据血缘解析的结果为:[0129]源表:ods_table_2、ods_table_3、ods_table_4[0130]目标表:dwd_table_2[0131]其中,应用层报表数据节点的数据处理逻辑的sql配置如下:[0132]报表数据表1(ads_table_1)[0133][0134]其数据血缘解析的结果为:[0135]源表:dwd_table_1[0136]目标表:ads_table_1[0137]报表数据表2(ads_table_2)[0138][0139]其数据血缘解析的结果为:[0140]源表:dwd_table_1、dwd_table_2[0141]目标表:ads_table_2[0142]在某个时间点(如2022-07-0100:00:00),触发执行将匹配到其所关联的四张贴源数据表,则由上述各数据血缘解析的结果,为每张贴源数据表生成数据流,如图5所示。[0143]可选地,在本实施例的一个可能的实现方式中,在103之后,还可以进一步获取所述至少一个贴源数据的数据流所经过数据节点的重合情况,进而,则可以根据所述重合情况,对所述至少一个贴源数据的数据流进行合并处理,以获得所述合并处理之后的所述至少一个贴源数据的数据流。[0144]在本实现方式中,通过合并具有相同数据节点的数据流,在数据依赖复杂的场景,能有效避免由单个贴源数据触发数据流更新而导致的下层所依赖的指标数据和报表数据重复计算的问题,保证了数据的完整性。[0145]在数据依赖较复杂的场景,103中所生成的多个贴源数据的数据流可能会存在数据节点重合的情况,如果此时不进行处理,各数据流单独执行,则各贴源数据的更新都会触发指标数据和报表数据的更新,造成重复计算,影响中间态的指标数据和最终态的报表数据的精度。[0146]对图5所示的为每张贴源数据表所生成的数据流进行合并处理,合并之后可以如图6所示。[0147]这样,本实现方式中,触发执行最终的处理结果,将具有相同数据节点的贴源数据所管理的下层的数据流合并到一个数据流中,能够使得当指标数据或报表数据依赖数据源更新周期不一致的贴源数据时,其数据在每个触发执行周期内只会被触发执行更新一次,从而保证了数据的完整性和准确性。[0148]可选地,在本实施例的一个可能的实现方式中,还可以进一步将所述至少一个贴源数据的数据流进行托管处理,以供其他系统对所述至少一个贴源数据的数据流进行调度处理和执行处理。[0149]具体地,具体可以将所生成的数据流转化为额外的其他系统(即调度系统)可识别的数据结构,例如,yaml(yaml所表示的yamlain'tmarkuplanguage,yaml是一种简洁的非标记语言)数据结构等,提交该其他系统托管执行。[0150]本实现方式中,数据流由其他系统托管进行调度执行,由其他系统把控数据流上下游数据的更新,全流程自动化,比人为把控时间精度更加精准,保证了数据更新的及时性。[0151]本公开所提供的技术方案,可以实现一种基于数据血缘解析的数据处理的触发器设计,如图7所示。[0152]701、触发器创建。[0153]702、关联绑定贴源数据表组。[0154]其中,所关联绑定是一组数据源更新周期、触发逻辑不一致的贴源数据表。[0155]703、触发器的触发执行周期管理。[0156]采用各贴源数据表的数据源更新周期的最大公约数作为触发执行周期,以实现触发器的周期性触发执行。[0157]例如,可以触发器自己管理触发执行周期,采用主动触发方式,实现触发器的周期性触发执行。[0158]或者,再例如,可以将该触发执行周期提交给额外的调度系统,采用被动触发方式,实现触发器的周期性触发执行。[0159]704、在周期性触发执行时,在所关联绑定的贴源数据表组中匹配满足当前时间节点的贴源数据表的数据源更新周期。[0160]705、获取数据源更新周期满足当前时间节点的贴源数据表列表。[0161]706、结合数据血缘解析的解析结果,针对各贴源数据表实时生成数据流。[0162]707、根据各贴源数据表的数据流的数据节点的重合情况,进行数据流合并,以获得融合数据流。[0163]708、将融合数据流提交到调度系统,进行托管执行处理。[0164]该触发器基于语法解析器实现了表级别和字段级别的数据血缘解析,从而关联了所依赖的上下层数据表;基于数据血缘解析的解析结果,生成贴源数据更新、指标数据计算、报表数据生成的数据流,保证数据按序生成,脱离人工管控,从而保证数据更新的及时性;同时,对于所关联的数据源更新周期、触发逻辑不一致的情况,触发器按数据源更新周期的最大公约数进行管理,覆盖到其所关联的每张贴源数据表的数据源更新周期;触发器周期性执行会根据当前时间匹配满足数据源更新周期的贴源数据表,为每张贴源数据表动态生成任务流,然后对具有相同数据节点的数据流进行合并处理,避免下层的指标数据和报表数据的重复计算,保证数据的完整性和准确性。[0165]本公开所提供的技术方案,与现有技术相比,重要的改进点在于:[0166]基于语法解析器由指标数据计算和报表数据生成的数据处理逻辑配置自动进行数据血缘解析,自动配置数据流,杜绝人为解析数据血缘可能导致的数据错误;[0167]能关联绑定一组数据源更新周期、触发逻辑不一致的贴源数据,以各数据源更新周期的最大公约数作为触发执行的触发执行周期,从而由单个触发入口覆盖到每个贴源数据的数据源更新周期;[0168]触发执行时自动匹配满足触发执行周期的贴源数据,针对各贴源数据实时生成数据流并进行数据流合并,在数据依赖复杂的场景,能有效避免由单个贴源数据触发数据流更新而导致的下层所依赖的指标数据和报表数据重复计算的问题;[0169]提供数据流解析、生成、调度、执行的全流程方案,由其他系统即调度系统托管执行,相比较人为控制数据更新,数据更新的及时性得到了保证。[0170]本公开所提供的技术方案,自动化程度高,避免了人为介入,节省了数据分析人力成本;自动解析数据血缘的功能有益于数据依赖的扩展,减少了人为出错的概率;可以管理多套数据源更新周期、触发逻辑不一致的贴源数据;自动对各贴源数据所关联的数据流进行合并处理,避免了数据的重复更新,保证了数据的完整性和准确性;由额外的调度系统全程托管数据流执行,数据更新的及时性得到了有效保障。[0171]本实施例中,通过根据指标数据节点的数据处理逻辑和报表数据节点的数据处理逻辑,进行数据血缘解析,以获得贴源数据节点、所述指标数据节点与所述报表数据节点之间的依赖关系,进而,采用所述贴源数据节点所关联的至少两个贴源数据的数据源更新周期的最大公约数作为触发执行周期,获取所述贴源数据节点所匹配的至少一个贴源数据,使得能够根据所述依赖关系,生成所述至少一个贴源数据的数据流,以供被调度执行时能够及时进行数据的更新处理,整个流程无需人工参与,操作简单,并且正确率高,从而提高了数据处理的效率和可靠性。[0172]另外,采用本公开所提供的技术方案,能够有效地提高用户的体验。[0173]需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本公开所必须的。[0174]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。[0175]图8是根据本公开第二实施例的示意图,如图8所示。本实施例的数据的处理装置800可以包括解析单元801、匹配单元802和生成单元803。其中,解析单元801,用于根据指标数据节点的数据处理逻辑和报表数据节点的数据处理逻辑,进行数据血缘解析,以获得贴源数据节点、所述指标数据节点与所述报表数据节点之间的依赖关系;匹配单元802,用于采用所述贴源数据节点所关联的至少两个贴源数据的数据源更新周期的最大公约数作为触发执行周期,获取所述贴源数据节点所匹配的至少一个贴源数据;生成单元803,用于根据所述依赖关系,生成所述至少一个贴源数据的数据流。[0176]需要说明的是,本实施例的数据的处理装置的部分或全部可以为位于本地终端的应用,或者还可以为设置在位于本地终端的应用中的插件或软件开发工具包(softwaredevelopmentkit,sdk)等功能单元,或者还可以为位于网络侧服务器中的处理引擎,或者还可以为位于网络侧的分布式系统,例如,网络侧的触发平台中的处理引擎或者分布式系统等,本实施例对此不进行特别限定。[0177]可以理解的是,所述应用可以是安装在本地终端上的本地程序(nativeapp),或者还可以是本地终端上的浏览器的一个网页程序(webapp),本实施例对此不进行限定。[0178]可选地,在本实施例的一个可能的实现方式中,所述解析单元801,具体可以用于采用语法解析工具,对所述指标数据节点的数据处理逻辑和所述报表数据节点的数据处理逻辑进行解析处理,以获得抽象语法树;以及根据所述抽象语法树,获得所述贴源数据节点、所述指标数据节点与所述报表数据节点之间的依赖关系。[0179]可选地,在本实施例的一个可能的实现方式中,所述匹配单元802,具体可以用于采用所述贴源数据节点所关联的至少两个贴源数据的数据源更新周期的最大公约数作为触发执行周期,进行周期性触发执行;以及在周期性触发执行时,根据所述贴源数据节点所关联的至少两个贴源数据所配置的数据源更新周期进行匹配处理,以获得数据源更新周期满足当前时间的至少一个贴源数据。[0180]可选地,在本实施例的一个可能的实现方式中,所述生成单元803,具体可以用于根据所述依赖关系,关联所述至少一个贴源数据中各贴源数据所依赖的指标数据和报表数据;以及根据所述各贴源数据所依赖的指标数据和报表数据,生成所述各贴源数据的数据流。[0181]可选地,在本实施例的一个可能的实现方式中,所述生成单元803,还可以进一步用于获取所述至少一个贴源数据的数据流所经过数据节点的重合情况;以及根据所述重合情况,对所述至少一个贴源数据的数据流进行合并处理,以获得所述合并处理之后的所述至少一个贴源数据的数据流。[0182]可选地,在本实施例的一个可能的实现方式中,所述生成单元803,还可以进一步用于将所述至少一个贴源数据的数据流进行托管处理,以供其他系统对所述至少一个贴源数据的数据流进行调度处理和执行处理。[0183]需要说明的是,图1对应的实施例中方法,可以由本实施例提供的数据的处理装置实现。详细描述可以参见图1对应的实施例中的相关内容,此处不再赘述。[0184]本实施例中,通过解析单元根据指标数据节点的数据处理逻辑和报表数据节点的数据处理逻辑,进行数据血缘解析,以获得贴源数据节点、所述指标数据节点与所述报表数据节点之间的依赖关系,进而,由匹配单元采用所述贴源数据节点所关联的至少两个贴源数据的数据源更新周期的最大公约数作为触发执行周期,获取所述贴源数据节点所匹配的至少一个贴源数据,使得生成单元能够根据所述依赖关系,生成所述至少一个贴源数据的数据流,以供被调度执行时能够及时进行数据的更新处理,整个流程无需人工参与,操作简单,并且正确率高,从而提高了数据处理的效率和可靠性。[0185]另外,采用本公开所提供的技术方案,能够有效地提高用户的体验。[0186]根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。[0187]图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。[0188]如图9所示,电子设备900包括计算单元901,其可以根据存储在只读存储器(rom)902中的计算机程序或者从存储单元908加载到随机访问存储器(ram)903中的计算机程序,来执行各种适当的动作和处理。在ram903中,还可存储电子设备900操作所需的各种程序和数据。计算单元901、rom902以及ram903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。[0189]电子设备900中的多个部件连接至i/o接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许电子设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。[0190]计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如数据的处理方法。例如,在一些实施例中,数据的处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由rom902和/或通信单元909而被载入和/或安装到电子设备900上。当计算机程序加载到ram903并由计算单元901执行时,可以执行上文描述的数据的处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据的处理方法。[0191]本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。[0192]用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据的处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。[0193]在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。[0194]为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。[0195]可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、互联网和区块链网络。[0196]计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtualprivateserver",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。[0197]应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。[0198]上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1