征文第一弹 | 中国民生信托:如何利用Informatica CDC实现增量数据捕获
作者:中国民生信托IT数据团队
我们最近在微信群里发布了征稿海报,感谢各位粉丝好友的积极响应。本文是经过严格筛选后挑选出来的第一篇高质量稿件,谢谢中国民生信托IT数据团队的支持。期待更多行业精英的投稿参与!有才你就Show出来!
“ 经过多次讨论和技术验证,我们最终决定采用Informatica PowerExchage CDC增量数据捕获方案,实现数据的增量采集。
经过1个月的努力,民生信托IT数据团队完成了测试及生产环境的部署实施工作。在此过程中,非常感谢Informatica及其合作伙伴的大力支持,协助我们解决了各种技术难题。”
——中国民生信托IT数据团队
中国民生信托有限公司是经银保监会批准的68家信托公司之一,公司注册资本70亿元。自2013年4月复业以来,中国民生信托始终保持稳健高速发展,主动管理能力不断提高,在财富、投资、投行、资管、融资等五大领域深入布局,主动管理资产规模占比接近80%,位居行业前列。六年来,公司累计分配信托收益超过400亿元,在刷新行业发展速度的同时,为高净值人群和机构投资者创造了丰厚的投资回报。
本文由中国民生信托IT数据团队原创出品,让我们跟随中国民生信托的第一视觉,一起探索增量数据采集的秘诀。
中国民生信托的业务需求:
-
核心业务系统中的数据不断累积,每日全量采集数据需要的时间越来越长;
-
为保证数据的准确性,部分数据采集至数据中心后需进行清洗和加工,全量采集数据会导致清洗后的数据被覆盖。
面临的数据挑战:
-
不同的增量方案如何选择;
-
增量方案如何与已有的数据管理工具集成;
-
部署实施增量方案的实践经验不足。
采用的解决方案:
Informatica PowerExchange Change Data Capture (CDC)增量数据捕获方案
中国民生信托经过一个月的多次讨论和技术验证,通过层层筛选最终决定采用Informatica PowerExchage CDC增量数据捕获方案,结合已有的Informatica PowerCenter工具,实现数据的增量采集。
CDC 数 据 采 集
数据采集是指从源系统抽取数据到目标系统的过程,增量数据采集是指ETL只抽取自上次完成采集以来源系统中变化的数据,而如何捕获变化的数据是增量采集的关键。本期将分享我们在项目实践中,通过Informatica PowerExchange CDC实现增量抽取数据的步骤,以及在部署过程中遇到的问题和解决方案。
常见的增量数据采集方案包括:时间戳方式、全表比对、基于触发器、读取归档日志。其中,全表比对和读取归档日志的方式无需修改源系统数据库,而读取日志的性能更好。
Informatica PowerExchage CDC产品就是通过加载、解析源系统的数据库归档日志,捕获源系统的变化数据并且将这些变化数据复制到目标数据库或者目标文件中来实现增量数据采集的。
CDC为Client-Server架构,需要配合Informatica PowerCenter(PWC)使用,Server端包括PWX Listener、PWX Logger服务,PWX Logger通过读取配置文件信息捕获、解析归档日志,PWX Listener提取需要处理的数据并传给客户端。客户端负责配置要被监听的用户和表以及将变更记录传给PWC会话。
数据源为关系型数据库时,可以将CDC服务端安装在源数据库服务器上,非RAC环境时从性能角度这属于最佳配置;也可以将CDC服务端安装在单独的服务器上,以减少对源数据库系统的影响。
针对源系统数据库为带有ASM的RAC环境,下面具体介绍如何在单独的服务器上安装配置CDC 服务,以及如何在windows机器上安装配置CDC 客户端,相关部署架构如下图所示:
安装步骤详解
▶安装配置CDC服务端:
• 安装CDC软件
在Linux服务器上将CDC安装包解压到一个新建的目录,执行安装文件开始进行安装操作,安装成功后修改PWX_HOME、LD_LIBRARY_PATH、PATH环境变量,执行source ~/.bashrc命令使环境变量生效,然后验证环境变量是否生效。
• 配置dbmover.cfg
dbmover.cfg的作用是配置PWX Listener服务器地址、源数据库系统连接、存放日志的数据库连接。具体配置如下图所示:
• 配置pwxccl.cfg
pwxccl.cfg用于配置要监听的数据库服务器以及访问日志的数据库用户名密码,日志的刷新模式和刷新频率,日志的捕获目录。具体的配置如下图所示:
• 配置pwxorad.cfg
pwxorad.cfg是为带有ASM的源数据库系统专用的,包含ASM的配置信息以及用户名、密码。具体配置如下:
▶安装配置CDC客户端 :
• 安装CDC Client
在Windows服务器上新建目录执行安装文件进行客户端的安装操作。
• 配置文件
客户端的配置文件有两个,文件的目录和文件名称分别是:
文件的作用是配置CDC服务端的服务器地址,具体配置如下图所示:
▶启用数据捕获 :
• 打开PWX Listener服务
在CDC服务器端打开$PWX_HOME目录,执行./dtllst node1命令开启PWX Listener服务。
• 注册捕获
(1) 添加注册组,如下图所示
添加注册组完成以后启动PWX Logger服务,第一次启动Logger服务需要设置冷启动模式,然后开始进行测试,捕获到增量数据后检查数据是否正确。
确认行测试成功以后就可以将PWX和PWC进行结合使用,将PWX作为源导入到PWC Designer中,如下图所示:
配置完成映射和工作流以后,执行工作流实现把增量数据抽取到目标数据库中。
CDC常见操作错误总结
问题1:
启动CDC服务的时候,报错找不到dll文件:
原因:
PWX用户(安装CDC的用户)无权访问oracle用户的文件目录。
解决方案:
方法1:使用oracle用户安装CDC。
方法2:把PWX用户添加到oracle用户组中,并且使用root用户授权访问该目录以及文件。
方法3:在相同目录下新建dll文件链接,然后授权PWX用户访问权限。
问题2:
在客户端配置注册组的时候报错,如下图:
原因:
在pwxorad.cfg文件配置的tns连接串使用的是dbmover.cfg中的TNS连接串。
解决方案:
在CDC服务器上修改tnsnames.ora文件,添加源数据库系统ASM配置,并且修改pwxorad.cfg的TNS连接串为ASM连接串。
问题3:
执行工作流时报错,报错信息如下图:
原因:
因为PWC和CDC安装在同一台服务器上,并且使用了同一个用户安装,导致两者共用一个环境变量文件,LD_LIBRARY_PATH产生冲突。
解决方案:
(1) 在CDC服务器上修改环境变量顺序,将PWX_HOME放在INFA_HOME后面,重新启动infa服务。
(2) 如需要重新启动CDC服务,通过使用临时的环境变量更改变量顺序:
export LD_LIBRARY_PATH=$PWX_HOME:$LD_LIBRARY_PATH
再次感谢中国民生信托IT数据团队为本次征稿活动写下精彩开篇,对于数据管理有独到见解和前瞻视界的你,对于Informatica产品应用和使用技巧超有心得的你,快把文章投过来吧,小殷期待有才的你Show出来!
稿件请发至[email protected]
或添加小殷微信“INFORMATICA01”撩一撩
想了解更多相信信息,请关注Informatica数据管理(微信号:InformaticaChina)