hbase 是乙個nosql資料庫,用於處理海量資料,可以支援10億行百萬列的大表,下面就了解一下資料是如何存放在hbase表中的
為了更好的理解hbase表的思路,先回顧一下關聯式資料庫中表的處理方式
例如有乙個使用者表user_info,有欄位:id、name、tel,表名和字段需要在建表時指定
create table user_info ( id 型別, name 型別, tel 型別)
然後插入兩條資料
insert into user_info values(...)
表結構
後來字段不夠用了,新使用者需要記錄位址,就要新增乙個字段
以後再增加需求時,就繼續新增字段,或者新增乙個擴充套件表
上面的內容主要說明的是:
下面看一下hbase的處理方式
建表時要指定的是:表名、列族
建表語句
create 'user_info', 'base_info', 'ext_info'
意思是新建乙個表,名稱是user_info,包含兩個列族base_info和ext_info
列族是列的集合,乙個列族中包含多個列這時的表結構:
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這個列族這時的表結構:
再插入一條資料:name為『b』,addr為『beijing』
put 'user_info', 'row2', 'base_info:name', 'b'put 'user_info', 'row2', 'ext_info:addr', 'bj'
這時的表結構:
hbase表中還有乙個重要概念:版本,每個欄位的值都有版本資訊(通過時間戳指定)
例如 base_info:name,每次修改時都會保留之前的值,就是說可以取到他的舊值
從上面建表、插入資料的過程可以看出 hbase 儲存資料的特點了
hbase 複製表資料
copytable是hbase提供的乙個資料同步工具,可以用於同步表的部分或全部資料 使用步驟 1.建立目標表。表的列族和原表列族保持一致。如果不一致可以修改 先增加新的 alter 表名 後刪除舊的 alter 表名 delete cf 2.進入到hbase的bin目錄下執行命令 hbase or...
hbase 複製表結構 Hbase容災與備份
一 前言 本文主要介紹 hbase 常用的三種簡單的容災備份方案,即copytable export import snapshot。分別介紹如下 copytable可以將現有表的資料複製到新錶中,具有以下特點 usage copytable general options starttime x ...
oracle 複製表與複製表結構
一 複製表的語法 create table 表名稱 as 子查詢 例子 複製oracel安裝後的預設資料庫scott中的表emp create table myemp as select from emp 此例是表示表結構和表內容一起複製過來了。二 複製表結構 create table 表名稱 as...