赞
踩
Informatica + datax
优化方式:
1.lookup->joiner(df-h informatica相关磁盘空间需要够大约100g+)
2.视图改表(避免Oracle查不动,infa死进程)
3.大表bulk+后建主键索引+datax(splitPk)
4.复杂源表关系,改成后处理或预处理sql处理
5.Datax目标库索引重建,提升插入速率
6.取模(源上限制mod(n,n)),分表思想
7.Informatica 控制台节点进程数量设置(10~25,过高影响速度)
Ps:
1.虚机16核64G 3字段单跑 3G 20 channel datax速度在17w/s
2.虚机16核64G 多字段(30~40)单跑 3G 20 channel datax速度在12w/s
3.死进程处理, ps-ef|grep datax/ ps-ef|grep sqlplus 然后 kill -9 pid。清数据,重迁。。
4.针对informatica 源数据库,脚本进行批量处理,提升开发效率(批量刷新源,批量刷新命令行等等,批量获取mapping源目标表等等)
5.Informatica控制台超时时间设置,日志监控,或基于储存库元数据脚本监控等的
6.储存库尽量与迁移机器同库,避免由于网络,权限等影响到连接以及掉线
7.需要迁移老系统id到新系统资源从表old_ID,用于双向同步
方案4套
以老系统数据为准的增量2套
1.老系统半小时变化数据同步新系统
与半小时后进行比对新增修改(基于对应所需要字段)删除数据,删除datax同步到 新系统表名+del(例如xxx_del)新增修改到中间库新系统表名+zl 目标库新系统表名+老系统zl,新系统根据其删除在新增(parallel+nologging)
大数据量不建议建表,目前采用Oracle 快照+并行+infa+datax
2.新系统ID抽到老系统与老系统进行id比对新增删除,比对到 老系统add_record_data ,actionId 1 新增 0删除等等
以新系统数据为准的增量2套
1.实时同步,我司Java代码+kafka+存过+线程池实现,缺点无法处理大数据,测试场景工作量较大,优点走公共组件,可以实时同步
2.全天上面补充机制(防止mq消息丢失,挂掉,垃圾数据,等其他业务缺失数据情况),datax抽取老系统id,根据对应业务逻辑比对到新系统zl_data表,对应id,规格,操作方式(add/update)发送mq(surl -X POST -url),删除数据datax同步老系统存过打标删除(接口暂不支持删除)关系数据处理,新系统根据业务比对出两端old_id datax到老系统调存过业务处理
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。