1. 程式人生 > 其它 >Phoenix 對HBASE表操作

Phoenix 對HBASE表操作

技術標籤:HBase

https://www.yuque.com/docs/share/c0b81507-2318-48a7-a22c-2278b0e82ab9?# 《01.對HBase表操作》

01.對HBase表操作

hbase中沒有表,希望在phoneix中建表,在phoneix中使用SQL向hbase表中插入資料

顯示所有的表

Phoenix shell查詢:
!tables 或者是 !table
image.png

如果是用第三方客戶端的話,比如說Squirrel工具,是沒有!table功能的,

需要注意,這個可能會出現兩個不同的庫裡面有相同的表名,最後查詢的時候就查詢出一個表名.

select distinct
TABLE_NAME from SYSTEM."CATALOG"

image.png

建立表

建立表的時候如果不定義列族的話,那麼預設就是0號列族

CREATE TABLE IF NOT EXISTS "ns1"."us_population" (
      state CHAR(2) NOT NULL,
      city VARCHAR NOT NULL,
      info.population BIGINT
      CONSTRAINT my_pk PRIMARY KEY (state, city)) column_encoded_bytes=
0;

column_encoded_bytes=0意思是不讓資料編號,這樣Hbase就能看到資料

你在建立表的時候HBase會自動給表名變成全部大寫,如果你不想這樣,你可以給表名用雙引號括起來,這樣表名就不會自動大寫了.
如果你想指定庫名你可以在表名前面追加,比如說 上面建表語句 ns1就是資料庫名.
**
說明:
**
1.char型別必須新增長度限制
2.varchar 可以不用長度限制
3.主鍵對映到 HBase 中會成為 Rowkey. 如果有多個主鍵(聯合主鍵), 會把多個主鍵的值拼成 rowkey
4.在 Phoenix 中, 預設會把表名,欄位名等自動轉換成大寫. 如果要使用小寫, 需要把他們用雙引號括起來.

不加的話,預設就是大寫:
image.png

插入記錄

Phoenix沒有insert和update, 而upsert是Phoenix是insert和update的結合,

插入的時候,如果你表名都是小寫的話,那麼你需要給表名加雙引號,不然表名會自動轉成大寫的

upsert into “us_population”values(‘IL’,‘Chicago’,2842518);
插入之前先看你當前使用的什麼資料庫

你可以在插入的時候指定資料庫
upsert into “ns1”.“us_population”values(‘IL’,‘Chicago’,2842518);

upsert into "ns1"."us_population" values('NY','NewYork',8143197);
upsert into "ns1"."us_population" values('CA','Los Angeles',3844829);
upsert into "ns1"."us_population" values('IL','Chicago',2842518);

select * from  "ns1"."us_population"

查詢指定表

如果你是小寫的話 ,需要用雙引號把表名括起來.

select * from  "ns1"."us_population"
# 根據條件查詢
select * from  "ns1"."us_population" where  state  = 'NY'

刪除指定記錄

如果你是小寫的話 ,需要用雙引號把表名括起來.

刪除 state為 NY的資料
delete from  "ns1"."us_population"  where state='NY';

刪除整個表

如果你是小寫的話 ,需要用雙引號把表名括起來.

drop table "ns1"."us_population"

退出命令

Phoenix shell:

! quit