zoukankan      html  css  js  c++  java
  • 海量数据处理

    海量数据处理,思路有hash、bitmap、merge、堆、Top K(BFPRT算法)、trie树、布隆过滤器。

    hash:对很多数据进行hash,然后取余一个正整数n,可以分成n份不同的数据组,每份数据组中数据通过hash算法得到相同的下标,所以相同的数据一定会分在同一数据组中。

    bitmap:为操作,如果为每个数据分配n个bit,那么每个数据可最多有2^n种情况,在很多数据的情况下,bitmap总长可设为很大并间隔n位分给一格数据。

    merge:一个很大数据量数据排序,分成不同数据组,每组内进行排序,不同组之间进行merge排序。

    堆排序:数据量大,而只需要知道最大或最小的几个,可以用堆排序。

    Top K:https://blog.csdn.net/laojiu_/article/details/54986553 速度很快(类似快排选一个基准,不过这个基准选取方式为:n个数据5个一组,每个排序得到组内中位数,各组之间中位数排序得到组间中位数,该中位数为基准,大于该值一边,小于的另一边,则最终左边和右边都至少有3/10的数据量,递归下去最后得到想要的位置)。

    trie数(字典树):用于去重字符串。字典树每个树枝(两个节点之间连线)一个字符,从根节点到叶子节点构成了不同的路径,每个路径唯一地表示了一个字符串。

    布隆过滤器:使用了bitmap和hash,一个数据散列出n个特征点,一个很长的bitmap存储这些特征点,用此bitmap上的特征点去验证其它数据是否相同。布隆过滤器存在误差,因为hash可能会冲突,而且布隆过滤器有时会在一个bitmap上加上多个数据的特征点,会增加失误的可能性。

  • 相关阅读:
    Redis源代码分析(十三)--- redis-benchmark性能測试
    kvm中运行kvm
    umount.nfs device busy day virsh extend diskSpace, attachDisk
    ultravnc
    openNebula dubug
    maintenance ShellScripts
    virsh VMI deploy data serial xml
    cloud computing platform,virtual authentication encryption
    基于C 的libvirt 接口调用
    storage theory
  • 原文地址:https://www.cnblogs.com/cjj-ggboy/p/12405422.html
Copyright © 2011-2022 走看看