CDC+ETL实现数据集成方案
欢迎咨询,合作! weix:wonter
名词解释:
CDC又称变更数据捕获(Change Data Capture),开启cdc的源表在插入INSERT、更新UPDATE和删除DELETE活动时会插入数据到日志表中。CDC通过捕获进程将变更数据捕获到变更表中,通过cdc提供的查询函数,我们可以捕获这部分数据。
ETL数据仓库技术(Extract-Transform-Load),它是将数据从源系统加载到数据仓库的过程。用来描述将数据从来源端经过萃取(extract)、转置(transform)、加载(load)至目的端的过程。使用到的工具包含(kettle、flume、sqoop)。
Kettle基于JAVA的ETL工具,支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现。
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
Sqoop是Apache开源软件,主要用于在HADOOP(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递。
适用于能与大数据集群直接通信的关系数据库间的大批量数据传输。
数据集成方案对比
数据集成有两种方案:
一种是通过ESB接口方式进行数据集成,优点是数据的时效性高,但最大的弊端是依赖于业务系统的接口改造,往往会涉及和厂商的接口费用。另一种方式就是通过ETL方式抽取数据,并通过CDC方式实现数据实时同步,优点是不依赖于业务系统,只需要获取业务系统数据库权限便可实现集成。
CDC+ETL数据集成方案
第一步:通过kettle抽取历史数据到数仓中间库。
支持图形化的GUI设计界面,方便第一轮实施人员无业务化操作流程,稳定、高效。
第二步:业务系统镜像数据库启动CDC功能,并实时同步数据到数仓中间库。
该技术通过读取镜像数据库日志文件,解析回放数据库操作方式,实现业务数据变更捕获。日志读取、解析、回放等操作都是在镜像数据库上进行,业务数据库只会产生少量的I/O开销,以最大限度地降低对业务系统的影响。
第三步:通过Sqoop从中间库抽取历史数据到Haoop。
使用颐东数仓配置数据目录映射关系,自动生成跨数据库抽取的SQL语句。
第四步:基础表通过CDC功能实时同步数据到Hadoop。
基础表为人员信息表、数据字典表等会经常维护变更的表。
第五步:记录表通过flume增量实时抽取数据到Hadoop。
记录表为数据携带时间戳的表,该表内容变更多以修改操作状态形式增量添加。
第六步:数据中台
数据湖提供数据中台服务,根据业务活动,自定义勾选数据集市所需字段,生成ElasticSearch索引,并自动生成数据接口。
数据应用
推荐阅读: