Hive?HQL支持2種查詢語句風格
背景
在平時業(yè)務(wù)運營分析中經(jīng)常會提取數(shù)據(jù),也就是大家俗稱的Sql Boy,表哥表姐,各大公司數(shù)據(jù)中臺現(xiàn)在大部分用的都是基于Hadoop的分布式系統(tǒng)基礎(chǔ)架構(gòu),用的比較多的有Hive數(shù)據(jù)倉庫工具,數(shù)據(jù)分析師在數(shù)據(jù)查詢時用的就是HQL,語法與Mysql有所不同,基本每天都會寫大量的HQL語句,但你有試過哪些風格的寫法呢?哪種風格的查詢語句更容易理解呢?可能不同的人有不同的看法,下面展示具體的風格代碼樣式,看看你喜歡哪種
- Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。用戶可以在不了解分布式底層細節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力進行高速運算和存儲。Hadoop實現(xiàn)了一個分布式文件系統(tǒng)( Distributed File System),其中一個組件是HDFS(Hadoop Distributed File System)
- hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,用來進行數(shù)據(jù)提取、轉(zhuǎn)化、加載,這是一種可以存儲、查詢和分析存儲在Hadoop中的大規(guī)模數(shù)據(jù)的機制。hive數(shù)據(jù)倉庫工具能將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供SQL查詢功能,能將SQL語句轉(zhuǎn)變成MapReduce任務(wù)來執(zhí)行。
風格一
這種風格大家都比較常用,從結(jié)果向源頭倒著推,直接多層嵌套,一層一層往里面寫,業(yè)務(wù)邏輯復雜的話有可能寫很多層,達到幾百行之多,目前很多公司在有數(shù)倉的支持下,基本嵌套的層數(shù)會比較少
select *
from
(
(select *
from a_temp
where xxxx
group by xxxx) as a
left join
(select *
from b_temp
where xxxx) as b
on a.id=b.id
) temp
where xxxx
group by xxxx
order by xxxx
風格二
with a as(select *
from a_temp
where xxxx
group by xxxx),
b as(select *
from b_temp
where xxxx)
select *
from a left join b on a.id=b.id
where xxxx
group by xxxx
order by xxxx這種風格是利用 with 語句,從源頭向結(jié)果正向推,可以把 with 語句理解為建立了一個臨時視圖/表一樣,后面的表引用前面的表,邏輯是正向推進
兩種風格的區(qū)別
- 風格一:用的最多,從結(jié)果向源頭倒著推
- 風格二:容易理解,從源頭向結(jié)果正向推
相關(guān)參考
Python 利用Pandas把數(shù)據(jù)直接導入Mysql
Python 基于ssh連接遠程Mysql數(shù)據(jù)庫
以上就是Hive HQL支持2種查詢語句風格的詳細內(nèi)容,更多關(guān)于Hive HQL查詢語句風格的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
關(guān)于數(shù)據(jù)庫設(shè)計中主鍵問題的思考
數(shù)據(jù)庫主鍵在數(shù)據(jù)庫中占有重要地位。主鍵的選取策略決定了系統(tǒng)是否可靠、易用、高效。本文探討了數(shù)據(jù)庫設(shè)計過程當中常見的主鍵選取策略,并剖析了其做主鍵的優(yōu)缺點,提出了相應的解決問題的方法2013-08-08
在windows系統(tǒng)下如何安裝memcached的講解
今天小編就為大家分享一篇關(guān)于在windows系統(tǒng)下如何安裝memcached的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03
MySQL與Oracle數(shù)據(jù)類型對應關(guān)系(表格形式)
MySQL與Oracle兩種數(shù)據(jù)庫在工作中,都是用的比較多的數(shù)據(jù)庫,由于MySQL與Oracle在數(shù)據(jù)類型上有部分差異,在我們遷移數(shù)據(jù)庫時,會遇上一定的麻煩,下面介紹MySQL與Oracle數(shù)據(jù)庫數(shù)據(jù)類型的對應關(guān)系2017-04-04
sqlserver中drop、truncate和delete語句的用法
這篇文章主要介紹了sqlserver中drop、truncate和delete語句的用法,本文圖文并茂,內(nèi)容清晰,需要的朋友可以參考下2014-09-09

