[发明专利]数据库到数据仓库的离线增量同步方法及系统有效
申请号: | 201711349321.2 | 申请日: | 2017-12-15 |
公开(公告)号: | CN107958082B | 公开(公告)日: | 2021-03-26 |
发明(设计)人: | 胡加华 | 申请(专利权)人: | 杭州有赞科技有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/28;G06F16/27 |
代理公司: | 杭州裕阳联合专利代理有限公司 33289 | 代理人: | 姚宇吉 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 数据仓库 离线 增量 同步 方法 系统 | ||
本发明提供了一种数据库到数据仓库的离线增量同步方法,包括以下步骤:监听数据库表的变更事件;将变更事件回流到分布式文件系统的目录中,同时将变更事件的增量数据按预设时间周期进行归档;将数据库表全量导入数据仓库表中;响应调度指令后,将时间周期内累加的增量数据与数据仓库表数据合成新的全量表,并用新的全量表覆盖之前表数据。本发明表数据全量只同步一次,第二次将表更新的数据和上一次的全量数据进行合并,合并出新的全量表。后续就一直使用增量合并的方式,因此,从数据库表同步变更的增量数据比同步全量表成本就变的很低了,在数据库资源受限的情况下,能完成数据库表到数据仓库的快速同步。
技术领域
本发明涉及数据同步技术领域,特别涉及一种数据库到数据仓库的离线增量同步方法系统。
背景技术
当我们需要对OLTP数据库的某张业务大表进行统计报表分析,以提供一些所需的用于业务决策的数据依据,往往都是用ETL导入工具把数据库表全量导入数据仓库的HIVE表,然后利用大数据的集群资源能力快速地对表加工得出我们需要的统计报表。每天数据库表都有更新(新增、更新或者删除),如果每天都需要看这样的报表的话,就需要每天调度导一次新的HIVE表覆盖之前的,然后在产出新的报表。
上述的做法存在以下缺陷:一方面,OLTP数据库是比较宝贵的资源,导入工具在导的过程势必需要限制速率,防止速率太快对造成资源压力,从而导致使用该数据库的上层核心业务应用受到影响,造成用户的不好体验。但是如果数据库表很大,而限速就会导致导入过程变的很长,最终报表产出就会很延迟,这份迟到的数据依据可能就变的毫无意义;另一方面,大部分业务表每天更新数据相对于全表是很少的,可能只占了1%,如果将数据库表全量导入数据仓库表中时,就需要每天把99%重复数据从一个地方搬到另一个地方,本身就白白浪费了很多资源。
发明内容
本发明的目的是提供一种数据库到数据仓库的离线增量同步方法和系统,解决现有上述的问题。
为解决上述问题,本发明实施例提供一种数据库到数据仓库的离线增量同步方法,包括以下步骤:
监听数据库表的变更事件;
将变更事件回流到分布式文件系统的目录中,同时将变更事件的增量数据按预设时间周期进行归档;
将数据库表全量导入数据仓库表中;
响应调度指令后,将时间周期内累加的增量数据与数据仓库表数据合成新的全量表,并用新的全量表覆盖之前表数据。
作为一种实施方式,所述将变更事件回流到分布式文件系统的目录中,包括以下步骤:
对数据库表订阅数据变更事件,实时写入消息队列;
实时地消费变更事件,并批量写入分布式文件系统的目录中。
作为一种实施方式,所述订阅数据变更事件消息体内容包括:记录的事件类型、记录所有字段名和对应的值、以及能用于识别单个记录事件时序的字段名和值。
作为一种实施方式,所述监听数据库表的变更事件,包括以下步骤:
通过事件时序标记数据库表每个记录的多个变更事件。
作为一种实施方式,所述将增量数据与数据仓库表数据合成新的全量表,包括以下步骤:
筛选每个记录中最新的变更事件作为增量数据;
通过全局唯一键来关联增量数据与数据仓库表的相同记录;
将增量数据与数据仓库表数据进行合并。
作为一种实施方式,若表为物理单表,则通过表的自增主键ID来作为表唯一键;
若表为多个物理库表,则通过表的自增主键ID+分库字段来作为全局唯一键。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州有赞科技有限公司,未经杭州有赞科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711349321.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:信息处理方法与装置
- 下一篇:一种档案一体化管理系统