海量数据迁移之数据抽取流程

在之前的一些博文中花了大篇幅介绍了采用外部表抽取的一些细节,可能细节到了,基本原理的内容还希望再补充补充。
采用外部表抽取数据的流程图如下:


大体标注了一下抽取的基本结构,我们会尽量保证不去碰原本的数据源,会创建两个临时的用户,一个是只读用户,这个用户上只有同义词,只具有数据源中的select权限。这就对应上面红色标注的1,而另外一个用户是外部表用户,所有通过创建外部表都会在这个用户下进行,生成了dump文件之后,我们可以随时删除外部表,这个时候为了保证相关的drop操作不会牵扯到数据源,外部表用户会继承只读用户中的select权限。这就对应红色标注的2.
当开始抽取数据的时候,会去查找是否有权限读取数据,会找到只读用户,最终能够读取数据源的数据,这就对应红色标注的3,4
当满足了基本的条件,就开始生成外部表的dump,可以为一个表生成多个dump,而且这个过程是并行的,这就对应红色标注的5

对于步骤5,是抽取的关键,基本的原理可以参考下面的伪代码,黄色标注的重点部分。

CREATE TABLE MO1_MEMO_EXT

    ORGANIZATION EXTERNAL

   (

     TYPE ORACLE_DATAPUMP

     DEFAULT DIRECTORY xxxxx

     LOCATION (

    ‘xxxx1.dmp’,‘xxxx2.dmp’)

    )

    parallel xx   as

    SELECT  /*+ parallel(t xx) */

  *

    FROM 只读用户.MO1_MEMO;

我们使用了外部表的oracle_datapump引擎,可以在指定的目录下生成多个dump文件,我们可以指定并行度,指定多个dump的名称等等。这些都需要通过编程来控制和管理这些复杂的部分。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23718752/viewspace-1457835/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23718752/viewspace-1457835/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值