当前位置: 首页 > news >正文

海量数据迁移之数据加载流程(r4笔记第88天)

在之前的博文中分享了关于数据抽取流程的一些思路,整体来说,数据的抽取是辅助,数据的加载是关键。加载的过程中每一步需要格外关注,稍有偏差就可能造成数据的损坏或者丢失。为了更加清晰的说明通过外部表来实现数据加载的流程,特意画了如下的流程图。0在这个图中,数据的抽取是左边的部分,可以根据需要生成对应的外部表dump文件。这个时候可以在目标环境中也创建只读用户,外部表用户,只读用户中只存放同义词,外部表用户中存放的是需要加载的外部表,整个外部表的加载过程不会消耗额外的物理空间,而且加载啊速度极快。这么做有几个好处,最大的一个好处就是可以通过这种方式提前进行数据校验。把一些潜在的数据冲突问题提前发现,提前修复,如果在大半夜的数据加载中发现了问题,再去修复似乎就晚了很多,而且带着疲惫去尝试修复数据真实苦不堪言。右边的图是数据加载的一个流程图。我特意把外部表的dump文件用类似u盘的图标代替就是想说明外部表的加载是即插即用,用完直接卸载即可。而数据在加载之前需要做的一个重要步骤就是数据比较,就是右边图中蓝色的标示部分。通过比较只读用户(即目标数据)和外部表用户中的外部表数据(源数据),可以灵活的匹配主键列,非唯一性约束列可以很有效的进行数据的冗余比较。有了这种方式,在多次的数据迁移中,都可以在数据加载前提前进行数据检查。着实让人放心不少,对于提升自信心是很有帮助的。一旦发现了数据问题,就可以及时发现,提前发现,让专门的团队及时修复数据。至于最关键的数据加载,就是外部表用户和目标数据用户之间的数据关联了。可以通过insert append的方式进行数据的导入。可以根据数据情况进行切分粒度的控制。比如我们有一个表test特别大,有500G,我们就可以把这个大表在收据抽取的时候进行细粒度的切分,比如我们通过启用并行生成了500个dump文件,这样每个dump文件就基本上是1G的标准,每1G的数据加载我们及时提交,会给Undo带来缓解不少的压力。而且这样数据的加载流程可以灵活控制,而不用用漫长的等待来做最终加载是否成功的赌注。

相关文章:

  • 设计模式之工厂方法(r4笔记第89天)
  • database replay基础学习(r4笔记第90天)
  • 结合EM快速解决复杂的配置问题(r4笔记第91天)
  • 世界级Oracle专家Jonathan Lewis:我很为DBA们的未来担(r4笔记第92天)
  • 基于dba_hist_sqlstat查看sql语句的性能历史(r4笔记第92天)
  • 美国版的愚公-24年造山(r4笔记第93天)
  • awk中的变量(r4笔记第93天)
  • 清理session的小插曲(r4笔记第95天)
  • 关于权限管理的实用脚本(r4笔记第94天)
  • 关于date格式的两个案例(r4笔记第96天)
  • 实用的位运算应用(r4笔记第97天)
  • 广东千年古寺微信招聘收到全球超4000份简历(r4笔记第98天)
  • 曲折的10g,11g中EM的安装配置过程(r4笔记第98天)
  • 至离开北京的朋友们(r4笔记第99天)
  • 第5轮学习笔记规划(r4笔记第100天)
  • 【347天】每日项目总结系列085(2018.01.18)
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • EventListener原理
  • HTML中设置input等文本框为不可操作
  • HTTP请求重发
  • JavaScript标准库系列——Math对象和Date对象(二)
  • php中curl和soap方式请求服务超时问题
  • React as a UI Runtime(五、列表)
  • SwizzleMethod 黑魔法
  • 初探 Vue 生命周期和钩子函数
  • 从零开始的无人驾驶 1
  • 力扣(LeetCode)357
  • 前端路由实现-history
  • 学习笔记:对象,原型和继承(1)
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • gunicorn工作原理
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 正则表达式-基础知识Review
  • # Apache SeaTunnel 究竟是什么?
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (C语言)fgets与fputs函数详解
  • (Note)C++中的继承方式
  • (补)B+树一些思想
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)基于IDEA的JAVA基础1
  • .net CHARTING图表控件下载地址
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • /etc/fstab和/etc/mtab的区别
  • @Documented注解的作用
  • @font-face 用字体画图标
  • @RequestMapping 的作用是什么?