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

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

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

采用还原CSV文件方法处理巨量数据操作文档说明:进行数据迁移工作时,会存在将原数据从SQL Server数据库还原至Oracle中间库的工作,此类工作可采用建立中间库对应表、使用SQL Developer工具等方法进行数据还原工作,但是涉及诸如电子档案这种百万、千万级数据量的还原工作,还原时间会很长且容易出错,根据还原襄阳项目中电子档案数据的经验,总结下使用还原CSV文件的方法处理大数据量的具体操作,襄阳电子档案数据量总量为1300万左右,普通的还原时间为15h左右,采用还原CSV文件的方式处理襄阳电子档案数据,还原时间为1.5h左右,大大缩短了还原时间。注:使用还原CSV文件的方法要注意还原的来源表中列数不要过多、每个字段的数据不要过长,此方法适合数据量大、表列数少、表中字段长度较小的表。目录说明:11.将需要还原的表中数据存为CSV文件32.在Oracle中间库中建立还原临时表63.创建CTL文件74.执行还原脚本75.在Oracle中间库中处理临时表76.处理需要还原的表无唯一性标识无法分解的方法7将需要还原的表中数据存为CSV文件创建每一个CSV文件时注意一个CSV文件的数据量要控制在100W以内,这就需要将需要还原的表打碎分解为若干个临时表,具体的分解表方法参照下图:创建好临时表之后,登录SQL Server数据库,选择还原表所在的数据库新建查询,在查询窗口中将新建立的临时表所有数据查询出来,在结果区域中右键选择将结果另存为选项,将查询数据存为CSV文件,之后打开存好的CSV文件将第一行删除(第一行为列名称信息,需要删除不然在还原时会出现错误),具体操作如图:在Oracle中间库中建立还原临时表根据SQL Server数据库中分解表的数量,在Oracle中间库中建立相同数量、结构的还原表,参照如下脚本:create table zjb_ywdzdacflb1 asselect *from ywdzdacflb;创建CTL文件通过使用TEXT文档创建CTL文件,只需要将文档后缀.TXT改为.CTL即可。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中对应临时表中的具体字段执行还原脚本打开CMD窗口,执行如下语句进行还原:sqlldr userid=xyfcnew/xyfcnew@xyfcnew control=d:\dzdadalb.ctl log=d:\dadzdalb.log说明:userid后为Oracle中间库临时表所在的用户及实例名称,control后为CTL文件所在的位置。在Oracle中间库中处理临时表将还原后的各临时表数据统一插入至目标表,参照如下语句:insert into ywdzdalbselect *from zjb_ywdzdalb1;commit;多表进行重复操作。处理需要还原的表无唯一性标识无法分解的方法在SQL Server数据库中存在需要还原的表,数据量巨大,需要进行拆分分解为多个表进行单独的还原的情况,但是有些表可能无唯一性的标识,襄阳项目中电子档案存放表中无唯一性标识且数据量为1000W,在分解时采用如下的方法:首先建立电子档案存放表的临时表,之后在临时表中增加字段作为唯一性标识的字段。参照如下语句:create table zjb_ywdzdacflb(dzdaxh varchar(20), xh int, wjm varchar(200), id int);说明:表中前三个字段为原表的字段,ID字段为新增的作为唯一性标识的字段。手动将新增的字段设置为标识字段,右键新建的临时表,选择设计,之后在窗口中点击新增加的字段ID,在下方列属性列表中选择标识规范, 将是标识选择为是,操作如下:将需要迁移的表数据插入到临时表,不包含新增的字段数据,新增的字段类似于Oracle数据库的ROWNUM,参照语句:insert into zjb_ywdzdacflb(dzdaxh,xh,wjm)select dzdaxh,xh,wjmfrom ywdzdacflb;最后,对新建立的临时表进行分解操作,参照脚本:select top 1000000 * into zjb_1from zjb_ywdzdacflb;select * into zjb_11from zjb_ywdzdacflb awhere not exists(

文档评论(0)

此项为空 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档