<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          面試知識(shí)點(diǎn) | Kafka的數(shù)據(jù)存儲(chǔ)與索引設(shè)計(jì)

          共 1012字,需瀏覽 3分鐘

           ·

          2020-08-26 23:02

          點(diǎn)擊上方藍(lán)色字體,選擇“設(shè)為星標(biāo)

          回復(fù)”資源“獲取更多資源

          大數(shù)據(jù)技術(shù)與架構(gòu)
          點(diǎn)擊右側(cè)關(guān)注,大數(shù)據(jù)開發(fā)領(lǐng)域最強(qiáng)公眾號(hào)!

          暴走大數(shù)據(jù)
          點(diǎn)擊右側(cè)關(guān)注,暴走大數(shù)據(jù)!


          本文會(huì)介紹Kafka的底層數(shù)據(jù)存儲(chǔ)形式、Kafka的高效索引設(shè)計(jì)及實(shí)際查詢的過(guò)程。

          1、segment

          Kafka把Partition分成若干個(gè)segment,segment是Kafka的最小存儲(chǔ)單元。在broker往分區(qū)里面寫入數(shù)據(jù)時(shí),如果達(dá)到segment上限,就關(guān)閉當(dāng)前segment并打開一個(gè)新segment。沒有關(guān)閉的segment叫做活躍片段,活躍片段永遠(yuǎn)不會(huì)被刪除。(默認(rèn)segment上限是1GB大小或者存活一周,所以如果配置了topic數(shù)據(jù)保存1天,但是5天了segment都沒有1GB,則數(shù)據(jù)會(huì)存儲(chǔ)5天。)
          這樣子設(shè)計(jì)相當(dāng)于把整個(gè)partition這個(gè)『大文件』拆成了細(xì)碎小文件,避免了在一個(gè)大文件里面查找內(nèi)容;而且要數(shù)據(jù)過(guò)期要?jiǎng)h除的話可以直接刪除整個(gè)文件,比刪文件里面的內(nèi)容更簡(jiǎn)單。


          2、存儲(chǔ)與查詢

          segment的真正存儲(chǔ)會(huì)分成2份文件,一種是.index的索引文件,一種是.log的數(shù)據(jù)存儲(chǔ)文件,成對(duì)出現(xiàn)。index保存offset的索引,log保存真正的數(shù)據(jù)內(nèi)容。index文件的文件名是本文件的起始o(jì)ffset


          如上圖,假設(shè)要查詢offset=368775的數(shù)據(jù),則命中了0000000000000368769這個(gè)index,查看到368775在這個(gè)index文件中位于第三位(368775 = 368769 + 6,剛好命中這個(gè)索引),對(duì)應(yīng)到log文件的物理偏移量是1407。如果沒有命中這個(gè)索引,則通過(guò)上個(gè)索引的文件偏移量再順序查詢。


          3、索引設(shè)計(jì)

          Kafka建立的這種索引也就是稀疏索引,即建立較少offset的索引用來(lái)較少內(nèi)存使用。但是由于offset的索引建立得不完全,則查詢命中可能消耗更多時(shí)間。


          版權(quán)聲明:

          本文為大數(shù)據(jù)技術(shù)與架構(gòu)整理,原作者獨(dú)家授權(quán)。未經(jīng)原作者允許轉(zhuǎn)載追究侵權(quán)責(zé)任。
          編輯|冷眼丶
          微信公眾號(hào)|import_bigdata


          歡迎點(diǎn)贊+收藏+轉(zhuǎn)發(fā)朋友圈素質(zhì)三連


          文章不錯(cuò)?點(diǎn)個(gè)【在看】吧!??

          瀏覽 69
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  台湾午夜成人免费影院在线看 | 国产停停777 | 成人偷拍自拍视频 | 青青草草草在线视频资源站 | 欧美性爱黄色 |