Hive常用的SQL視圖操作有哪些

小編給大家分享一下Hive常用的SQL視圖操作有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)主要為客戶提供服務(wù)項(xiàng)目涵蓋了網(wǎng)頁(yè)視覺設(shè)計(jì)、VI標(biāo)志設(shè)計(jì)、成都全網(wǎng)營(yíng)銷、網(wǎng)站程序開發(fā)、HTML5響應(yīng)式成都網(wǎng)站建設(shè)、手機(jī)網(wǎng)站制作設(shè)計(jì)、微商城、網(wǎng)站托管及成都網(wǎng)站維護(hù)公司、WEB系統(tǒng)開發(fā)、域名注冊(cè)、國(guó)內(nèi)外服務(wù)器租用、視頻、平面設(shè)計(jì)、SEO優(yōu)化排名。設(shè)計(jì)、前端、后端三個(gè)建站步驟的完善服務(wù)體系。一人跟蹤測(cè)試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為成都加固行業(yè)客戶提供了網(wǎng)站營(yíng)銷推廣服務(wù)。

簡(jiǎn)介

Hive 中的視圖和 RDBMS 中視圖的概念一致,都是一組數(shù)據(jù)的邏輯表示,本質(zhì)上就是一條 SELECT 語(yǔ)句的結(jié)果集。視圖是純粹的邏輯對(duì)象,沒有關(guān)聯(lián)的存儲(chǔ) (Hive 3.0.0 引入的物化視圖除外),當(dāng)查詢引用視圖時(shí),Hive 可以將視圖的定義與查詢結(jié)合起來,例如將查詢中的過濾器推送到視圖中。

視圖

普通視圖:是一個(gè)虛擬表,其本身不存儲(chǔ)數(shù)據(jù),數(shù)據(jù)是由查詢語(yǔ)句定義的。簡(jiǎn)單來說視圖只是的定義了 數(shù)據(jù)結(jié)構(gòu)的元數(shù)據(jù)。
物化視圖:是一個(gè)特殊物理表,視圖本身保存數(shù)據(jù),其數(shù)據(jù)來源是根據(jù)原始表或者是遠(yuǎn)程表查詢而來,并且會(huì)定時(shí)更新數(shù)據(jù)。Hive目前僅3.0及以上版本支持。

hive 視圖特點(diǎn)

在 Hive 中可以使用 CREATE VIEW 創(chuàng)建視圖,如果已存在具有相同名稱的表或視圖,則會(huì)拋出異常,建議使用 IF NOT EXISTS 預(yù)做判斷。在使用視圖時(shí)候需要注意以下事項(xiàng): :

  1. 只有邏輯視圖,沒有物化視圖;

  2. 視圖是只讀的,不能 Load/Insert/Update/Delete 數(shù)據(jù);

  3. hive的視圖僅僅相當(dāng)于一個(gè)sql的快捷方式,為了提升hql語(yǔ)句的可讀性

  4. 視圖在創(chuàng)建時(shí)候,只是保存了一份元數(shù)據(jù),當(dāng)查詢視圖的時(shí)候,才開始執(zhí)行視圖對(duì)應(yīng)的那些子查詢

  5. hive的視圖保存在元數(shù)據(jù)庫(kù)中 
    元數(shù)據(jù)庫(kù)保存的類型為 VIRTUAL_VIEW
    元數(shù)據(jù)庫(kù)保存當(dāng)前視圖代表的sql語(yǔ)句

  6. 創(chuàng)建視圖時(shí),如果 SELECT 語(yǔ)句中包含其他表達(dá)式,例如 x + y,則列名稱將以_C0,_C1 等形式生成

  7. 創(chuàng)建視圖時(shí),如果未提供列名,則將從 SELECT 語(yǔ)句中自動(dòng)派生列名

  8. 刪除基表并不會(huì)刪除視圖,需要手動(dòng)刪除視圖

  9. 在創(chuàng)建視圖時(shí)候視圖就已經(jīng)固定,對(duì)基表的后續(xù)更改(如添加列)將不會(huì)反映在視圖

  10. 視圖可能包含 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 行。

創(chuàng)建視圖

 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)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁(yè)題目:Hive常用的SQL視圖操作有哪些
文章起源:http://bm7419.com/article30/jjcjso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、虛擬主機(jī)、網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、域名注冊(cè)網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)