溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

hive的指令操作及內(nèi)外臨時表的創(chuàng)建

發(fā)布時間:2020-06-03 16:24:41 來源:網(wǎng)絡(luò) 閱讀:12335 作者:廈小崗 欄目:數(shù)據(jù)庫


2、數(shù)據(jù)庫: OLTP //online transaction process ,在線事務(wù)處理


3、drop databases  if exists  mybase //刪除數(shù)據(jù)庫


4、show tables //顯示表


5、create  database  mybase //mysql 創(chuàng)建庫


6、create table test(id int ,name varchar(20)); //創(chuàng)建列表


7、select id from test        //查看表中的內(nèi)容


8、兩張表合成:select a.*,b.* form tbls a,columms_v2 b where a.tbl_id = b.tbl_id 


9、show databases; //顯示數(shù)據(jù)庫


10、在/soft/hive/bin/下執(zhí)行:hive 后再執(zhí)行:create database if not exists mybase;


11、用自己的庫的話就執(zhí)行:use mybase ;   ------>記得加分號

show tables; ——————》顯示表信息


12、創(chuàng)建表:create table test(id int , name varchar(20));


13、查看表的結(jié)構(gòu):desc test


14、往數(shù)據(jù)庫里面放數(shù)據(jù):insert into test(id,name)values(1,'tom');


15、select * form test      //查看表中所有的內(nèi)容




具體流程是:創(chuàng)建庫:create database mysbase ------>用那個庫use mybase  ------->創(chuàng)建表create table test(id int ,name varchar(20))




-----------------------------------------------------


表的填寫信息及創(chuàng)建語法:

1、create  table if not exists employee(edi int ,nam String,salary String, destination String)


2、comment ‘employee details’



4、 row format delimited  fields terminated by ‘\t’ //這行的格式分隔如何 :(1  tom  12 )


5、lines terminated by ‘\n’ //換行1  tom  12

     2  tod  13


6、stored as textfile;   //存儲為文本文件



dfs -lsr / ; //查看它們的目錄結(jié)構(gòu)


-------------------------------------------------------------------------------------------

desc[ribe] database mybase ; //查看數(shù)據(jù)庫信息

alter database mybase set dbproperties ('created'='xpc'); //修改數(shù)據(jù)庫,增加數(shù)據(jù)庫屬性

desc database extended mybase ; //顯示數(shù)據(jù)庫擴展信息,不能格式化輸出

desc extended default.test0 ; //顯示表擴展信息

desc formatted default.test0 ; //顯示表格式化信息

desc extended test ; //顯示表的擴展信息

create database mybase location '/x/x/x/x' //指定數(shù)據(jù)庫存放hdfs位置

create table default.test0 like mybase.test2 ; //復(fù)制表結(jié)構(gòu)


load data local ... //上傳本地文件到hdfs

load data '/x/x/x' into table xx //移動hdfs文件系統(tǒng)上的數(shù)據(jù)文件。

insert into mybase.test2 select * from default.test0 where id > 1204 ; //復(fù)制表數(shù)據(jù)


create table mybase.test3 as select * from default.test0 ; //復(fù)制表(表結(jié)構(gòu) + 數(shù)據(jù))

select all id,name from test2 ; //查詢所有記錄(不去重)

select distinct id,name from test2 ; //查詢所有記錄(去重)


--------------------------------------------------------

拷貝一張已經(jīng)存在的表模式

create table if ont exists mydb.employees2 like mydb.employees


-------------------------------------------


如何從本地插進文本文件:

load data local inpath '/home/user/sample.txt' overwrite into table tset;

----------------------------------------------------------

外部表的創(chuàng)建步驟:

1、create database mybase ;  //創(chuàng)建庫

2、use  mybase  ;          //用庫

3、create external table etest(id int ,name string,age int) row format delimited fields terminated by '\t' stored as textfile ;//創(chuàng)建外部表


4、查看表的參數(shù): desc formatted etest ; 查看有 多少張表:show tables  看表的結(jié)構(gòu)select * from etest ;


5、創(chuàng)建臨時表create tempporary table temp(id int ,name string,age int) row format delimited fields terminated by '\t' stored as textfile ;


6、CTAS:create table as select 


7、truncate  :刪除所有的行,只能用于內(nèi)部的表


8、修改表分隔符:alter table table_name set serdeproperties (‘field,delimi’= ',')


9、修改表的位置:alter table 表名 set location 'hdfs:/xxx/x/表名'



分區(qū)表

------------

[手動分區(qū)--靜態(tài)分區(qū)]

1.預(yù)先定義分區(qū)列和存儲數(shù)據(jù)到表的子目錄下。

2.創(chuàng)建分區(qū)表

create table xxx(...) partitioned by (year int ,month int) row format ...;


3.給分區(qū)表添加多個分區(qū)(手動分區(qū))

alter table partest add partition (year=2016,month=4) partition (year=2016,month=5);

4.顯示指定表的分區(qū)

show partitions partest ;

5.刪除分區(qū)

ALTER TABLE partest DROP IF EXISTS PARTITION (year=2014, month=11);

6.加載數(shù)據(jù)到指定的分區(qū)目錄下。

LOAD DATA LOCAL INPATH '..sample.txt' OVERWRITE INTO TABLE partest PARTITION (year=2016, month=4);

單是查詢2016年4月份的數(shù)據(jù):select * from  表名 where year=2016 and month = 4 ;


7.啟動動態(tài)分區(qū)(默認(rèn)是開啟的)

SET hive.exec.dynamic.partition=true; //啟動動態(tài)分區(qū).

//默認(rèn)是strict,是嚴(yán)格模式,至少要指定一個分區(qū)類,通過如下指令關(guān)閉嚴(yán)格模式。

SET hive.exec.dynamic.partition.mode=nonstrict; //設(shè)置分區(qū)模式,非嚴(yán)格.

8.測試動態(tài)分區(qū)

insert into table partest partition(year,month) select id,name,age,year,month from test ;



























向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI