hive學(xué)習(xí)筆記(二)--基本操作

庫操作

# 標(biāo)準(zhǔn)做法
create database if not exists test;

# 直接創(chuàng)建
create database  test;

# 指定數(shù)據(jù)庫位置
create database if not exists test location '/user/zz/hive/workspace/test' ;   

# 查詢所有庫
show databases;
  
# 模糊查詢庫(查詢test開頭的庫)
show databases like "test*"

# 使用庫(庫的名字是test)
use test;

#描述庫
desc database test
desc database extended test ;

#刪除庫
drop database test;

#展示庫中的表
show tables in test;

表操作

創(chuàng)建內(nèi)部表认轨,默認存儲在/user/hive/warehouse下绅络,也可以通過location指定,刪除表時,會刪除hdfs中的數(shù)據(jù)以及元數(shù)據(jù);
場景外部表恩急,外部表稱之為EXTERNAL_TABLE节视,在創(chuàng)建表時可以自己指定目錄位置(LOCATION),刪除表時假栓,只會刪除元數(shù)據(jù)不會刪除hdfs中的數(shù)據(jù)。

創(chuàng)建表語法:

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name
  [(col_name data_type [COMMENT col_comment], ...)]
  [COMMENT table_comment]
  [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
  [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
  [
   [ROW FORMAT row_format] [STORED AS file_format]
   | STORED BY 'storage.handler.class.name' [ WITH SERDEPROPERTIES (...) ]  
  ]
  [LOCATION hdfs_path]
  [TBLPROPERTIES (property_name=property_value, ...)]  [AS select_statement]  CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name
  LIKE existing_table_name
  [LOCATION hdfs_path]

data_type
  : primitive_type
  | array_type
  | map_type
  | struct_type

primitive_type
  : TINYINT
  | SMALLINT
  | INT
  | BIGINT
  | BOOLEAN
  | FLOAT
  | DOUBLE
  | STRING

array_type
  : ARRAY < data_type >

map_type
  : MAP < primitive_type, data_type >

struct_type
  : STRUCT < col_name : data_type [COMMENT col_comment], ...>

row_format
  : DELIMITED [FIELDS TERMINATED BY char] [COLLECTION ITEMS TERMINATED BY char]
        [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
  | SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)]

file_format:
  : SEQUENCEFILE
  | TEXTFILE
  | RCFILE     (Note:  only available starting with 0.6.0)
  | INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname

1霍掺、CREATE TABLE
創(chuàng)建一個指定名字的表匾荆。如果相同名字的表已經(jīng)存在,則拋出異常杆烁;
用戶可以用 IF NOT EXISTS 選項來忽略這個異常牙丽。
2、EXTERNAL
可以讓用戶創(chuàng)建一個外部表兔魂,在建表的同時指定一個指向?qū)嶋H數(shù)據(jù)的路徑(LOCATION)烤芦。Hive 創(chuàng)建內(nèi)部表時,會將數(shù)據(jù)移動到數(shù)據(jù)倉庫指向的路徑析校;若創(chuàng)建外部表构罗,僅記錄數(shù)據(jù)所在的路徑,不對數(shù)據(jù)的位置做任何改變智玻。在刪除表的時候遂唧,內(nèi)部表的元數(shù)據(jù)和數(shù)據(jù)會被一起刪除,而外部表只刪除元數(shù)據(jù),不刪除數(shù)據(jù).
3、LIKE
允許用戶復(fù)制現(xiàn)有的表結(jié)構(gòu)吊奢,但是不復(fù)制數(shù)據(jù)盖彭。
4、ROW FORMAT DELIMITED
是用來設(shè)置創(chuàng)建的表在加載數(shù)據(jù)的時候页滚,支持的列分隔符召边。
Hive默認的分隔符是\001,屬于不可見字符裹驰,這個字符在vi里是^A
5隧熙、STORED AS
文件數(shù)據(jù)格式。
如果文件數(shù)據(jù)是純文本邦马,可以使用 STORED AS TEXTFILE贱鼻。
如果數(shù)據(jù)需要壓縮,使用 STORED AS SEQUENCEFILE滋将。
6邻悬、CLUSTERED BY
對于每一個表(table)或者分區(qū), Hive可以進一步組織成桶随闽,也就是說桶是更為細粒度的數(shù)據(jù)范圍劃分父丰。Hive也是 針對某一列進行桶的組織。Hive采用對列值哈希,然后除以桶的個數(shù)求余的方式?jīng)Q定該條記錄存放在哪個桶當(dāng)中蛾扇。
7攘烛、LOCATION
指定加載數(shù)據(jù)路徑(指定在hdfs上的位置).針對的extetnal外部表,要指定存儲路徑镀首,不指定也沒事坟漱,默認路徑。內(nèi)部表不用指定更哄,默認路徑/user/hive/warehouse
CREATE TABLE創(chuàng)建一個具有給定名稱的表芋齿。如果已存在具有相同名稱的表或視圖,則會引發(fā)錯誤成翩。您可以使用IF NOT EXISTS跳過錯誤觅捆。
8、PARTITIONED BY
給表做分區(qū)麻敌,決定了表是否是分區(qū)表栅炒。
9.TBLPROPERTIES
指定配置屬性
10.SKEWED BY
指定傾斜字段及值

三種創(chuàng)建表的方式

1.直接創(chuàng)建

create table temp.temp_create_table_test (
col1   string  comment "字段1",
col2   int     comment "字段2"
)
comment "測試"
partitioned by (part_col string comment "分區(qū)字段")
clustered by (col1) sorted by (col1 desc) into 2 buckets 
skewed by (col1) on ((2), (3))
row format delimited fields terminated by "\t"
stored as parquet 
location "/user/hive/warehouse/test.db/create_table_test"
tblproperties("parquet.compression"="snappy");

2.復(fù)制表結(jié)構(gòu)創(chuàng)建

create table test.create_table_like_test like test.create_table_test;

3.通過子查詢創(chuàng)建表

create  table test.create_table_as_test as
select col1, col2 from test.create_table_test where part_col = '2';

展示表的創(chuàng)建語句:

show  create table create_table_test;

展示表結(jié)構(gòu)

desc create_table_test;

查找表數(shù)據(jù)

基本與sql語句一致

#查詢?nèi)?select * from create_table_test;

#根據(jù)分區(qū)查詢
select col1, col2 from create_table_test where part_col = '2';

刪除表

drop table create_table_test;
#刪除表中數(shù)據(jù)保留表結(jié)構(gòu)
truncate table iot_devicelocation;

hive作為數(shù)據(jù)倉庫,與數(shù)據(jù)庫還是有本質(zhì)的區(qū)別术羔,hive不支持單條數(shù)據(jù)的刪除和修改赢赊,按照網(wǎng)上的說法是可以操作,需要進行一些配置聂示,但是配置成功后域携,操作還是有很多問題的,而且這也違背了數(shù)據(jù)倉庫的本來作用鱼喉,所以不建議去增加單條數(shù)據(jù)修改的配置

分區(qū)表下一篇單獨說明秀鞭,這篇沒對分區(qū)表做過多介紹

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市扛禽,隨后出現(xiàn)的幾起案子锋边,更是在濱河造成了極大的恐慌,老刑警劉巖编曼,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豆巨,死亡現(xiàn)場離奇詭異,居然都是意外死亡掐场,警方通過查閱死者的電腦和手機往扔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來熊户,“玉大人萍膛,你說我怎么就攤上這事∪卤ぃ” “怎么了蝗罗?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我串塑,道長沼琉,這世上最難降的妖魔是什么带斑? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任矮男,我火速辦了婚禮,結(jié)果婚禮上酗昼,老公的妹妹穿的比我還像新娘傻昙。我一直安慰自己瑟慈,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布屋匕。 她就那樣靜靜地躺著,像睡著了一般借杰。 火紅的嫁衣襯著肌膚如雪过吻。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天蔗衡,我揣著相機與錄音纤虽,去河邊找鬼。 笑死绞惦,一個胖子當(dāng)著我的面吹牛逼纸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播济蝉,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼杰刽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了王滤?” 一聲冷哼從身側(cè)響起贺嫂,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎雁乡,沒想到半個月后第喳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡踱稍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年曲饱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片珠月。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡扩淀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桥温,到底是詐尸還是另有隱情引矩,我是刑警寧澤,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站旺韭,受9級特大地震影響氛谜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜区端,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一值漫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧织盼,春花似錦杨何、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至唐全,卻和暖如春埃跷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背邮利。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工弥雹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人延届。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓剪勿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親方庭。 傳聞我的和親對象是個殘疾皇子厕吉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容