海量数据处理是指基于海量数据的存储、处理、和操作。

    正因为数据量太大,所以导致要么无法在较短时间内迅速解决,要么无法一次性装入内存。

    • 对于时间问题,可以采用巧妙的算法搭配合适的数据结构(如布隆过滤器、哈希、位图、堆、 数据库、倒排索引、Trie 树)来解决;
    • 对于空间问题,可以采取分而治之(哈希映射)的方法,也就是说,把规模大的数据转化为规模小的,从而各个击破。

    此外,针对常说的单机及集群问题:

    • 单机就是指处理装载数据的机器有限(只要考虑 CPU、 内存、和硬盘之间的数据交互)
    • 集群的意思是指机器有多台,适合分布式处理或并行计算,更多考虑节点与节点之间的数据交互。

    处理海量数据问题,有 10 种典型方法:

    • 哈希分治

    • simhash 算法

    • 外排序

    • MapReduce

    • 多层划分

    • 位图

    • 布隆过滤器

    • Trie 树

    • 数据库

    • 倒排索引