HBase - Phoenix的安裝使用教程2(Phoenix Shell的使用)
阿新 • • 發佈:2021-12-08
二、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"。CREATETABLE 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.nameVARCHAR, 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表可以看到資料已經插入進來了
早年同窗始相知,三載瞬逝情卻萌。年少不知愁滋味,猶讀紅豆生南國。別離方知相思苦,心田紅豆根以生。