tft每日頭條

 > 生活

 > hbase裡面有幾種表

hbase裡面有幾種表

生活 更新时间:2024-09-01 08:13:02

hbase裡面有幾種表(HBase的表結構)1

HBase 是一個NoSQL數據庫,用于處理海量數據,可以支持10億行百萬列的大表,下面就了解一下數據是如何存放在HBase表中的

關系型數據庫的表結構

為了更好的理解HBase表的思路,先回顧一下關系數據庫中表的處理方式

例如有一個用戶表user_info,有字段:id、name、tel,表名字段需要在建表時指定

create table user_info ( id 類型, name 類型, tel 類型 )

然後插入兩條數據

insert into user_info values(...)

表結構

hbase裡面有幾種表(HBase的表結構)2

後來字段不夠用了,新用戶需要記錄地址,就要新增一個字段

hbase裡面有幾種表(HBase的表結構)3

以後再增加需求時,就繼續新增字段,或者添加一個擴展表

上面的内容主要說明的是:

  • 建表的方式,需提前指定表名和字段
  • 插入記錄的方式,指定表名和各字段的值
  • 數據表是二維結構,行和列
  • 添加字段不靈活

下面看一下HBase的處理方式

HBase的表結構

建表時要指定的是:表名、列族

建表語句

create 'user_info', 'base_info', 'ext_info'

意思是新建一個表,名稱是user_info,包含兩個列族base_info和ext_info

列族 是列的集合,一個列族中包含多個列

這時的表結構:

hbase裡面有幾種表(HBase的表結構)4

row key 是行鍵,每一行的ID,這個字段是自動創建的,建表時不需要指定

插入一條用戶數據:name為‘a’,tel為‘123’

插入語句

put 'user_info', 'row1', 'base_info:name', 'a' put 'user_info', 'row1', 'base_info:tel', '123'

意思是向user_info表中行健為row1的base_info列族中添加一項數據 name:a,接着又添加一項數據tel:123

name和tel就是具體字段,屬于base_info這個列族

這時的表結構:

hbase裡面有幾種表(HBase的表結構)5

再插入一條數據:name為‘b’,addr為‘beijing’

put 'user_info', 'row2', 'base_info:name', 'b' put 'user_info', 'row2', 'ext_info:addr', 'bj'

這時的表結構:

hbase裡面有幾種表(HBase的表結構)6

HBase表中還有一個重要概念:版本,每個字段的值都有版本信息(通過時間戳指定)

例如 base_info:name,每次修改時都會保留之前的值,就是說可以取到他的舊值

hbase裡面有幾種表(HBase的表結構)7

小結

從上面建表、插入數據的過程可以看出 HBase 存儲數據的特點了

  • 和關系數據庫一樣,也是使用行和列的結構
  • 建表時,定義的是表名和列族(字段的集合),而不是具體字段
  • 列族中可以包含任意個字段,字段名不需要預定義,每一行中同一列族中的字段也可以不一緻
  • 多維結構,關系數據庫的表是二維的,通過指行、列定位一個數據,HBase中需要通過 行健、列族名、字段名、版本号才能定位到具體數據
  • 插入數據時,一次插入一個字段的數據,不是像關系數據庫那樣一次插入多個字段

hbase裡面有幾種表(HBase的表結構)8

更多優質内容及精彩資訊,可點擊【了解更多】迅速進入!,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved