HBase基本的資料操作
概述
對於建表,和RDBMS類似,HBase也有namespace的概念,可以指定表空間建立表,也可以直接建立表,進入default表空間。
對於資料操作,HBase支援四類主要的資料操作,分別是:
Put :增加一行,修改一行;
Delete :刪除一行,刪除指定列族,刪除指定column的多個版本,刪除指定column的制定版本等;
Get :獲取指定行的所有資訊,獲取指定行和指定列族的所有colunm,獲取指定column,獲取指定column的幾個版本, 獲取指定column的指定版本等;
Scan :獲取所有行,獲取指定行鍵範圍的行,獲取從某行開始的幾行,獲取滿足過濾條件的行等。
這四個類都是 org.apache.hadoop.hbase.client的子類,可以到官網API去檢視詳細資訊,本文僅總結常用方法,力爭讓讀者用20%的時間掌握80%的常用功能。
1. 名稱空間Namespace
在關聯式資料庫系統中,名稱空間
namespace指的是一個 表的邏輯分組 ,同一組中的表有類似的用途。名稱空間的概念為 即將到來 的多租戶特性打下基礎:
配額管理( Quota Management (HBASE-8410)):限制一個namespace可以使用的資源,資源包括region和table等;
名稱空間安全管理( Namespace Security Administration (HBASE-9206)):提供了另一個層面的多租戶安全管理;
Region伺服器組(Region server groups (HBASE-6721)):一個名稱空間或一張表,可以被固定到一組 regionservers上,從而保證了資料隔離性。
1.1.名稱空間管理
名稱空間可以被建立、移除、修改。
表和名稱空間的隸屬關係 在在建立表時決定,透過以下格式指定:
<namespace>:<table>
Example:hbase shell中建立名稱空間、建立名稱空間中的表、移除名稱空間、修改名稱空間
#Create a namespace create_namespace 'my_ns'
#create my_table in my_ns namespace create 'my_ns:my_table', 'fam'
#drop namespace drop_namespace 'my_ns'
#alter namespace alter_namespace 'my_ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}
1.2. 預定義的名稱空間
有兩個系統內建的預定義名稱空間:
hbase :系統名稱空間,用於包含hbase的內部表
default : 所有未指定名稱空間的表都自動進入該名稱空間
Example:指定名稱空間和預設名稱空間
#namespace=foo and table qualifier=bar create 'foo:bar', 'fam' #namespace=default and table qualifier=bar create 'bar', 'fam'
2.建立表
Configuration conf = HBaseConfiguration. create ();
HBaseAdmin admin = new HBaseAdmin(conf);
//create namespace named "my_ns"
admin.createNamespace(NamespaceDescriptor. create ( "my_ns" ).build());
//create tableDesc, with namespace name "my_ns" and table name "mytable "
HTableDescriptor tableDesc = new HTableDescriptor(TableName. valueOf ("my_ns:mytable" ));
tableDesc.setDurability(Durability. SYNC_WAL );
//add a column family " mycf "
HColumnDescriptor hcd = new HColumnDescriptor( "mycf" );
tableDesc.addFamily(hcd);
admin.createTable(tableDesc);
admin.close();
對於建表,和RDBMS類似,HBase也有namespace的概念,可以指定表空間建立表,也可以直接建立表,進入default表空間。
對於資料操作,HBase支援四類主要的資料操作,分別是:
Put :增加一行,修改一行;
Delete :刪除一行,刪除指定列族,刪除指定column的多個版本,刪除指定column的制定版本等;
Get :獲取指定行的所有資訊,獲取指定行和指定列族的所有colunm,獲取指定column,獲取指定column的幾個版本, 獲取指定column的指定版本等;
Scan :獲取所有行,獲取指定行鍵範圍的行,獲取從某行開始的幾行,獲取滿足過濾條件的行等。
這四個類都是 org.apache.hadoop.hbase.client的子類,可以到官網API去檢視詳細資訊,本文僅總結常用方法,力爭讓讀者用20%的時間掌握80%的常用功能。
1. 名稱空間Namespace
在關聯式資料庫系統中,名稱空間
namespace指的是一個 表的邏輯分組 ,同一組中的表有類似的用途。名稱空間的概念為 即將到來 的多租戶特性打下基礎:
配額管理( Quota Management (HBASE-8410)):限制一個namespace可以使用的資源,資源包括region和table等;
名稱空間安全管理( Namespace Security Administration (HBASE-9206)):提供了另一個層面的多租戶安全管理;
Region伺服器組(Region server groups (HBASE-6721)):一個名稱空間或一張表,可以被固定到一組 regionservers上,從而保證了資料隔離性。
1.1.名稱空間管理
名稱空間可以被建立、移除、修改。
表和名稱空間的隸屬關係 在在建立表時決定,透過以下格式指定:
<namespace>:<table>
Example:hbase shell中建立名稱空間、建立名稱空間中的表、移除名稱空間、修改名稱空間
#Create a namespace create_namespace 'my_ns'
#create my_table in my_ns namespace create 'my_ns:my_table', 'fam'
#drop namespace drop_namespace 'my_ns'
#alter namespace alter_namespace 'my_ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}
1.2. 預定義的名稱空間
有兩個系統內建的預定義名稱空間:
hbase :系統名稱空間,用於包含hbase的內部表
default : 所有未指定名稱空間的表都自動進入該名稱空間
Example:指定名稱空間和預設名稱空間
#namespace=foo and table qualifier=bar create 'foo:bar', 'fam' #namespace=default and table qualifier=bar create 'bar', 'fam'
2.建立表
Configuration conf = HBaseConfiguration. create ();
HBaseAdmin admin = new HBaseAdmin(conf);
//create namespace named "my_ns"
admin.createNamespace(NamespaceDescriptor. create ( "my_ns" ).build());
//create tableDesc, with namespace name "my_ns" and table name "mytable "
HTableDescriptor tableDesc = new HTableDescriptor(TableName. valueOf ("my_ns:mytable" ));
tableDesc.setDurability(Durability. SYNC_WAL );
//add a column family " mycf "
HColumnDescriptor hcd = new HColumnDescriptor( "mycf" );
tableDesc.addFamily(hcd);
admin.createTable(tableDesc);
admin.close();
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2105531/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【甘道夫】HBase基本資料操作詳解
- HBase 基本操作
- Hbase shell的基本操作
- hbase shell 基本操作命令
- hbase與phoenix整合(使用phoenix操作hbase資料)
- 《HBase 不睡覺》第三章 – HBase 基本操作
- 《HBase 不睡覺》第三章 - HBase 基本操作
- MySQL資料表的基本操作MySql
- Redis資料基本操作Redis
- MySQL資料基本操作MySql
- 資料庫基本操作資料庫
- shell命令列中操作HBase資料庫命令列資料庫
- MongoDB資料庫的基本操作梳理MongoDB資料庫
- MySQL(一) 資料表資料庫的基本操作MySql資料庫
- Laravel 資料庫基本操作Laravel資料庫
- elasticsearch(二)---基本資料操作Elasticsearch
- postgresql 資料庫基本操作SQL資料庫
- SQLAIchemy對資料基本操作SQLAI
- MySQL資料庫基本操作MySql資料庫
- Mongo 資料庫 基本操作Go資料庫
- hbase 的基本結構
- Hive資料庫及表的基本操作Hive資料庫
- Hbase(二)Hbase常用操作
- mysql資料庫基本操作(六)MySql資料庫
- mysql資料庫基本操作(三)MySql資料庫
- mysql資料庫基本操作(四)MySql資料庫
- mysql資料庫基本操作(五)MySql資料庫
- 02、MySQL—資料庫基本操作MySql資料庫
- Redis資料型別基本操作Redis資料型別
- PHP--資料庫基本操作PHP資料庫
- java資料庫操作基本流程Java資料庫
- 資料庫基本操作 術語資料庫
- 【Falsk 使用資料庫】---- 資料庫基本操作資料庫
- HBase篇--HBase操作Api和Java操作Hbase相關ApiAPIJava
- HBase的基本原理
- Redis 基本資料型別(Set) 的操作命令Redis資料型別
- SQL—對資料表內容的基本操作SQL
- 大資料學習(hbase,hive,sqoop2對資料的簡單操作)大資料HiveOOP