海量数据常用十大解决方案

1.布隆过滤器

1.1原理
底层为数组,存在1,不存在0,多个hash算法处理一个值,得到的hash分区设置为1。

1.2特点
优点是空间效率和查询时间都比一般的算法要好的多
缺点是有一定的误识别率和删除困难。
即查找某值不存在则一定不存在,查找某值存在可能不存在

1.3作用
查找小孩走失
大数据下对一个大文件进行查询数据是否存在------>通过过滤分区减少搜索范围

2.Hash散列

相同的key值由于hash值一致分在同一组,但容易造成数据倾斜

区别:
随机算列:不在乎同种数据在一起
范围散列:通过范围进行散列

3.BitMap

用0、1组成的一位或者两位…位信息来标记数据出现的次数,减少了存储空间
1Byte=8bit

4.堆

一种完全二叉树
求topn时,用数组结构会一个新的数与之前所有数进行遍历比较。但是用堆时,减少了内存的操作,提高了效率

求最大值用小根堆
求最小值用最大跟

5.双层通划分

事实上,与其说双层桶划分是一种数据结构,不如说它是一种算法设计思想。面对一堆大量的数据我们无法处理的时候,我们可以将其分成一个个小的单元,然后根据一定的策略来处理这些小单元,从而达到目的。

6.数据库索引

7.倒排索引

8.外排序

9.Trie树

10.分布式解决方案 MR/Spark

你可能感兴趣的:(大数据算法)