1. 程式人生 > 其它 >HBase - Phoenix的安裝使用教程2(Phoenix Shell的使用)

HBase - Phoenix的安裝使用教程2(Phoenix Shell的使用)

二、Phoenix Shell 的使用

1,進入 Phoenix 命令列

(1)執行如下命令進入phoenix的終端(啟動指令碼sqlline.py引數是Zookeeper節點)

sqlline.py localhost:2181

(2)首次進入phoenix終端會自動建立的phoenix系統表,我們執行如下命令可以檢視當前所有的表:

!table

(3)執行如下命令則可退出phoenix的終端:

!exit

2,新建表

(1)執行下面命令建立一個名為student的表,如果沒有明確定義任何列族,則將一個空鍵值作為預設列族: 注意:在phoenix中,預設情況下,庫名,表名,欄位名等會自動轉換為大寫,若要小寫,使用雙引號,如"student"。

CREATE
TABLE IF NOT EXISTS "student"( id VARCHAR primary key, name VARCHAR, age VARCHAR);

建立後執行!table命令可以看到新建立的表:

在HBase Shell中執行describe "student"命令查看錶資訊,可以發現對映過來的表列簇預設是0:

(2)我們也可以在建立時指定列簇,比如下面我們指定列族為info(如果所引用的列族不存在,則將建立它們):

CREATE TABLE IF NOT EXISTS "student"(
id VARCHAR primary key,
info.name 
VARCHAR, info.age VARCHAR);

在HBase Shell中執行describe "student"命令查看錶資訊,可以發現對映過來的表列簇變成了info:

3,刪除表

執行如下命令可以刪除studnet表:
drop table "student";

4,表資料的增刪改查

(1)使用upsert可以進行資料的插入或者更新: 注意:upsert相當於updata與insert的結合,當表中的主鍵不存在就是插入,存在就是更新。

upsert into "student" values('1001','大劉','20');
upsert into
"student" values('1002','小星','22');

(2)使用select語句可以進行資料的查詢:

select * from "student";

(3)使用delete語句可以刪除資料:
delete from "student" where id='1002';

附:執行 SQL 指令碼、匯入資料

1,執行 SQL 指令碼

(1)在Phoenix安裝包examples目錄下有一些官方樣例,其中STOCK_SYMBOL.sql內容如下:
CREATE TABLE IF NOT EXISTS STOCK_SYMBOL (SYMBOL VARCHAR NOT NULL PRIMARY KEY, COMPANY VARCHAR);
UPSERT INTO STOCK_SYMBOL VALUES ('CRM','SalesForce.com');
SELECT * FROM STOCK_SYMBOL;

(2)我們要執行這個sql檔案,只需要在執行sqlline.py時新增SQL檔案引數即可:

sqlline.py localhost:2181 STOCK_SYMBOL.sql

(3)可以看到sql指令碼自動執行成功:

2,匯入資料

(1)如果需要匯入資料,我們可以使用bin/psql.py載入CSV資料或執行SQL指令碼(其中-t後面是表名):
./bin/psql.py -t STOCK_SYMBOL localhost:2181 ./examples/STOCK_SYMBOL.csv

(2)STOCK_SYMBOL.csv同樣是Phoenix安裝包examples目錄下的官方樣例,其中資料的分隔符是逗號:

(3)如果上面命令執行後報如下錯誤:
java.sql.SQLException: ERROR 726 (43M10): Inconsistent namespace mapping properties. Cannot initiate connection as SYSTEM:CATALOG is found but client does not have phoenix.schema.isNamespaceMappingEnabled enabled

(4)開啟psql.py檢視對應查詢的系統變數是哪個:

(5)然後編輯/etc/profile,在尾部新增這個系統變數(指向HBase的conf目錄):

(6)然後執行如下命令使配置生效:

source /etc/profile

(7)最後再次執行匯入命令,執行成功後檢視STOCK_SYMBOL表可以看到資料已經插入進來了

早年同窗始相知,三載瞬逝情卻萌。年少不知愁滋味,猶讀紅豆生南國。別離方知相思苦,心田紅豆根以生。