日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hbase 高级特性Bloom filter

發布時間:2024/1/17 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hbase 高级特性Bloom filter 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Bloom filter 簡單而言就是對hash 表的創新,用在 Hbase 中可以有有效減少磁盤IO次數。?

圖片來源:hbase 權威指南?

**使用場景總結:

  • 當用戶定期更新所有行時不適合使用Bloom filter,當用戶定期更新部分行時,適合使用Bloom filter
  • 當數據單元格較小時不合適使用Bloom filter (因為此時將會有太多的Bloom filter)
  • 使用行級Bloom filter 還是 行加列級Bloom Filter 取決于使用模式,當操作是整行操作時,采用Bloom Filter 操作較合適
  • **

    下面是一個java 的簡單實現

    package basic; /* * @author: wjf * @version: 2016年4月15日 下午10:05:28 */import java.util.BitSet;public class BloomFilter {private static int DEFAULT_SIZE=1<<24;private int[] seeds={3,5,7,11,13,17,31,41};private static BitSet bits=new BitSet(DEFAULT_SIZE);private SimpleHash[] hashs=new SimpleHash[seeds.length];public boolean addValue(String value){if(value==null){return false;}else{for(int i=0;i<seeds.length;i++){hashs[i]=new SimpleHash(DEFAULT_SIZE,seeds[i]);bits.set(hashs[i].hash(value),true);}return true;}}public boolean contains(String value){if(value==null){return false;}else{boolean ret=true;for(SimpleHash h:hashs){ret=ret && bits.get(h.hash(value));if(ret == false){return false;}}return true;}}public static void main(String[] args) {// TODO Auto-generated method stubBloomFilter bfilter=new BloomFilter();bfilter.addValue("just for test");System.out.println(bfilter.contains("just for test"));}} class SimpleHash{private int cap;private int seed;public SimpleHash(int cap,int seed){this.cap=cap;this.seed=seed;}public int hash(String value){int result=0;for(int i=0;i<value.length();i++){result=result*seed+value.charAt(i);}return (cap-1)&result;} }

    總結

    以上是生活随笔為你收集整理的Hbase 高级特性Bloom filter的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。