首页> 中国专利> 数据分片刷新方法、装置、设备及存储介质

数据分片刷新方法、装置、设备及存储介质

摘要

本发明涉及大数据领域,公开了数据分片刷新方法、装置、设备及存储介质。该方法包括:配置分片刷新参数,并定义初始化任务,其中,所述分片刷新参数包括:初始化任务名、机构编码及刷新日期;在监听到客户端的数据刷新请求时,判断数据刷新请求是否指述初始化任务;若为初始化任务,则执行单机构数据刷新,并读取分片刷新参数中的机构编码及刷新日期;将机构编码及刷新日期传入预置跑数脚本中;执行跑数脚本,将机构编码对应刷新日期的机构数据加载到对应业务系统的缓存中。本发明还涉及区块链技术,所述机构数据存储于区块链中。本发明实现了单机构的数据刷新,减少计算机资源浪费。

著录项

  • 公开/公告号CN112749197A

    专利类型发明专利

  • 公开/公告日2021-05-04

    原文格式PDF

  • 申请/专利权人 中国平安财产保险股份有限公司;

    申请/专利号CN202110036533.5

  • 发明设计人 周兴;

    申请日2021-01-12

  • 分类号G06F16/2455(20190101);G06F16/25(20190101);G06F16/27(20190101);

  • 代理机构11321 北京市京大律师事务所;

  • 代理人姚维

  • 地址 518048 广东省深圳市福田区益田路5033号平安金融中心12、13、38、39、40层

  • 入库时间 2023-06-19 10:51:07

说明书

技术领域

本发明涉及大数据领域,尤其涉及一种数据分片刷新方法、装置、设备及存储介质。

背景技术

为应对外部市场环境或内部组织环境的各种变化,业务系统经常需要进行组织机构调整,进而业务系统需要跟进最新的各组织机构的所有数据。因此,在业务系统运行时,通常需要刷新数据,以便获得最新的组织机构的数据。现有刷数机制是将业务系统中的缓存数据全部清除,然后再重新写入新的全量数据,然而,在实际应用中,并不是每次都需要刷新全量数据,这样会导致大量的计算资源浪费。

发明内容

本发明的主要目的在于解决业务系统无法支持单机构数据刷新的技术问题。

本发明第一方面提供了一种数据分片刷新方法,包括:

配置分片刷新参数,并定义用于数据交换的初始化任务,其中,所述分片刷新参数包括:初始化任务名、机构编码及刷新日期;

在监听到客户端的数据刷新请求时,判断所述数据刷新请求是否指向所述初始化任务;

若指向所述初始化任务,则基于所述初始化任务进行单机构数据刷新,并读取所述分片刷新参数中的机构编码及刷新日期;

将所述机构编码及刷新日期传入预置跑数脚本中,并执行所述跑数脚本,将所述机构编码对应刷新日期的机构数据加载到对应业务系统的缓存中。可选的,在本发明第一方面的第一种实现方式中,在所述在监听到客户端的数据刷新请求时,判断所述数据刷新请求是否指向所述初始化任务之后,还包括:

若不指向所述初始化任务,则进行全机构数据刷新,并将所述机构编码设置为预置编码;

将所述预置编码及刷新日期传入所述跑数脚本中,并执行所述跑数脚本,以将所述刷新日期对应的所有机构数据加载到对应业务系统的缓存中。

可选的,在本发明第一方面的第二种实现方式中,在所述配置分片刷新参数,并定义初始化任务之前,还包括:

修改缓存中用于存储机构数据的表结构为按二级机构分区;

修改加工代码支持接收机构编码参数,并存储至二级机构分区中,以使所述跑数脚本兼容单机构数据刷新和全机构数据刷新。

可选的,在本发明第一方面的第三种实现方式中,在所述配置分片刷新参数,并定义初始化任务之前,还包括:

在元数据库创建机构编码配置表,以用于存储需要刷新的机构编码参数。

可选的,在本发明第一方面的第四种实现方式中,所述执行所述跑数脚本,将所述机构编码对应刷新日期的机构数据加载到对应业务系统的缓存中包括:

执行所述跑数脚本,并查找预置数据库中所述机构编码对应刷新日期对应的缓存节点和内存分片;

根据所述缓存节点,确定待加载机构数据的索引信息,并根据所述索引信息,从对应的内存分片中获取对应的机构数据;

将所述机构数据加载到对应业务系统的缓存中。

可选的,在本发明第一方面的第五种实现方式中,所述数据分片刷新方法还包括:

根据所述机构数据的字段头,确定所述各机构数据的数据类型;

根据所述数据类型,生成所述机构数据刷新时的监控指标;

根据所述监控指标,对对应机构数据中的指定字段进行统计,得到所述机构数据刷新时的监控值;

将监控值与预置的结果值进行对比,确定刷新错误的机构数据,并生成数据刷新报表以进行展示。

可选的,在本发明第一方面的第六种实现方式中,所述根据所述监控指标,对对应机构数据中的指定字段进行统计,得到所述机构数据刷新时的监控值包括:

提取机构数据中指定字段的字段值,并判断所述监控指标的类型,所述监控指标的类型包括第一型监控指标和第二型监控指标;

若所述监控指标为第一型监控指标,则将对应机构数据中指定字段的字段值进行累加,并将累加后的字段值作为所述机构数据刷新时的监控值;

若所述监控指标为第一型监控指标,则计算对应机构数据中指定字段的字段值的平均值,并将所述平均值作为所述机构数据刷新时的监控值。。

本发明第二方面提供了一种数据分片刷新装置,包括:

配置模块,用于配置分片刷新参数,并定义用于数据交换的初始化任务,其中,所述分片刷新参数包括:初始化任务名、机构编码及刷新日期;

判别模块,用于在监听到客户端的数据刷新请求时,判断所述数据刷新请求是否指向所述初始化任务;

分流模块,用于若指向所述初始化任务,则基于所述初始化任务进行单机构数据刷新,并读取所述分片刷新参数中的机构编码及刷新日期;

执行模块,用于将所述机构编码及刷新日期传入预置跑数脚本中,并执行所述跑数脚本,将所述机构编码对应刷新日期的机构数据加载到对应业务系统的缓存中。

可选的,在本发明第二方面的第一种实现方式中,所述数据分片刷新装置还包括:

所述分流模块还用于若不指向所述初始化任务,则进行全机构数据刷新,并将所述机构编码设置为预置编码;

将所述预置编码及刷新日期传入所述跑数脚本中,并执行所述跑数脚本,以将所述刷新日期对应的所有机构数据加载到对应业务系统的缓存中。

可选的,在本发明第二方面的第二种实现方式中,在所述配置模块之前,还包括:

第一修改模块,用于修改缓存中用于存储机构数据的表结构为按二级机构分区;

第二修改模块,用于修改加工代码支持接收机构编码参数,并存储至二级机构分区中,以使所述跑数脚本兼容单机构数据刷新和全机构数据刷新。

可选的,在本发明第二方面的第三种实现方式中,在所述配置模块之前,还包括:

创建模块,用于在元数据库创建机构编码配置表,以用于存储需要刷新的机构编码参数。

可选的,在本发明第二方面的第四种实现方式中,所述执行模块还用于:

执行所述跑数脚本,并查找预置数据库中所述机构编码对应刷新日期对应的缓存节点和内存分片;

根据所述缓存节点,确定待加载机构数据的索引信息,并根据所述索引信息,从对应的内存分片中获取对应的机构数据;

将所述机构数据加载到对应业务系统的缓存中。

可选的,在本发明第二方面的第五种实现方式中,所述数据分片刷新装置还包括:

确定模块,用于根据所述机构数据的字段头,确定所述各机构数据的数据类型;

生成模块,用于根据所述数据类型,生成所述机构数据刷新时的监控指标;

统计模块,用于根据所述监控指标,对对应机构数据中的指定字段进行统计,得到所述机构数据刷新时的监控值;

对比模块,用于将监控值与预置的结果值进行对比,确定刷新错误的机构数据,并生成数据刷新报表以进行展示。

可选的,在本发明第二方面的第六种实现方式中,所述统计模块包括:

提取单元,用于提取机构数据中指定字段的字段值,并判断所述监控指标的类型,所述监控指标的类型包括第一型监控指标和第二型监控指标;

累加单元,用于若所述监控指标为第一型监控指标,则将对应机构数据中指定字段的字段值进行累加,并将累加后的字段值作为所述机构数据刷新时的监控值;

平均值计算单元,用于若所述监控指标为第一型监控指标,则计算对应机构数据中指定字段的字段值的平均值,并将所述平均值作为所述机构数据刷新时的监控值。

本发明第三方面提供了一种数据分片刷新设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述数据分片刷新设备执行上述的数据分片刷新方法。

本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的数据分片刷新方法。

本发明提供的技术方案中,通过为不同的机构设置对应的机构编码,对于需进行刷新机构的数据,将其机构编码写入配置表中,并由初始化任务携带,其中,配置表结构以二级机构分区的形式进行呈现,以支持单机构的数据刷新;在调用程序执行数据刷新任务时,通过判别数据刷新任务是否为该初始化任务以确定是否进行单机构数据刷新;在进行单机构数据刷新时,将配置表中对应的机构编码传入程序中的跑数脚本中,以执行对应机构的数据刷新任务,生成单机构数据,实现单机构的数据刷新,减少计算机资源浪费。

附图说明

图1为本发明实施例中数据分片刷新方法的第一个实施例示意图;

图2为本发明实施例中数据分片刷新方法的第二个实施例示意图;

图3为本发明实施例中数据分片刷新方法的第三个实施例示意图;

图4为本发明实施例中数据分片刷新方法的第四个实施例示意图;

图5为本发明实施例中数据分片刷新装置的一个实施例示意图;

图6为本发明实施例中数据分片刷新装置的另一个实施例示意图;

图7为本发明实施例中数据分片刷新设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种数据分片刷新方法、装置、设备及存储介质,包括配置分片刷新参数,并定义初始化任务,其中,所述分片刷新参数包括:初始化任务名、机构编码及刷新日期;在调用程序执行数据刷新任务时,判断程序执行的数据刷新任务是否为初始化任务;若为初始化任务,则确定程序执行单机构数据刷新,并读取分片刷新参数中的机构编码及刷新日期;将机构编码及刷新日期传入程序的跑数脚本中;执行跑数脚本,以将机构编码对应刷新日期的机构数据加载到对应业务系统的缓存中。本发明还涉及区块链技术,所述机构数据存储于区块链中。本发明实现了单机构的数据刷新,减少计算机资源浪费。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中数据分片刷新方法的第一个实施例包括:

101、配置分片刷新参数,并定义用于数据交换的初始化任务,其中,所述分片刷新参数包括:初始化任务名、机构编码及刷新日期;

可以理解的是,本发明的执行主体可以为数据分片刷新装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。需要强调的是,为进一步保证上述机构数据的私密和安全性,上述机构数据还可以存储于一区块链的节点中。

本实施例中,初始化任务可以为ETL初始化任务,其中,ETL(Extract-Transform-Load)指数据从来源端获取,经过抽取、转换、加载至目的端的过程;分片刷新参数中,ETL初始化任务名指开发者自定义的数据获取用途的任务名称,其中,该任务名称中可以包含机构编号、开发类别编号等信息;机构编码作为限定条件,以用于获取源端数据库中的目标数据,以实现单机构的数据分片刷新;而刷新日期用于设置ETL初始化任务的具体执行时间,一方面配合数据的分段获取与使用,另一方面在进行数据分片刷新时,调度数据库的查询与获取时序,提升数据库的提取效率。

另外,ETL初始化任务指定义数据的抽取、转化及装载规则,以及新增的定义数据刷新的运行类型参数,包括单机构数据刷新类型和全机构数据刷新类型;具体的,初始化任务定义包括以下步骤:

(1)配置linkdo任务,可以设定循环执行时间,在每天11:30执行truncateAUTOPRM_ETL_DEPT_PARAMETER的数据,其中,linkdo任务即为初始化任务,带有运行类型参数;

(2)使用COMMON_RUN.sh接收Linkdo传入的运行类型参数task_freq,并定义task_freq='O'为单机构的数据分片刷新;

(3)在COMMON_RUN.sh判断:

1.当task_freq='O'(‘O’可根据具体情况进行设置)时,读取一个或多个单机构的机构编码,并赋值至参数AUTOPRM_DEPT_CODE中;

2.当task_freq<>'O'时参数AUTOPRM_DEPT_CODE直接赋值‘2’,其中‘2’表示进行全机构的数据刷新;

3.当task_freq='O'且没有记录任何单机构的机构编码时,程序报错退出。

102、在监听到客户端的数据刷新请求时,判断所述数据刷新请求是否指向所述初始化任务;

本实施例中,ETL程序指在进行数据抽取、转换、加载的常规程序中,新增ETL进行单机构的分片处理或者全机构处理的判别条件规则,具体接收到数据刷新请求后,通过COMMON_RUN.sh接收task_freq的传入参数,当该数据刷新请求指向预先设置好的初始化任务时,ETL程序执行的数据刷新任务为该初始化任务时,即进行单机构数据刷新,否则直接执行全机构的数据刷新即可。

103、若指向所述初始化任务,则基于所述初始化任务进行单机构数据刷新,并读取所述分片刷新参数中的机构编码及刷新日期;

本实施例中,当确定当前ETL程序执行的数据刷新任务为初始化任务时,则对初始化任务的一个或多个单机构进行数据刷新;初始化任务中带有配置表,记录进行数据刷新的机构编码以及刷新日期;其中,机构编码可以为在政府注册的组织机构代码,或者是自定义的企业中各机构的代码等。而刷新日期可以为单次刷新方式的刷新日期,设定一个固定的年-月-日.时:分:秒,当到达该刷新日期时,采用ETL程序进行对应机构的单次数据刷新;刷新日期亦可以是多次固定刷新方式的刷新时间,按照单一刷新日期的形式顺序记录进行数据刷新的时间即可;另外,刷新日期亦可以是循环刷新方式的刷新日期,记录起始刷新时间、刷新周期、终止刷新时间,其中,刷新周期可以为日、周、月等。

104、将所述机构编码及刷新日期传入预置跑数脚本中,并执行所述跑数脚本,将所述机构编码对应刷新日期的机构数据加载到对应业务系统的缓存中。

本实施例中,ETL程序根据初始化任务中配置表记录的机构编码和刷新日期,采用跑数脚步对应机构的数据进行数据刷新,其中,其中刷新日期为触发时间,当达到刷新日期时,启动跑数脚本,以机构编码为索引值,从源端数据库中获取对应的数据,按照初始化任务定义的数据抽取、转化及装载规则,利用跑数脚本进行数据刷新,并将刷新后的机构数据存储到设定的目标业务系统的缓存中,并以机构编码进行标识,以完成刷新后机构数据的指向性存储,并易于检索机构数据及检查机构数据的有效性、完整性。

其中,可通过配置读写插件,以机构编码为索引,每种读插件对应一个数据源,每种写插件对应一个业务系统的缓存;具体可以通过storm(风暴)集群中的topology进行数据的读写,数据与刷新手机构数据的落地可以采用Hadoop(海杜普)是hdfs(HadoopDistributed File System,分布式文件系统)或者Hadoop数据库hbase(Hadoop Base,分布式数据库)。

本发明实施例中,通过为不同的机构设置对应的机构编码,对于需进行刷新机构的数据,将其机构编码写入配置表中,并由ETL初始化任务携带,其中,配置表结构以二级机构分区的形式进行呈现,以支持单机构的数据刷新;在调用ETL程序执行数据刷新任务时,通过判别数据刷新任务是否为该初始化任务以确定是否进行单机构数据刷新;在进行单机构数据刷新时,将配置表中对应的机构编码传入ETL程序中的跑数脚本中,以执行对应机构的数据刷新任务,生成单机构数据,实现单机构的数据刷新,减少计算机资源浪费。

请参阅图2,本发明实施例中数据分片刷新方法的第二个实施例包括:

201、配置分片刷新参数,并定义用于数据交换的初始化任务,其中,所述分片刷新参数包括:初始化任务名、机构编码及刷新日期;

202、在监听到客户端的数据刷新请求时,判断所述数据刷新请求是否指向所述初始化任务;

203、若不指向所述初始化任务,则进行全机构数据刷新,并将所述机构编码设置为预置编码;

本实施例中,初始化任务配置了单机构数据刷新功能,而对于初始化任务之外,则为常规的全机构数据刷新,并由预先配置好的预置编码进行控制刷新,将单机构数据刷新与全机构数据刷新区分开。

204、将所述预置编码及刷新日期传入所述跑数脚本中,并执行所述跑数脚本,以将所述刷新日期对应的所有机构数据加载到对应业务系统的缓存中;

本实施例中,预置编码控制了ETL程序的跑数脚步执行全机构数据刷新,而刷新日期则控制跑数脚步的执行时间。

本实施例中,预置编码为全机构数据刷新的执行编码,通过预置编码,ETL程序的跑数脚本可以识别出需对全部机构的数据进行刷新;此处全机构数据刷新可以作为一个日常任务进行,刷新日期通常以循环刷新的方式进行设定,循环周期以日、周、月为单位;另一种情况则将全机构数据刷新作为数据建模阶段性任务、或者新版本产品发布进行设置,刷新日期通常以限定条件的方式进行设定,即在数据建模阶段性完成后、新版本产品发布后执行全机构数据的刷新。

205、若指向所述初始化任务,则基于所述初始化任务进行单机构数据刷新,并读取所述分片刷新参数中的机构编码及刷新日期;

206、将所述机构编码及刷新日期传入预置跑数脚本中,并执行所述跑数脚本,将所述机构编码对应刷新日期的机构数据加载到对应业务系统的缓存中。

本实施例中,预置数据库中存储有待分片刷新的机构数据,可通过机构编码查找到各个机构待加载机构数据的缓存节点了内存分片,其中,缓存节点中存储了待加载机构数据的索引信息和内存分片的指针,通过索引信息或者指针可以指向对应待加载机构数据存储位置的内存分片,内存分片即预置数据库中存储机构数据的不同区域。具体执行步骤如下所示:

(1)执行所述跑数脚本,并查找预置数据库中所述机构编码对应刷新日期对应的缓存节点和内存分片;

(2)根据所述缓存节点,确定待加载机构数据的索引信息,并根据所述索引信息,从对应的内存分片中获取对应的机构数据;

(3)将所述机构数据加载到对应业务系统的缓存中。

本发明实施例中,介绍了ETL执行全机构数据刷新的过程,通过全机构数据刷新专用的机构编码控制ETL程序执行全机构数据刷新,并存储至修改后缓存空间中对应分区中,实现全机构刷新的单独通道开辟。

请参阅图3,本发明实施例中数据分片刷新方法的第三个实施例包括:

301、修改缓存中用于存储机构数据的表结构为按二级机构分区;

本实施例中,此处缓存中用于存储机构数据的表可以为Hadoop中的hive表,可以将机构数据的结构映射至该表中,以表结构的形式进行展示,此处一级机构表结构可以为企业编码,二级机构分区以机构编码为标识,以此方式进行修改。

302、修改加工代码支持接收机构编码参数,并存储至二级机构分区中,以使所述跑数脚本兼容单机构数据刷新和全机构数据刷新;

本实施例中,当程序不需要单刷机构时传入参数2至AUTOPRM_DEPT_CODE中,第一个条件where条件恒成立;当程序需要机构单刷时,第一个条件不成立,第二个条件将约束单机构的机构编码,如下所示:where('{AUTOPRM_DEPT_CODE}'='2'or sec_department_code in('{AUTOPRM_DEPT_CODE}'))。

303、在元数据库创建机构编码配置表,以用于存储需要刷新的机构编码参数;

另外,机构编码配置表存储有需要刷新的机构编码参数,其中,不同机构编码参数之间用英文逗号进行分隔,比如机构A的机构编码参数为201、机构B的机构编码参数为205、机构C的机构编码参数为208,机构编码配置表的呈现方式可以为:{205,201,208},根据机构编码配置表顺序刷新机构B、机构A、机构C对应的数据。

304、配置分片刷新参数,并定义用于数据交换的初始化任务,其中,所述分片刷新参数包括:初始化任务名、机构编码及刷新日期;

305、在监听到客户端的数据刷新请求时,判断所述数据刷新请求是否指向所述初始化任务;

306、若指向所述初始化任务,则基于所述初始化任务进行单机构数据刷新,并读取所述分片刷新参数中的机构编码及刷新日期;

307、将所述机构编码及刷新日期传入预置跑数脚本中,并执行所述跑数脚本,将所述机构编码对应刷新日期的机构数据加载到对应业务系统的缓存中。

本发明实施例中,提出了将存储机构数据的表结构修改为二级机构分区,并将修改后适配单机构刷新和全机构刷新的加工代码存储至该二级机构分区,再创造机构编码配置表,以实现ETL可以同时支持单机构数据刷新和全机构数据刷新的逻辑。

请参阅图4,本发明实施例中数据分片刷新方法的第四个实施例包括:

401、根据所述机构数据的字段头,确定所述各机构数据的数据类型;

本实施例中,对于oracle数据库的数据刷新过程,其数据处理任务通常存在于procedure(过程)代码中,目前有许多词法分析和语法分析的软件工具可支持对procedure代码的解析,比如基于C语言的lex和yacc,基于java的javacc和antlr等。本流程中选用javacc,其过程可以包括:运行解析程序,利用生成的class文件解析指定的procedure代码,解析出数据刷新任务所指定的input表(即输入数据表)和output表(即输出数据表)的描述信息(如表标识或表名称),并通过查询oracle的meta信息(即元数据信息)获取input表和output表的字段描述信息,如字段名称和字段的数据类型。

402、根据所述数据类型,生成所述机构数据刷新时的监控指标;

该步骤中,根据解析出的输出数据表以及输出数据表的字段的数据类型确定监控指标。在output表中,对于哪些类型字段属于具有总量统计意义的字段,哪些类型字段属于具有平均值统计意义的字段,可以根据监控指标预先进行定义。例如,对于名称为“销售量”或“销售额”等的字段,可以统计其总量,对于名称为“温度”或“气温”等的字段,可以统计其平均值。

403、提取机构数据中指定字段的字段值,并判断所述监控指标的类型,所述监控指标的类型包括第一型监控指标和第二型监控指标;

本实施例中,对于output表所生成的监控指标可以包括output表的数据记录数量,将监控指标分为两种类型,其中,第一型监控指标指定对于具有总量统计意义的数值型字段求和,第二型监控指标指定对于具有平均值统计意义的数值型字段求平均值。

404、若所述监控指标为第一型监控指标,则将对应机构数据中指定字段的字段值进行累加,并将累加后的字段值作为所述机构数据刷新时的监控值;

405、若所述监控指标为第一型监控指标,则计算对应机构数据中指定字段的字段值的平均值,并将所述平均值作为所述机构数据刷新时的监控值;

本实施例中,得到监控指标后,读取ETL程序输出的刷新数据,并根据监控指标所指定的统计方式,对刷新数据的相应字段进行统计或/和运算,从而得到监控指标的结果值。根据生成的监控指标,得到的监控结果值可以包括:刷新数据的数据记录总数量,指定的数值型字段的数值累加和,以及指定的数值型字段的数值平均值等。

406、将监控值与预置的结果值进行对比,确定刷新错误的机构数据,并生成数据刷新报表以进行展示。

本实施例中,可以将监控指标的结果值以报表形式输出作为监控结果,还可以根据预先设置的质量评价策略,将监控指标的结果值与期望的结果值进行比较,从而对数据刷新质量进行评价,并将评价结果显示在输出的报表中。ETL程序对数据的处理需要满足期望的结果值,若监控指标的结果值与期望的结果值不符,则说明ETL程序的数据刷新过程有问题,需要做进一步的修正。

本发明实施例中,详细介绍了对ETL程序数据刷新过程中的监控流程,通过不同的数据类型生成对应的监控指标,根据预先设置的不同类型监控指标的计算方式计算数据刷新的监控值,并与预先设置的结果值进行对比,以确定数据刷新过程中是否出现错误,以用于ETL程序的优化。

上面对本发明实施例中数据分片刷新方法进行了描述,下面对本发明实施例中数据分片刷新装置进行描述,请参阅图5,本发明实施例中数据分片刷新装置一个实施例包括:

配置模块501,用于配置分片刷新参数,并定义用于数据交换的初始化任务,其中,所述分片刷新参数包括:初始化任务名、机构编码及刷新日期;

判别模块502,用于在监听到客户端的数据刷新请求时,判断所述数据刷新请求是否指向所述初始化任务;

分流模块503,用于若指向所述初始化任务,则基于所述初始化任务进行单机构数据刷新,并读取所述分片刷新参数中的机构编码及刷新日期;

执行模块504,用于将所述机构编码及刷新日期传入预置跑数脚本中,并执行所述跑数脚本,将所述机构编码对应刷新日期的机构数据加载到对应业务系统的缓存中。

本发明实施例中,通过为不同的机构设置对应的机构编码,对于需进行刷新机构的数据,将其机构编码写入配置表中,并由ETL初始化任务携带,其中,配置表结构以二级机构分区的形式进行呈现,以支持单机构的数据刷新;在调用ETL程序执行数据刷新任务时,通过判别数据刷新任务是否为该初始化任务以确定是否进行单机构数据刷新;在进行单机构数据刷新时,将配置表中对应的机构编码传入ETL程序中的跑数脚本中,以执行对应机构的数据刷新任务,生成单机构数据,实现单机构的数据刷新,减少计算机资源浪费。

请参阅图6,本发明实施例中数据分片刷新装置的另一个实施例包括:

配置模块501,用于配置分片刷新参数,并定义用于数据交换的初始化任务,其中,所述分片刷新参数包括:初始化任务名、机构编码及刷新日期;

判别模块502,用于在监听到客户端的数据刷新请求时,判断所述数据刷新请求是否指向所述初始化任务;

分流模块503,用于若指向所述初始化任务,则基于所述初始化任务进行单机构数据刷新,并读取所述分片刷新参数中的机构编码及刷新日期;

执行模块504,用于将所述机构编码及刷新日期传入预置跑数脚本中,并执行所述跑数脚本,将所述机构编码对应刷新日期的机构数据加载到对应业务系统的缓存中。

具体的,所述数据分片刷新装置还包括:

若不指向所述初始化任务,则进行全机构数据刷新,并将所述机构编码设置为预置编码;

将所述预置编码及刷新日期传入所述跑数脚本中,并执行所述跑数脚本,以将所述刷新日期对应的所有机构数据加载到对应业务系统的缓存中。

具体的,在所述配置模块之前,还包括:

第一修改模块505,用于修改缓存中用于存储机构数据的表结构为按二级机构分区;

第二修改模块506,用于修改加工代码支持接收机构编码参数,并存储至二级机构分区中,以使所述跑数脚本兼容单机构数据刷新和全机构数据刷新。

具体的,在所述配置模块之前,还包括:

创建模块507,用于在元数据库创建机构编码配置表,以用于存储需要刷新的机构编码参数。

具体的,所述数据分片刷新装置还包括:

确定模块508,用于根据所述机构数据的字段头,确定所述各机构数据的数据类型;

生成模块509,用于根据所述数据类型,生成所述机构数据刷新时的监控指标;

统计模块510,用于根据所述监控指标,对对应机构数据中的指定字段进行统计,得到所述机构数据刷新时的监控值;

对比模块511,用于将监控值与预置的结果值进行对比,确定刷新错误的机构数据,并生成数据刷新报表以进行展示。

具体的,所述执行模块还用于:

执行所述跑数脚本,并查找预置数据库中所述机构编码对应刷新日期对应的缓存节点和内存分片;

根据所述缓存节点,确定待加载机构数据的索引信息,并根据所述索引信息,从对应的内存分片中获取对应的机构数据;

将所述机构数据加载到对应业务系统的缓存中。

具体的,所述统计模块包括:

提取单元5101,用于提取机构数据中指定字段的字段值,并判断所述监控指标的类型,所述监控指标的类型包括第一型监控指标和第二型监控指标;

累加单元5102,用于若所述监控指标为第一型监控指标,则将对应机构数据中指定字段的字段值进行累加,并将累加后的字段值作为所述机构数据刷新时的监控值;

平均值计算单元5103,用于若所述监控指标为第一型监控指标,则计算对应机构数据中指定字段的字段值的平均值,并将所述平均值作为所述机构数据刷新时的监控值。

具体的,所述单机构数据存储于区块链中。

本发明实施例中,介绍了ETL执行全机构数据刷新的过程,通过全机构数据刷新专用的机构编码控制ETL程序执行全机构数据刷新,并存储至修改后缓存空间中对应分区中,实现全机构刷新的单独通道开辟;并提出了将存储机构数据的表结构修改为二级机构分区,将修改后适配单机构刷新和全机构刷新的加工代码存储至该二级机构分区,再创造机构编码配置表,以实现ETL可以同时支持单机构数据刷新和全机构数据刷新的逻辑;再详细介绍了对ETL程序数据刷新过程中的监控流程,通过不同的数据类型生成对应的监控指标,根据预先设置的不同类型监控指标的计算方式计算数据刷新的监控值,并与预先设置的结果值进行对比,以确定数据刷新过程中是否出现错误,以用于ETL程序的优化。

上面图5和图6从模块化功能实体的角度对本发明实施例中的数据分片刷新装置进行详细描述,下面从硬件处理的角度对本发明实施例中数据分片刷新设备进行详细描述。

图7是本发明实施例提供的一种数据分片刷新设备的结构示意图,该数据分片刷新设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)710(例如,一个或一个以上处理器)和存储器720,一个或一个以上存储应用程序733或数据732的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器720和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据分片刷新设备700中的一系列指令操作。更进一步地,处理器710可以设置为与存储介质730通信,在数据分片刷新设备700上执行存储介质730中的一系列指令操作。

数据分片刷新设备700还可以包括一个或一个以上电源740,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口760,和/或,一个或一个以上操作系统731,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图7示出的数据分片刷新设备结构并不构成对数据分片刷新设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述数据分片刷新方法的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号