数据去重
2017-04-15 18:06:42 0 举报
AI智能生成
数据去重,也称为数据清洗,是指从数据库或数据集中删除重复项的过程。这通常是数据分析和数据挖掘的第一步,因为重复的数据可能会导致误导性的分析结果。数据去重的常用方法包括使用SQL查询、Python脚本或专门的数据清洗工具。在Python中,可以使用pandas库的drop_duplicates()函数来删除DataFrame中的重复行。在SQL中,可以使用DISTINCT关键字来返回唯一的记录。数据去重不仅可以提高数据分析的准确性,还可以节省存储空间并提高数据处理速度。
作者其他创作
大纲/内容
数据去重
重复数据删除的优势
节省空间
消除重复数据,降低存储成本
节省时间
减少存储传输,提高存储效率
重复数据删除流程
文件数据流分块
数据块哈希指纹
指纹查找
存在,存储重复数据块的属性信息,删除重复的数据块
不存在,存储数据及属性到磁盘
数据存储
重复数据删除的粒度
文件级
这种方法去重的效果不如其他粒度级别,但是技术比较简单,而且速度快
数据块级
定长分块
变长分块
比特级
这是唯一一种能够保证充分去除冗余的方法,但是对性能的影响却非常大
粒度越小,重复数据删除所带来的元数据越多
各种粒度之间的差别包括:运算时间、准确度、重复数据的检测水平、索引的大小、可扩展性
重复数据删除范围
全局与局部
局部的重复数据删除机制仅仅关注一个存储节点上的冗余数据,不关心多个存储节点之间存在的冗余数据
全局的重复数据删除机制则关注多个存储节点之间的冗余数据
重复数据删除时间
在线与离线
在线机制是指在数据到达存储设备之前对相同的数据进行删除,存储设备上仅存储唯一的不重复的数据
离线的实现机制是事先采用一个磁盘缓冲区,先将所有到达的数据缓暂存到一个磁盘缓冲区中,等所有的数据全部写完之后,在系统空闲的时刻,将磁盘缓冲区的数据重新读取出来再查找和删除其重复的数据
重复数据删除位置
源端和目的端
源端实现的重复数据删除机制是指在数据开始传送之前,在源端将重复的数据进行删除,即重复的数据不需要进行传输和存储
重复数据删除所带来的实现开销全部集中在目标端,源端不需要做任何的有关于重复数据删除的操作
变长分块算法
基于内容的分块算法
Rabin 指纹分块算法
两种典型的哈希摘要算法
SHA-1
hash值长度:160位
MD-5
hash值长度:128位
MD表示消息摘要Message Digest
分组处理长度都是512
SHA-1最大消息长度2^64,MD-5无限制
发生散列冲突,即两个文件的hash值一样
概率小于彗星撞地球
指纹索引表
8TB数据
20GB指纹库
800TB
2TB指纹库
重复数据删除难题
可扩展性
PB级别数据会产生TB级的元数据
吞吐率
磁盘瓶颈
研究状态
分块算法,仍然继续
哈希摘要,已经成熟
指纹查找,依旧挑战
数据读取,潜在问题
挑战
索引磁盘瓶颈问题
800TB数据,1TB的指纹
恢复性能
能耗问题
可靠性
数据块关联多个文件
可靠性副本与重删
0 条评论
回复 删除
下一页