操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    HBase

    第二章:HBase的數(shù)據(jù)結(jié)構(gòu)及邏輯存儲結(jié)構(gòu)

    文章目錄

    前言

    本文主要講解HBase存儲數(shù)據(jù)的邏輯結(jié)構(gòu)、HBase的數(shù)據(jù)模型及HBase在底層存儲數(shù)據(jù)的物理存儲結(jié)構(gòu)

    提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

    一、HBase的邏輯結(jié)構(gòu)

    HBase的數(shù)據(jù)模型和數(shù)據(jù)庫很類似,但底層的存儲結(jié)構(gòu)完全不同。

    HBase的數(shù)據(jù)模型分為:store(相當于表)、列、Row Key(行)、(列的集合)、列族

    (1)store

    store就相當于一個表,由多行和多列組成,store中包含,主要用來寫數(shù)據(jù),每個store對應一個列族。

    設(shè)置的主要原因是:存儲在HDFS上的數(shù)據(jù)需要按照row key 排序。而HDFS本身被設(shè)計為順序讀寫,不允許修改。這樣的話,HBase就不能夠高效的寫數(shù)據(jù),因為要寫入到HBase的數(shù)據(jù)不會被排序,這也就意味著要存入HDFS中的數(shù)據(jù)是無序的,這顯然不利于存儲數(shù)據(jù)后的數(shù)據(jù)檢索。

    所以的作用是當寫入數(shù)據(jù)到store時,數(shù)據(jù)先寫到中,只有當數(shù)據(jù)量達到一定閾值,之間的時間足夠?qū)?shù)據(jù)進行排序后再統(tǒng)一寫到HDFS中。

    (2)列

    就是數(shù)據(jù)的一列,建表時,需要先指定列族才能創(chuàng)建列,每個列都由 (列族)和 (列限定符即列名)決定

    (3)列族

    包括多列,設(shè)置列族的目的是防止寬表(即有多列數(shù)據(jù)的表),即當數(shù)據(jù)列數(shù)很多是,設(shè)置列族可以大大提高檢索效率。

    如:要查找一個值,先找到這個值所對應列所在的列族(在HDFS中文件的存儲是按store來分的,即文件的存儲是按列族來分的)就可以精確的找到這個列族所在的文件進行檢索。

    (4)Row Key

    代表一行數(shù)據(jù),一列數(shù)據(jù)的唯一標識。Row Key的排序是逐位排的,即先比較第一位,若比出大小則不用對后面的進行比較,若第一位未比出大小,則要繼續(xù)順位比較下去,直到比較出來為止(注:若這一位為空則比0小)。

    如: (5)

    的作用是防止高表,即防止數(shù)據(jù)行數(shù)過多,可以將數(shù)據(jù)量大的表切分為多個

    二、使用步驟

    1.物理存儲結(jié)構(gòu)圖示:

    即為HBase底層存儲數(shù)據(jù)的結(jié)構(gòu)

    如圖可以清晰地看到在邏輯結(jié)構(gòu)表中的每一個值對應物理存儲結(jié)構(gòu)的一行,每個值都有一些其它屬性,如:

    Row Key代表列的唯一標識文件的邏輯結(jié)構(gòu)分為順序文件,用以標識該數(shù)據(jù)在這一行中;

    代表這個值所在的列族;

    唯一標識這個值所在的列;

    Time Stamp區(qū)分不同版本的數(shù)據(jù),如當你修改這個數(shù)據(jù)后,原來的數(shù)據(jù)并不會直接被刪除,而是因為新修改的數(shù)據(jù)時間戳大于之前數(shù)據(jù)的時間戳,所以在上層顯示的就是新修改的數(shù)據(jù);

    Type用于鑒別數(shù)據(jù)的類型(僅有put和out兩種)當數(shù)據(jù)被刪除時Type值為out,此時并不會顯示時間戳更小的那個值,因為此數(shù)據(jù)仍然存在,并沒有被刪除。

    HBase底層使用這樣的存儲模式,可以大大提高數(shù)據(jù)的讀取效率,并且提升了數(shù)據(jù)的容錯率,因為以前的數(shù)據(jù)都沒有被刪除而是保存起來了,只不過我們看不到。

    三、數(shù)據(jù)模型 (1)Name Space

    命名空間,相當于MySQL的都是存放表的集合。HBase有兩個自帶的命名空間,分別是 hbase 和 ,hbase 中存放的是 HBase 內(nèi)置的表, 表是用戶默認使用的命名空間。hbase命名空間存放的都是一些系統(tǒng)配置的表,所以盡量不要對這個命名空間進行操作。

    (2)

    類似于關(guān)系型數(shù)據(jù)庫的表概念。不同的是,HBase 定義表時只需要聲明列族即可,不需要聲明具體的列。這意味著,往 HBase 寫入數(shù)據(jù)時,字段可以動態(tài)、按需指定即并不是指定了一個列就需要所有row key都要有這個列。因此,和關(guān)系型數(shù)據(jù)庫相比,HBase 能夠輕松應對字段變更的場景。

    (3)Row

    HBase 表中的每行數(shù)據(jù)都由一個 和多個 (列)組成文件的邏輯結(jié)構(gòu)分為順序文件,數(shù)據(jù)是按照 的字典順序存儲的,并且查詢數(shù)據(jù)時只能根據(jù) 進行檢索,所以 的設(shè)計十分重要。

    (4)

    HBase 中的每個列都由 (列族)和 (列限定符)進行限定,例如 info:name,info:age(其中info為列族,name或age為列限定符)。建表時,只需指明列族,而列限定符無需預先定義。

    (5)Time Stamp

    用于標識數(shù)據(jù)的不同版本(),每條數(shù)據(jù)寫入時,如果不指定時間戳,系統(tǒng)會自動為其加上該字段,其值為寫入 HBase 的時間。

    (6)Cell

    由{, : , time Stamp} 唯一確定的單元。cell 中的數(shù)據(jù)是沒有類型的,全部是字節(jié)碼形式存貯

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有