您好,登錄后才能下訂單哦!
小編給大家分享一下Hive常用的SQL視圖操作有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Hive 中的視圖和 RDBMS 中視圖的概念一致,都是一組數(shù)據(jù)的邏輯表示,本質(zhì)上就是一條 SELECT 語(yǔ)句的結(jié)果集。視圖是純粹的邏輯對(duì)象,沒(méi)有關(guān)聯(lián)的存儲(chǔ) (Hive 3.0.0 引入的物化視圖除外),當(dāng)查詢引用視圖時(shí),Hive 可以將視圖的定義與查詢結(jié)合起來(lái),例如將查詢中的過(guò)濾器推送到視圖中。
普通視圖:是一個(gè)虛擬表,其本身不存儲(chǔ)數(shù)據(jù),數(shù)據(jù)是由查詢語(yǔ)句定義的。簡(jiǎn)單來(lái)說(shuō)視圖只是的定義了 數(shù)據(jù)結(jié)構(gòu)的元數(shù)據(jù)。
物化視圖:是一個(gè)特殊物理表,視圖本身保存數(shù)據(jù),其數(shù)據(jù)來(lái)源是根據(jù)原始表或者是遠(yuǎn)程表查詢而來(lái),并且會(huì)定時(shí)更新數(shù)據(jù)。Hive目前僅3.0及以上版本支持。
在 Hive 中可以使用 CREATE VIEW
創(chuàng)建視圖,如果已存在具有相同名稱的表或視圖,則會(huì)拋出異常,建議使用 IF NOT EXISTS
預(yù)做判斷。在使用視圖時(shí)候需要注意以下事項(xiàng): :
只有邏輯視圖,沒(méi)有物化視圖;
視圖是只讀的,不能 Load/Insert/Update/Delete 數(shù)據(jù);
hive的視圖僅僅相當(dāng)于一個(gè)sql的快捷方式,為了提升hql語(yǔ)句的可讀性
視圖在創(chuàng)建時(shí)候,只是保存了一份元數(shù)據(jù),當(dāng)查詢視圖的時(shí)候,才開(kāi)始執(zhí)行視圖對(duì)應(yīng)的那些子查詢
hive的視圖保存在元數(shù)據(jù)庫(kù)中
元數(shù)據(jù)庫(kù)保存的類型為 VIRTUAL_VIEW
元數(shù)據(jù)庫(kù)保存當(dāng)前視圖代表的sql語(yǔ)句
創(chuàng)建視圖時(shí),如果 SELECT 語(yǔ)句中包含其他表達(dá)式,例如 x + y,則列名稱將以_C0,_C1 等形式生成
創(chuàng)建視圖時(shí),如果未提供列名,則將從 SELECT 語(yǔ)句中自動(dòng)派生列名
刪除基表并不會(huì)刪除視圖,需要手動(dòng)刪除視圖
在創(chuàng)建視圖時(shí)候視圖就已經(jīng)固定,對(duì)基表的后續(xù)更改(如添加列)將不會(huì)反映在視圖
視圖可能包含 ORDER BY 和 LIMIT 子句。如果引用視圖的查詢語(yǔ)句也包含這類子句,其執(zhí)行優(yōu)先級(jí)低于視圖對(duì)應(yīng)字句。例如,視圖 custom_view 指定 LIMIT 5,查詢語(yǔ)句為 select * from custom_view LIMIT 10,此時(shí)結(jié)果最多返回 5 行。
create view view_name as select * from carss; create view carss_view as select * from carss limit 500;
show tables; // 可以查看表,也可以查看視圖 desc view_name // 查看某個(gè)具體視圖的信息 desc carss_view
drop view view_name drop view if exists carss_view
刪除視圖時(shí),如果被刪除的視圖被其他視圖所引用,這時(shí)候程序不會(huì)發(fā)出警告,但是引用該視圖其他視圖已經(jīng)失效,需要進(jìn)行重建或者刪除。
create view sogou_view as select * from sogou_table where rank > 3 ; select count(distinct uid) from sogou_view;
ALTER VIEW [db_name.]view_name AS select_statement;
被更改的視圖必須存在,且視圖不能具有分區(qū),如果視圖具有分區(qū),則修改失敗。
以上是“Hive常用的SQL視圖操作有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。