全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210803069.2 (22)申请日 2022.07.07 (71)申请人 深圳船奇科技有限公司 地址 518000 广东省深圳市南 山区桃源街 道塘朗社区塘长路田寮大厦1003- 1004 (72)发明人 尤齐城 王德林 沈喜仔  (74)专利代理 机构 深圳市育科知识产权代理有 限公司 4 4509 专利代理师 何凯威 (51)Int.Cl. G06F 16/25(2019.01) G06F 16/23(2019.01) (54)发明名称 一种并行解析业务库日志的实时数仓ETL方 法 (57)摘要 本发明公开了一种并行解析业务库日志的 实时数仓ETL方法, 并行解析业务库日志的实时 数仓ETL方法包括业务库产生变更日志、 日志解 析服务解析并回放变更日志、 日志解析服务发送 解析结构到消息队列、 实时同步程序消费消息队 列中的数据, 实现数据同步。 该并行解析业务库 日志的实时数仓ETL方法, 其业界在在日志解析 过程中, 为了实现精确一次, 基本保持串行解析 方式, 这种方式在高负载下会严重延迟, 采用并 行替代串行, 吞吐量更高, 而采用串行方式解析 日志, 同时存在对单核cpu 性能的依 赖, 即使服务 器是多核的, 也无法充分利用资源, 并行解析可 使用更为廉价的cpu, 降低使用成本, 可跨服务器 部署, 利用更为廉价的服务器并行解析, 实现横 向扩展。 权利要求书2页 说明书4页 附图1页 CN 115168468 A 2022.10.11 CN 115168468 A 1.一种并行解析业务库日志的实时数仓ETL方法, 其特征在于: 所述并行解析业务库日 志的实时数仓ETL方法包括业务库产生变更日志、 日志 解析服务解析并回放变更日志、 日志 解析服务发送解析结构到消息队列、 实时同步程序消费消息队列中的数据, 实现数据同步, 具体操作如下: 第一步: 业务库产生变更日志 (1)判断数据 页是否在内存中, 若为否, 则从磁 盘读取数据到内存中, 返回数据行; (2)若是数据页在内存中, 则直接返回数据行; (3)执行数据更新操作; (4)数据写入内存, 同时redo log写入到内存; (5)执行commit操作; (此com mit是SQL命令操作, 而不是 数据的com mit状态); (6)执行commit命令之后, 则进行两段提交操作; (7)写入内存中的redo log到磁盘中, 此时redo log处于prepare状态; (8)写入日志文件到磁 盘; (9)提交事务, 此时事务处于 commit状态; 第二步: 日志解析服 务解析并回放变更日志 (1)首先会启动一个心跳线程, 该心跳线程只作用 于parser模块和sink模块, 每秒向 sink模块推送一个心跳报文; (2)在创建与数据库节点的连接之前, 需要做一些准备工作, 比如确定日志文件的 FORMAT以及日志文件_ro w_image参数的值; (3)建立与数据库的连接, 在 instance.properties文件中会配置Master的地址端口 以 及对应的数据库用户名密码, 此处就是利用这些信息建立与Master的连接; (4)获取到数据库的ServerId; (5)获取最后的位置信息, 也就是上一次与Master通信后读取到的日志文件的位置, 该 位置信息也会写入meta.dat文件中, 因此如果内存中没有, 会尝试从该文件中读取; (6)重新链接, 因为在找positi on过程中可能有状态变更, 需要断开后重建; (7)调用dump()方法开始获取pbinglog数据, 同时注册一个回调事件用于接收返回的 日志文件数据; (8)sleep10秒, 重新执 行上述流程; 第三步: 日志解析服 务发送解析 结构到消息队列 (1)当有第二步中回调事件返回时, 处理流程为调用日志文件Parser类的parse()方法 将返回的二进制日志文件数据LogEvent,解析成canal封装好的Entry事件, LogEvent中包 含一个事件类型ev entType, 详细区分了该事件 是查询操作还是写操作, 或者是心跳等各种 类型; (2)调用EventTransactionBuffer类的add()方法将Entry事件添入一个大小 为1024的 ringbuffer中, EventTransactionBuffer会在一定的条件下把ringbuffer中的Entry事件 推送到si nk模块; 第四步: 实时同步 程序消费消息队列中的数据, 实现数据同步 (1)同步程序按批次 时间拉取消息队列中的数据; (2)根据数据的唯一 性对数据进行去重操作;权 利 要 求 书 1/2 页 2 CN 115168468 A 2(3)使用开源的API写入到数据库中。 2.根据权利要求1所述的一种 并行解析业务库日志的实时数仓ETL方法, 其特征在于: 所述业务库配置记录日志文件, 并按下游的消费能力评估日志文件的大小。 3.根据权利要求1所述的一种 并行解析业务库日志的实时数仓ETL方法, 其特征在于: 所述日志解析组件分布式部署在各服 务器上。 4.根据权利要求1所述的一种 并行解析业务库日志的实时数仓ETL方法, 其特征在于: 所述日志解析组件监听上游日志文件的产生, 若监听到的文件编号属于该服务处理, 则进 行解析处 理。 5.根据权利要求4所述的一种 并行解析业务库日志的实时数仓ETL方法, 其特征在于: 所述日志解析组件解析完成后, 将结果数据发送到支持可重复消费的消息队列组件。 6.根据权利要求4所述的一种 并行解析业务库日志的实时数仓ETL方法, 其特征在于: 所述业务端实现支持可重复消费消息队列组件的业 务程序, 保证数据的准确性。权 利 要 求 书 2/2 页 3 CN 115168468 A 3

PDF文档 专利 一种并行解析业务库日志的实时数仓ETL方法

文档预览
中文文档 8 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共8页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种并行解析业务库日志的实时数仓ETL方法 第 1 页 专利 一种并行解析业务库日志的实时数仓ETL方法 第 2 页 专利 一种并行解析业务库日志的实时数仓ETL方法 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-07 12:40:13上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。