首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >海量数据迁移之数据抽取流程 (r4笔记第72天)

海量数据迁移之数据抽取流程 (r4笔记第72天)

作者头像
jeanron100
发布2018-03-15 16:25:46
1.4K0
发布2018-03-15 16:25:46
举报

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

大体标注了一下抽取的基本结构,我们会尽量保证不去碰原本的数据源,会创建两个临时的用户,一个是只读用户,这个用户上只有同义词,只具有数据源中的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的名称等等。这些都需要通过编程来控制和管理这些复杂的部分。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档