基于数据库日志并行实时增量统计的方法技术

技术编号:32563670 阅读:31 留言:0更新日期:2022-03-09 16:48
本发明专利技术涉及一种基于业务系统数据进行并行实时增量统计的方法,包括单机模式和分布式两种情况,通过监听业务数据库的操作日志,将业务数据实时增量同步到ClickHouse节点,对业务数据无侵入,借助ClickHouse节点数据同步表的增量统计功能进行指标数据实时统计,将业务数据库的指标数据计算压力转移到ClickHouse节点上,提高了指标数据计算性能,实现了实时指标数据高并发的亚秒级查询,解决了频繁更新的海量数据的指标数据统计。的海量数据的指标数据统计。的海量数据的指标数据统计。

【技术实现步骤摘要】
基于数据库日志并行实时增量统计的方法


[0001]本专利技术涉及计算机科学大数据
,特别涉及一种基于业务系统数据进行并行实时增量统计的方法。

技术介绍

[0002]业务系统中常常有一些实时指标数据的统计需求,当业务数据发生变化后,用户能实时查询变化后的统计指标数据。业务系统通常使用成熟的关系型数据库(如MySQL、SQL Server、Oracle、PostgreSQL等)作为业务数据存储。常用的实时统计方法有如下几种:1)使用统计类SQL语句从业务数据库进行实时查询。
[0003]2)使用内存缓存,将实时计算的统计指标数据保存到内存缓存,当影响指标统计的数据变化后需要清除对应缓存指标数据,从而在下次访问统计指标数据时触发指标重算并更新缓存。
[0004]3)业务数据库使用读写分离技术,从备用节点进行指标数据统计与查询。
[0005]4)业务数据库使用分片存储技术,将数据量大的表进行水平拆分,这样单个统计类SQL语句能分发到数据库分片节点上并行执行。
[0006]5)服务器端定时进行指标统计计算,计算完成后本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.基于单机模式下数据库日志并行实时增量统计的方法,其特征在于:包括以下步骤:步骤S1:启动数据事件消费者,创建ClickHouse节点对应的数据同步表,并将业务数据库表的全量数据同步到创建的数据同步表中;步骤S2:启动数据事件生产者,按照redis记录的业务数据库日志位置的顺序读取业务数据库日志,根据先后读取业务数据库日志的顺序将其推送到消息队列;所述业务数据库日志包括数据新增事件、表结构变化事件;步骤S3:事件数据消费者完成全量数据同步后,自动开启增量同步操作,消费消息队列中的数据新增事件和/或表结构变化事件,从而将数据新增事件和/或表结构变化事件同步到ClickHouse节点的数据同步表中;步骤S4:根据指标数据的统计需求,基于ClickHouse节点对应的数据同步表创建AggregatingMergeTree引擎的物化视图,在物化视图创建语句中指定需要执行统计的SQL语句;步骤S5:使用SQL语句对AggregatingMergeTree引擎的物化视图进行统计指标数据的结果查询。2.根据权利要求1所述的基于单机模式下数据库日志并行实时增量统计的方法,其特征在于:所述步骤S1具体包括以下步骤:步骤S11:启动数据事件消费者,启动后检查ClickHouse节点对应的数据同步表是否创建;步骤S12:若未创建ClickHouse节点对应的数据同步表,则创建CollapsingMergeTree引擎表作为ClickHouse节点对应的数据同步表;所述CollapsingMergeTree引擎表的状态字段为sign,当sign为1时表示数据为有效,当sign为

1时表示数据为无效;步骤S13:创建好ClickHouse节点对应的数据同步表后,将业务数据库表的全量数据同步到CollapsingMergeTree引擎表中;全量数据同步期间对同步的业务数据库表加上只读锁。3.根据权利要求2所述的基于单机模式下数据库日志并行实时增量统计的方法,其特征在于:所述步骤S2具体包括以下步骤:步骤S21:启动数据事件生产者,按照redis记录的业务数据库日志位置的顺序读取业务数据库日志,若redis尚未记录业务数据库日志,则从业务数据库日志的末尾开始读取;步骤S22:若读取到数据新增日志,则转换为数据新增事件,并将状态字段sign设置为1;若读取到数据修改日志,则转换为两条数据新增事件,第一条是修改前数据,并将状态字段sign设置为

1,第二条是修改后数据,并将状态字段sign设置为1;若读取到数据删除日志,则转换为数据新增事件,并将状态字段sign设置为

1;步骤S23:若读取到DDL操作日志,则转换为表结构变化事件,同时转换为ClickHouse节点对应的DDL语句;步骤S24:将转换后的数据新增事件和表结构变化事件,按照读取业务数据库日志的顺序推送到消息队列。4.根据权利要求3所述的基于单机模式下数据库日志并行实时增量统计的方法,其特征在于:若redis尚未记录业务数据库日志,则成功推送到消息队列后,将读取业务数据库日志的顺序记录在redis中。
5.根据权利要求3所述的基于单机模式下数据库日志并行实时增量统计的方法,其特征在于:所述步骤S3的具体步骤包括:对于消息队列中的数据新增事件,按照ClickHouse节点语法执行DML语句插入数据;对于表结构变化事件,则执行转换后的DDL语句,从而将数据新增事件和/或表结构变化事件同步到ClickHouse节点的数据同步表中。6.根据权利要求1所述的基于单机模式下数据库日志并行实时增量统计的...

【专利技术属性】
技术研发人员:马杲灵游飞龙杨照能石明恩汪睿铭杜华飞宋赣源石尧孙青松
申请(专利权)人:贵州数联铭品科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1