采用还原CSV文件方法处理巨量数据操作文档讲述.docx

采用还原CSV文件方法处理巨量数据操作文档讲述.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
采用还原CSV文件方法处理巨量数据操作文档讲述

采用还原CSV文件方法处理巨量数据操作文档 说明: 进行数据迁移工作时,会存在将原数据从SQL Server数据库还原至Oracle中间库的工作,此类工作可采用建立中间库对应表、使用SQL Developer工具等方法进行数据还原工作,但是涉及诸如电子档案这种百万、千万级数据量的还原工作,还原时间会很长且容易出错,根据还原襄阳项目中电子档案数据的经验,总结下使用还原CSV文件的方法处理大数据量的具体操作,襄阳电子档案数据量总量为1300万左右,普通的还原时间为15h左右,采用还原CSV文件的方式处理襄阳电子档案数据,还原时间为1.5h左右,大大缩短了还原时间。 注:使用还原CSV文件的方法要注意还原的来源表中列数不要过多、每个字段的数据不要过长,此方法适合数据量大、表列数少、表中字段长度较小的表。 目录 说明: 1 1. 将需要还原的表中数据存为CSV文件 3 2. 在Oracle中间库中建立还原临时表 6 3. 创建CTL文件 7 4. 执行还原脚本 7 5. 在Oracle中间库中处理临时表 7 6. 处理需要还原的表无唯一性标识无法分解的方法 7 1. 将需要还原的表中数据存为CSV文件 1) 创建每一个CSV文件时注意一个CSV文件的数据量要控制在100W以内,这就需要将需要还原的表打碎分解为若干个临时表,具体的分解表方法参照下图: 2) 创建好临时表之后,登录SQL Server数据库,选择还原表所在的数据库新建查询,在查询窗口中将新建立的临时表所有数据查询出来,在结果区域中右键选择将结果另存为选项,将查询数据存为CSV文件,之后打开存好的CSV文件将第一行删除(第一行为列名称信息,需要删除不然在还原时会出现错误),具体操作如图: 2. 在Oracle中间库中建立还原临时表 根据SQL Server数据库中分解表的数量,在Oracle中间库中建立相同数量、结构的还原表,参照如下脚本: create table zjb_ywdzdacflb1 as select * from ywdzdacflb; 3. 创建CTL文件 i. 通过使用TEXT文档创建CTL文件,只需要将文档后缀.TXT改为.CTL即可。 ii. CTL文件语句如下: load data infile d:\ywdzdalb1.csv --路径为新建立的CSV文件存放的位置。 insert into table zjb_ywdzdalb1 --table后为Oracle中对应建立的还原临时表名 fields terminated by X09 trailing nullcols (DZDAXH,YWSJYPYJBH,YWDJXH,SJMC,CLHJ) –括号内为Oracle中对应临时表中的具体字段 4. 执行还原脚本 打开CMD窗口,执行如下语句进行还原: sqlldr userid=xyfcnew/xyfcnew@xyfcnew control=d:\dzdadalb.ctl log=d:\dadzdalb.log 说明:userid后为Oracle中间库临时表所在的用户及实例名称,control后为CTL文件所在的位置。 5. 在Oracle中间库中处理临时表 将还原后的各临时表数据统一插入至目标表,参照如下语句: insert into ywdzdalb select * from zjb_ywdzdalb1; commit; 多表进行重复操作。 6. 处理需要还原的表无唯一性标识无法分解的方法 在SQL Server数据库中存在需要还原的表,数据量巨大,需要进行拆分分解为多个表进行单独的还原的情况,但是有些表可能无唯一性的标识,襄阳项目中电子档案存放表中无唯一性标识且数据量为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) sel

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档