海量数据处理

本文介绍了海量数据处理的多种技术,包括Bloom filter用于数据判重和集合操作,Hashing作为快速查找的基础结构,bit-map在数据量适中的场景,堆解决海量数据前n大问题,双层桶划分处理第k大、中位数等,数据库索引加速查询,倒排索引用于搜索引擎,外排序用于大数据排序,Trie树处理大量重复数据,以及MapReduce用于分布式处理。
摘要由CSDN通过智能技术生成

参考该blog

1、Bloom filter

适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集

对于原理来说很简单,位数组+k个独立hash函数。将hash函数对应的值的位数组置1,查找时如果发现所有hash函数对应位都是1说明存在,很明显这个过程并不保证查找的结果是100%正确的。同时也不支持删除一个已经插入的关键字,因为该关键字对应的位会牵动到其他的关键字。所以一个简单的改进就是 counting Bloom filter,用一个counter数组代替位数组,就可以支持删除了。

2、Hashing

适用范围:快速查找,删除的基本数据结构,通常需要总数据量可以放入内存

基本原理及要点:
  hash函数选择,针对字符串,整数,排列,具体相应的hash方法。
  碰撞处理,一种是open hashing,也称为拉链法;另一种就是closed hashing,也称开地址法,opened addressing。

3、bit-map

适用范围:可进行数据的快速查找,判重,删除,一般来说数据范围是int的1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值