(4.0)亿万级数据处理的高效解决方案(概括)

(4.0)亿万级数据处理的高效解决方案(概括)_第1张图片

海量数据存储、处理、操作。

海量:无法短时间迅速解决,无法一次性装入内存。

那解决办法呢?

(1)时间:巧妙算法+合适数据结构,如Bloom filter/Hash/bit-map/堆/数据库或倒排索引/trie树

(2)空间:大而化小,分而治之(hash映射)

(3)单机:只考虑CPU,内存,硬盘的数据交互

 集群:适合分布式处理,并行计算(更多考虑节点和节点间的数据交互)。

处理海量数据,不外乎:

1.分而治之/hash映射 + hash统计 + 堆/快速/归并排序

2.双层桶划分

3.Bloom filter/Bitmap;

4.Trie树/数据库/倒排索引;

5.外排序;

6.分布式处理之Hadoop/Mapreduce。

从set/map到hashtable/hashmap/hashset

序列式容器:vector/list/deque/stack/queue/heap

关联式容器:set(集合)和map(映射表),还有hashtable(散列表)

类似关联式数据库,Key-Value

set/map

根据元素的键值自动被排序,不允许相同的键值。

set:键值就是实值,实值就是键值,map:实值(value)和键值(key)

hash_set/hash_map

hash_set同set一样,实质就是键值,键值就是实值,hash_map同map一样

什么样的结构决定其什么样的性质,set/map基于RB-tree之上,有自动排序功能,而hash_set/hash_map都是基于hashtable之上,所以不含有自动排序功能,加个前缀multi_无非就是允许键值重复而已

你可能感兴趣的:((4.0)亿万级数据处理的高效解决方案(概括))