国开电大大数据技术导论(山西)大数据去重参考答案.docVIP

国开电大大数据技术导论(山西)大数据去重参考答案.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
作者:diandatiku “大数据技术导论”课程实验报告 实验名称:大数据去重 教师评语 教师签字 日期 成绩 学生姓名 学号 一、实验目标 通过Hadoop数据去重实验,学生可以掌握准备数据、伪分布式文件系统配置方法,以及在集成开发环境Eclipse中实现Hadoop数据去重方法。 二、实验要求 了解基于Hadoop处理平台的大数据去重过程,理解其主要功能,并能够在Hadoop环境下独立完成。 (1)制订实验计划。 (2)准备数据。 (3)伪分布式文件系统配置。 (4)在集成开发环境Eclipse中实现Hadoop数据去重。 三、实验内容 (1)制订实验计划。 (2)进入“/usr/local/hadoop”目录。 (3)准备数据。 (4)修改“/usr/local/hadoop/etc/hadoop/”目录下的Hadoop配置文件。 (5)NameNode格式化。 (6)在集成开发环境Eclipse中实现Hadoop数据去重。 四、实验成果 从海量数据中则除数据 从海量数据表中删除一半数据,看似简单,使用delete命令,如果真这么干,SQL Server产生的事务日志暴增,估计会把服务器硬盘爆掉。 数据库的恢复模式会影响日志文件的增长,在删除海量数据时,根据采用的方法,相应地把恢复模式设置为simple,或 bulk logged 模式,能够在很大程度上减少删除操作产生的事务日志,从而避免日志暴增。 另外,在删除数据时,把表上的多余索引删除(注意,是删除多余的索引),只保留一个必需的索引;在数据删除完成之后,再重建索引,能够提高数据删除操作的性能。 有人做过实验,从存储1.6亿条记录的大表中删除数据,每删除400万条要消耗1.5-3小时,越到后面速度越慢,为什 么? 这是因为,每次删除数据时,数据库都要相应地更新索引,这是很慢的硬盘 I0操作,并且,越到后面,索引碎片越多更新索引就越慢,这就是在删除400万条记录时,一开始只消耗1.5小时,后面要消耗3小时原因。 最后,根据保留数据占总数据量的比例,选择不同的方法删除数据。如果大表中保留的数据较少,可以先把保留的数据存储到临时表中,然后,把原始表删除,这样能够利用大容量日志操作,来减少日志的增长和提高数据插入的速度。 1、循环删除,避免日志文件暴增 在从海量数据表中删除大量数据时,为了避免日志文件暴增,通常采用循环删除方法:首先设置恢复模式为simple,然后每次删除操作都只删除部分数据,这样,当单个删除操作执行完成时,事务日志会被及时清理,事务日志一般保持单个删除操作的事务日志量。 循环删除的伪代码如下,该方法仍有一些局限性,耗时过长,并且会长期使数据库处于简单恢复模式下: --ALTER DATABASE database name SET RECOVERY SIMPLE : while @index@Endlndex begin delete table name where index=@index; set @index+=@Increment End 2、将数据插入到临时表中,把原表drop 如果原始表有一半以上的数据要被删除,从原始表中执行delete命令删除数据,效率十分低下,可以考虑,把原始表中的数据通过select语句筛选出来,然后批量插入新表中,这种方式利用了大容量日志(Bulk Logged)操作的优势。 由干 SELECTINTOINSERT SELECT是大容量日志操作,select命令不会产生大量日志文件,因此,执行插入比执行制除的效率更高。最后,执行droD命令,删除整个原始表,几乎不消耗任何时间。 -ALTER DATABASE database name SET RECOVERY BULK LOGGED . insert into new table select column list from original table where filter retain drop table original table 把临时表重命名,执行 sp_rename 或手动重命名,其中 @objtype 参数是可选的,默认值是NULL,对表重命名,设置参数 @obitype=obiect: sp rename @obiname =object name @newname =new name [ ,[ @objtype = ] object type ] 从海量数据中去重 数据去重,分为部分列去重和全部列去重,全部列去重,使用distinct子句来实现,由于distinct操作符会创建在tempdb中临时表,因此,distinct操作是IO密集型的操作。而部分列去重,一般采用row number排名函数来实

您可能关注的文档

文档评论(0)

diandatiku + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档