成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

大數(shù)據(jù)計數(shù)原理1+0=1這你都不會算(八)

企業(yè)動態(tài)
實際使用的時候怎么找到值呢?跟原來插入值一樣,因為Containers是有序的嘛,也有自己的數(shù)據(jù)范圍,所以首先用二分查找找到數(shù)據(jù)對應(yīng)的Container。然后分兩種情況,如果是Container是數(shù)組,就再用一次二分查找。如果Container是BitMap,直接找到對應(yīng)的位是不是1就行了。

插播一條新聞,為什么要插播,嗯不知道可能今天心情比較好,畢竟中秋了嘛~

今天跟小伙伴們聊聊另外一個統(tǒng)計算法, Roaring BitMaps。

這個改怎么翻譯呢??咆哮的位圖?s?我翻譯不出來,但是小蕉頭一歪,就給它起了一個狂拽酷霸叼扎天的翻譯 -> 咆哮吧,位圖君們。

照例甩一波鏈接。

[[207854]]

大數(shù)據(jù)計數(shù)原理1+0=1這你都不會算(一)

大數(shù)據(jù)計數(shù)原理1+0=1這你都不會算(二)

大數(shù)據(jù)計數(shù)原理1+0=1這你都不會算(三)

大數(shù)據(jù)計數(shù)原理1+0=1這你都不會算(四)

大數(shù)據(jù)計數(shù)原理1+0=1這你都不會算(五)

大數(shù)據(jù)計數(shù)原理1+0=1這你都不會算(六)

大數(shù)據(jù)計數(shù)原理1+0=1這你都不會算(七)

來了喔。

根據(jù)官方統(tǒng)計,已經(jīng)有這么多大項目在用Roaring BitMaps了,老牛逼了。

  • Apache Lucene and derivative systems such as Solr and Elasticsearch,
  • Metamarkets’ Druid,
  • Apache Spark,
  • Apache Hive,
  • Apache Tez,
  • Netflix Atlas,
  • LinkedIn Pinot,
  • OpenSearchServer,
  • Cloud Torrent,
  • Whoosh,
  • Pilosa,
  • Microsoft Visual Studio Team Services (VSTS),
  • Jive Miru,
  • eBay’s Apache Kylin.

那么勤勞又聰明的你一定會問了,這是什么東西?用來干啥的?怎么用的?從用途來看,Roaring BitMaps 就是一個用來進行基數(shù)統(tǒng)計的算法。

用途有三只:

***只當然就是基數(shù)統(tǒng)計啦,count之類的,可節(jié)省空間了。

第二只呢,數(shù)據(jù)庫在執(zhí)行Join的時候,要知道Join之前是多少量級,Join完又是什么量級,再執(zhí)行相應(yīng)的優(yōu)化策略。

第三只呢,是作為索引存在,可以作為數(shù)據(jù)庫判斷***索引的***性。

等等。

關(guān)于這個算法呢,也不是什么非常難的東西,原始論文其實講得蠻詳細的了,看看原始論文一般就能看懂了。但小蕉在這里,其實用三句話就可以把這個算法說清楚了。

1、把n長的區(qū)間劃分為2^16個桶(n為Roaring BitMaps 的總長度),每個桶放一個Container,作為一級索引存在。

2、每個int數(shù)值k為32位的bit,我們?nèi)∏?6位找到對應(yīng)的桶(k % 2^16),Container里面只保存后16位 (k mod 2^16) 。若Container為BitMap,直接把第 (k mod 2^16) 位設(shè)置為1即可,若Container為Array,則用二分查找插入法,有序插入。

3、若一個Container里面的Integer數(shù)量小于4096,就用Short類型的有序數(shù)組來存儲值。若大于4096,就用BitMap來存儲值。數(shù)據(jù)用來放稀疏的數(shù)據(jù),BitMap用來放緊密的數(shù)據(jù)(至于為啥,請重新看BitMap的定義及使用范圍)。

實際使用的時候怎么找到值呢?跟原來插入值一樣,因為Containers是有序的嘛,也有自己的數(shù)據(jù)范圍,所以首先用二分查找找到數(shù)據(jù)對應(yīng)的Container。然后分兩種情況,如果是Container是數(shù)組,就再用一次二分查找。如果Container是BitMap,直接找到對應(yīng)的位是不是1就行了。

好啦,算法方面就這樣說完了,但是又有小朋友要問了,那這樣存儲完有什么用呢?只需要定義三種操作,AND,OR,NOT,就可以快速進行兩個集合的操作了。

因為Container有兩種,BitMap和Array ,所以進行合并操作的時候會有三種情況。

1、Array vs Array

2、Array vs BitMap

3、BitMap vs BitMap

分別是怎么處理呢,下面所說的操作指的你所希望的功能是AND、OR、還是NOT?選一種操作進行計算就行了。

Array vs Array ,直接用算法merge成一個數(shù)組,再進行相應(yīng)的操作即可。

Array vs BitMap,遍歷一下Array,把它的值一個一個映射到BitMap上并操作,最終統(tǒng)計一下BitMap即可。

BitMap vs BitMap,直接按位操作即可。

實際實現(xiàn)的時候,不僅僅會有Short類型的Array,拓展開可以是任何基礎(chǔ)數(shù)據(jù)類型的Array,功能越來越豐富了。

關(guān)于論文和Github地址,后臺直接回復(fù) Roaring 可以獲取到。

沉迷學(xué)習(xí),日漸消瘦。大家如果有什么健身、Java入門、大數(shù)據(jù)、機器學(xué)習(xí)入門方面的問題也可以問我,我看到會回的,有什么想看的想聽的也可以告訴我,我會把放入我的需求池的,啊哈哈哈哈哈。

都看到這了,真愛的你,不點個贊嗎?

【本文為51CTO專欄作者“大蕉”的原創(chuàng)稿件,轉(zhuǎn)載請通過作者微信公眾號“一名叫大蕉的程序員”獲取授權(quán)】

 

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2017-09-26 15:51:29

大數(shù)據(jù)計數(shù)原理

2017-10-25 16:03:08

大數(shù)據(jù)計數(shù)原理

2017-09-15 17:49:25

大數(shù)據(jù)計數(shù)原理

2017-10-13 16:32:49

大數(shù)據(jù)計數(shù)原理

2017-09-12 14:58:27

大數(shù)據(jù)計數(shù)原理

2017-09-19 15:09:50

大數(shù)據(jù)計數(shù)原理

2017-09-30 08:05:41

大數(shù)據(jù)計數(shù)原理

2022-03-27 22:07:35

元宇宙虛擬人IBM

2015-03-16 11:33:16

程序員代碼bug

2023-05-16 07:15:11

架構(gòu)模型對象

2019-12-26 09:56:34

Java多線程內(nèi)部鎖

2021-07-07 06:54:37

網(wǎng)頁Selenium瀏覽器

2017-02-08 19:49:03

內(nèi)存SSDDRAM

2021-04-20 09:55:37

Linux 開源操作系統(tǒng)

2020-09-27 06:50:56

Java互聯(lián)網(wǎng)注解

2014-12-11 10:01:09

程序員

2010-10-26 11:05:27

霍金

2016-09-13 22:46:41

大數(shù)據(jù)

2019-07-09 13:19:02

微軟瀏覽器Windows

2019-12-17 15:10:21

Python字符串代碼
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日韩免费一区 | 亚洲精品电影 | 欧美日韩国产一区 | 天堂av中文在线 | 精品国产一区二区三区四区在线 | 国产视频久 | www日本高清视频 | 日韩欧美国产不卡 | 国产精品无码久久久久 | 国产欧美精品区一区二区三区 | 少妇一区二区三区 | 欧美成人精品一区二区男人看 | 国产精品美女久久久久久久久久久 | 久久久久久久一区 | 黑人巨大精品 | 久久午夜视频 | 免费久久久久久 | 九九久久国产精品 | 国产精品成av人在线视午夜片 | 夜夜夜久久| 国产成人精品久久二区二区91 | 国产精品地址 | 日本亚洲一区 | 国产精品久久久久久久粉嫩 | 一区二区日韩 | 欧美日韩视频在线 | .国产精品成人自产拍在线观看6 | 久久国产一区 | 成人午夜免费视频 | 日韩图区 | 亚洲一区| 日韩中文字幕在线观看 | 在线观看亚洲精品视频 | 人人色视频 | 99色综合 | 亚洲高清视频在线 | 久久久91精品国产一区二区精品 | 国产成年人小视频 | 天堂久| 91国内精精品久久久久久婷婷 | 色噜噜亚洲男人的天堂 |