本发明专利技术涉公开了一种实时指标更新方法及其更新装置,属于实时计算技术领域,能有效地解决实时指标更新过程中的数据抖动问题,能有效地解决实时指标更新过程中的数据延迟问题,在实时指标更新的过程对终端用户来说完全是透明的,做到将指标更新和指标使用这两个过程的解耦;元数据存储单元:用于维护指标集的注册信息表,所述的注册信息表包含如下字段:主控单元:用于接收指标集更新请求,把指标集注册到元数据存储单元,向Flink集群提交报表数据计算作业。据计算作业。据计算作业。
【技术实现步骤摘要】
实时指标更新方法及其更新装置
[0001]本专利技术涉及实时计算
,尤其涉及一种实时指标更新方法及其更新装置。
技术介绍
[0002]随着大数据技术的发展,很多公司对数据处理时效性的要求越来越高,因此有了诸如Flink这样的实时计算框架,让数据开发工程师可以提交Flink作业到Flink集群,Flink作业的计算结果可以实时地输出到外部存储系统中。
[0003]这里,将上述Flink作业称为指标计算作业,将上述存储系统称为指标数据库,指标数据库里面包含若干个指标集;一个指标集里面包含若干个实时指标,简称指标;如果指标数据库是关系型数据库,那么一个指标集就对应了一张表,指标就是表里面的字段。指标的观察者(也可以成为使用者)称为终端用户,他们通常会借助DataV、帆软之类的可视化报表工具观察指标的变化。
[0004]下面举一个具体实施例:
[0005]指标集:对应关系型数据库mysql的里面的一张表,假设表的名称是index_table,字段定义如下表;每个字段都对应一个指标;
[0006]字段名称字段类型含义指标1任意对应指标集里面的一个指标指标2任意对应指标集里面的一个指标指标3任意对应指标集里面的一个指标
[0007]指标计算作业:对应一个Flink SQL作业,该作业的内容是一个sql文件,该作业被提交到Flink集群中,将结果实时输出到index_table;
[0008]指标更新包括两种情形:
[0009]一是指标集增加了新的指标,对应地,也需要增加新指标对应的计算逻辑并计算指标的历史数据(这需要);
[0010]二是指标集修改了某个指标的计算逻辑,对应地,也需要回刷该指标的历史数据。
[0011]指标更新时,如果停止原先的指标计算作业,修改后,再重新提交指标计算作业。这会带来两大问题:
[0012]一是数据延迟:指标计算作业的启动、修改和停止需要消耗几分钟的时间,这意味着在这几分钟的时间内,实时指标得不到更新,实时报表的使用者无法及时获取他们关心的指标的最新值;
[0013]二是数据抖动:在修改过指标计算作业之后,如果我们从全新的状态启动指标计算作业(比如让该作业从消息中间件的初始点位开始重头消费),就可以将实时指标的历史数据重新计算一遍,我们把这个过程叫做指标回刷。这个时候Flink输出的实时指标会在经历一个从历史到现在的剧烈变化过程,持续时间几秒到几分钟不等。我们把这种指标在短时间内的剧烈变化过程叫做数据抖动,这会使指标的终端用户产生困惑。
技术实现思路
[0014]本专利技术是为了解决现在实时指标更新时存在数据抖动和数据延迟的问题,提供一种能有效地解决实时指标更新过程中的数据抖动问题,能有效地解决实时指标更新过程中的数据延迟问题,在实时指标更新的过程对终端用户来说完全是透明的,做到将指标更新和指标使用这两个过程的解耦,可靠性高的实时指标更新方法及其更新装置。
[0015]为了实现上述目的,本专利技术采用以下技术方案:
[0016]实时指标更新装置,包括:
[0017]元数据存储单元:用于维护指标集的注册信息表,所述的注册信息表包含如下字段:
[0018](1.1)table:指标集的名称;
[0019](1.2)flink_sql_script:实时指标计算作业的内容;
[0020](1.3)db_url:指标数据库的连接地址;
[0021](1.4)status:指标集的状态,包括更新中和已更新这两种指标集的状态;
[0022](1.5)view:指标视图的名称;这里,指标视图存在于指标数据库之中,用于指向对应的指标集;
[0023](1.6)start_time:实时指标开始更新的时间;
[0024](1.7)end_time:实时指标结束更新的时间;
[0025]主控单元:用于接收指标集更新请求,把指标集注册到元数据存储单元,向Flink集群提交报表数据计算作业。
[0026]作为优选,实时指标更新装置还包括:Flink集群:为Flink作业的执行提供运行环境;用户可向Flink集群中提交多个Flink作业。
[0027]作为优选,实时指标更新装置还包括:报表展示工具:用于配置和展示可视化报表。
[0028]作为优选,实时指标更新装置还包括:所述的报表展示工具主要有DATAV、帆软;
[0029]作为优选,如果终端用户观察的是指标视图,而不是直接使用指标集,就能通过改变指标视图指向的方式实现“更新指标”的目的。
[0030]作为优选,每个报表在Flink集群中都对应一个Flink作业。
[0031]作为优选,实时指标更新装置还包括:作业监控单元,用于在固定周期内完成元数据存储单元的报表注册信息表中获取所有status的更新指标作业。
[0032]一种实时指标更新方法,实现步骤如下:
[0033]步骤101、数据开发者向实时指标更新装置发起更新请求;
[0034]步骤102、实时指标更新装置的主控单元接收更新请求,从请求的参数中提取table参数,并查询元数据存储单元的指标注册信息表中查询这个table是否存在;
[0035]步骤102
‑
1、如果不存在,则说明这是一个新上线的指标集,主控单元往报表注册信息表插入一条新的记录,并将该条记录的status设定为更新中;
[0036]步骤102
‑
2、如果存在,则说明这个报表已经上线,主控单元在报表注册信息表中更新该记录,将status设定为更新中;
[0037]步骤103、向Flink集群提交一个Flink SQL作业,作业内容为flink_sql_script;
[0038]步骤201、作业监控单元在固定周期内,从元数据存储单元的报表注册信息表中获
取所有status为更新中的记录,存放到,提取table字段,放入待更新集合中;该集合里面的每个元素对应一个指标集名称;
[0039]步骤202、遍历这个待更新集合,对里面的指标集名称,在指标集注册信息表中查到对应记录;
[0040]步骤203、如果当前系统时间大于等于end_time,用所属记录中提取的db_url连接指标数据库;
[0041]步骤204、从记录中提取指标视图名称view;在指标数据库执行数据操作语句,将view指向table;
[0042]步骤205、将记录的status字段设置为已更新,并更新到报表注册信息表中。
[0043]作为优选,更新请求的参数包括:
[0044]1)table:指标集的名称;
[0045]2)flink_sql_script:实时指标计算作业的内容,类型为字符串,通常这个内容里面包含的是在flink集群上执行的sql脚本;
[0046]3)db_url:指标数据库的连接地址,字符串类型;
[本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.实时指标更新装置,其特征在于,包括:元数据存储单元(1):用于维护指标集的注册信息表,所述的注册信息表包含如下字段:(1.1)table:指标集的名称;(1.2)flink_sql_script:实时指标计算作业的内容;(1.3)db_url:指标数据库的连接地址;(1.4)status:指标集的状态,包括更新中和已更新这两种指标集的状态;(1.5)view:指标视图的名称;这里,指标视图存在于指标数据库之中,用于指向对应的指标集;(1.6)start_time:实时指标开始更新的时间;(1.7)end_time:实时指标结束更新的时间;主控单元(2):用于接收指标集更新请求,把指标集注册到元数据存储单元,向Flink集群提交报表数据计算作业。2.根据权利要求1所述的实时指标更新装置,其特征在于,实时指标更新装置还包括:Flink集群(3):为Flink作业的执行提供运行环境;用户可向Flink集群中提交多个Flink作业。3.根据权利要求1或2所述的实时指标更新装置,其特征在于,实时指标更新装置还包括:报表展示工具(4):用于配置和展示可视化报表。4.根据权利要求3所述的实时指标更新装置,其特征在于,实时指标更新装置还包括:所述的报表展示工具主要有DATAV、帆软。5.根据权利要求1所述的实时指标更新装置,其特征在于,如果终端用户观察的是指标视图,而不是直接使用指标集,就能通过改变指标视图指向的方式实现“更新指标”的目的。6.根据权利要求1或2或5所述的实时指标更新装置,其特征在于,每个报表在Flink集群中都对应一个Flink作业。7.根据权利要求1所述的实时指标更新装置,其特征在于,实时指标更新装置还包括:(5)作业监控单元,用于在固定周期内完成元数据存储单元的报表注册信息表中获取所有status的更新指标作业。8.一种实时指标更新方法,其特征在于,实时指标更新方法的实现步骤如下:步骤101、数据开发者向实时指标更新装置发起更新请求;步骤102、实时指标更新装置的主控单元接收更新请求,从请求的参数中提取table参数,并查询元数据存储单元的指标注册信息表中查询这个table是否存在;步骤102
‑
1、如果不存在,则说明...
【专利技术属性】
技术研发人员:胡一帆,
申请(专利权)人:杭州火树科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。