HBase 數(shù)據(jù)模型中有三種字段類(lèi)型:Row key、Column Family 和 Column Qualifier。
1.Row key:是表中每一行的唯一標(biāo)識(shí),類(lèi)似于傳統(tǒng)數(shù)據(jù)庫(kù)中的主鍵。在 HBase 中,Row key 是按字典序排序的,并且可以自定義 Row key 的格式和編碼方式。
2.Column Family:是表中的一個(gè)邏輯分組,用于將一組相關(guān)的 Column Qualifier 歸為一類(lèi)。在 HBase 中,一個(gè) Column Family 通常包含多個(gè) Column Qualifier,但是一個(gè) Column Qualifier 只能屬于一個(gè) Column Family。
3.Column Qualifier:是表中的一個(gè)具體的數(shù)據(jù)單元,用于存儲(chǔ)具體的數(shù)據(jù)。在 HBase 中,一個(gè) Column Qualifier 通常與一個(gè)時(shí)間戳一起存儲(chǔ),因此可以存儲(chǔ)多個(gè)版本的數(shù)據(jù)。
這三種字段類(lèi)型在 HBase 中具有不同的含義和作用:
Row key 用于唯一標(biāo)識(shí)一行數(shù)據(jù),因此應(yīng)該選擇具有唯一性的數(shù)據(jù)作為 Row key,例如用戶(hù) ID、設(shè)備 ID 等。
Column Family 用于將相關(guān)的數(shù)據(jù)歸為一類(lèi),因此應(yīng)該根據(jù)實(shí)際數(shù)據(jù)的關(guān)系和訪(fǎng)問(wèn)模式來(lái)設(shè)計(jì) Column Family。
Column Qualifier 用于存儲(chǔ)具體的數(shù)據(jù),因此應(yīng)該根據(jù)實(shí)際的數(shù)據(jù)類(lèi)型和訪(fǎng)問(wèn)模式來(lái)設(shè)計(jì) Column Qualifier,例如將相同類(lèi)型的數(shù)據(jù)放在同一個(gè) Column Qualifier 中。
HBase 的數(shù)據(jù)模型是基于稀疏矩陣的,即只存儲(chǔ)非空的單元格,因此可以有效地節(jié)省存儲(chǔ)空間。同時(shí),由于 HBase 支持多版本數(shù)據(jù)的存儲(chǔ),因此可以滿(mǎn)足不同的查詢(xún)需求。