采用还原CSV文件方法处理巨量数据操作文档_第1页
采用还原CSV文件方法处理巨量数据操作文档_第2页
采用还原CSV文件方法处理巨量数据操作文档_第3页
采用还原CSV文件方法处理巨量数据操作文档_第4页
采用还原CSV文件方法处理巨量数据操作文档_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、采用还原CSV文件方法处理巨量数据操作文档说明:进行数据迁移工作时,会存在将原数据从SQL Server数据库还原至Oracle中间库的工作,此类工作可采用建立中间库对应表、使用SQL Developer工具等方法进行数据还原工作,但是涉及诸如电子档案这种百万、千万级数据量的还原工作,还原时间会很长且容易出错,根据还原襄阳项目中电子档案数据的经验,总结下使用还原CSV文件的方法处理大数据量的具体操作,襄阳电子档案数据量总量为1300万左右,普通的还原时间为15h左右,采用还原CSV文件的方式处理襄阳电子档案数据,还原时间为1.5h左右,大大缩短了还原时间。注:使用还原CSV文件的方法要注意还原

2、的来源表中列数不要过多、每个字段的数据不要过长,此方法适合数据量大、表列数少、表中字段长度较小的表。目录说明:11.将需要还原的表中数据存为CSV文件32.在Oracle中间库中建立还原临时表63.创建CTL文件74.执行还原脚本75.在Oracle中间库中处理临时表76.处理需要还原的表无唯一性标识无法分解的方法71. 将需要还原的表中数据存为CSV文件1) 创建每一个CSV文件时注意一个CSV文件的数据量要控制在100W以内,这就需要将需要还原的表打碎分解为若干个临时表,具体的分解表方法参照下图:2) 创建好临时表之后,登录SQL Server数据库,选择还原表所在的数据库新建查询,在查询

3、窗口中将新建立的临时表所有数据查询出来,在结果区域中右键选择将结果另存为选项,将查询数据存为CSV文件,之后打开存好的CSV文件将第一行删除(第一行为列名称信息,需要删除不然在还原时会出现错误),具体操作如图:2. 在Oracle中间库中建立还原临时表根据SQL Server数据库中分解表的数量,在Oracle中间库中建立相同数量、结构的还原表,参照如下脚本:create table zjb_ywdzdacflb1 asselect *from ywdzdacflb;3. 创建CTL文件i. 通过使用TEXT文档创建CTL文件,只需要将文档后缀.TXT改为.CTL即可。ii. CTL文件语句如

4、下:load data infile 'd:ywdzdalb1.csv' -路径为新建立的CSV文件存放的位置。insert into table zjb_ywdzdalb1 -table后为Oracle中对应建立的还原临时表名fields terminated by X'09' trailing nullcols(DZDAXH,YWSJYPYJBH,YWDJXH,SJMC,CLHJ) 括号内为Oracle中对应临时表中的具体字段4. 执行还原脚本打开CMD窗口,执行如下语句进行还原:sqlldr userid=xyfcnew/xyfcnewxyfcnew co

5、ntrol=d:dzdadalb.ctl log=d:dadzdalb.log说明:userid后为Oracle中间库临时表所在的用户及实例名称,control后为CTL文件所在的位置。5. 在Oracle中间库中处理临时表将还原后的各临时表数据统一插入至目标表,参照如下语句:insert into ywdzdalbselect *from zjb_ywdzdalb1;commit;多表进行重复操作。6. 处理需要还原的表无唯一性标识无法分解的方法在SQL Server数据库中存在需要还原的表,数据量巨大,需要进行拆分分解为多个表进行单独的还原的情况,但是有些表可能无唯一性的标识,襄阳项目中电

6、子档案存放表中无唯一性标识且数据量为1000W,在分解时采用如下的方法:a) 首先建立电子档案存放表的临时表,之后在临时表中增加字段作为唯一性标识的字段。参照如下语句:create table zjb_ywdzdacflb(dzdaxh varchar(20), xh int, wjm varchar(200), id int);说明:表中前三个字段为原表的字段,ID字段为新增的作为唯一性标识的字段。b) 手动将新增的字段设置为标识字段,右键新建的临时表,选择设计,之后在窗口中点击新增加的字段ID,在下方列属性列表中选择标识规范, 将是标识选择为是,操作如下:c) 将需要迁移的表数据插入到临时表,不包含新增的字段数据,新增的字段类似于Oracle数据库的ROWNUM,参照语句:insert into zjb_ywdzdacflb(dzdaxh,xh,wjm)select dzdaxh,xh,wjmfrom ywdzdacflb;d) 最后,对新建立的临时表进行分解操作,参照脚本:select top 1000000 * into zjb_1from zjb_ywdzdacflb;select

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论