部門(mén)表 vs.員工表.png
案例一:求部門(mén)的最高薪資(涉及函數(shù):max)
SELECT
deptno, MAX(sal)
FROM
emp
GROUP BY
deptno;
聚合查詢(xún):走的MR程序
案例二:查詢(xún)顯示員工姓名王滤,員工編號(hào)扒秸,部門(mén)名稱(chēng)
SELECT
e.ename,
e.empno,
d.dname
FROM
emp e JOIN dept d ON e.deptno = d.deptno
案例三:按照部門(mén)進(jìn)行薪資排位按照部門(mén)進(jìn)行薪資的排位
SELECT
empno,
ename,
sal,
deptno,
ROW_NUMBER() OVER(PARTITION BY deptno ORDER BY sal DESC) rank
FROM
emp;
案例三
案例四:按照部門(mén)進(jìn)行薪資排位叽赊,只顯示前兩名
SELECT
temp.empno,
temp.ename,
temp.sal,
temp.deptno
FROM(
SELECT
empno,
ename,
sal,
deptno,
ROW_NUMBER() OVER(PARTITION BY deptno ORDER BY sal DESC) rank
FROM
emp) temp
WHERE
temp.rank <= 2
將案例三的輸出當(dāng)作一個(gè)臨時(shí)表蚌讼,()括起來(lái)芯义,命名為temp
案例四
案例五:統(tǒng)計(jì)某個(gè)網(wǎng)站某天的所有PV(Page-View)數(shù)據(jù)
url信息的結(jié)構(gòu)
標(biāo)準(zhǔn)輸出格式:
2015-08-28 35000
將數(shù)據(jù)過(guò)濾出來(lái)趁舀,成為一張新的表,在新表上進(jìn)行操作蛇捌,那就需要子查詢(xún)抚恒。
SELECT
temp.date,
COUNT(temp.url) pv
FROM(
SELECT
SUBSTRING(trackTime, 0, 10) date,url
FROM
db_web_data.track_log
WHERE
LENGTH(url) > 0) temp
GROUP BY
temp.date;
案例五
案例六:統(tǒng)計(jì)某個(gè)網(wǎng)站某天的所有UV(按照用戶(hù)的訪(fǎng)問(wèn)量去統(tǒng)計(jì))數(shù)據(jù)
標(biāo)準(zhǔn)數(shù)據(jù)輸出格式:2015-08-28 35000 12000
一個(gè)用戶(hù)在同一天內(nèi)訪(fǎng)問(wèn)一個(gè)頁(yè)面無(wú)數(shù)次都算一次。
SELECT
temp.date,
COUNT(temp.url) pv,
COUNT(DISTINCT temp.guid) uv ## 根據(jù)guid去重络拌,統(tǒng)計(jì)去重之后的個(gè)數(shù)
FROM(
SELECT
SUBSTRING(trackTime, 0, 10) date,
url,
guid
FROM
db_web_data.track_log
WHERE
length(url) > 0) temp
GROUP BY
temp.date;
案例六
hql:任務(wù) -> MR程序
通過(guò)explaim hql語(yǔ)句
,Hive查看Mapreduce轉(zhuǎn)換結(jié)構(gòu)
explain
常見(jiàn)函數(shù)
avg sum min max cast case
練習(xí)
- 統(tǒng)計(jì)所有部門(mén)的薪資綜合(不包含提成)并顯示回溺。
- 統(tǒng)計(jì)部門(mén)薪資春贸,如果該部門(mén)所需薪資大于3000混萝,則砍掉該部門(mén)。
- 統(tǒng)計(jì)每個(gè)職業(yè)的平均薪資萍恕,顯示出“職業(yè)”逸嘀,“平均薪資”
HiveServer2
- 配置:hive-site.xml
hive.server2.thrift.port --> 10000
hive.server2.thrift.bind.host --> hadoop-senior01.darrenzhang.com
hive.server2.long.polling.timeout -- > 5000(去掉L)
- 檢查端口:
$ sudo netstat -antp | grep 10000
- 啟動(dòng)服務(wù):
$ bin/hive --service hiveserver2
- 連接服務(wù):
$ bin/beeline
beeline> !connect jdbc:hive2://hadoop-senior01.darrenzhang.com:10000
HiveServer2操作
修改配置文件,使其能夠執(zhí)行MR程序
<property>
<name>hive.server2.enable.doAs</name>
<value>false</value> ## 改成false
</property>
修改配置文件允粤,使其能夠執(zhí)行MR程序
提供了一個(gè)中間件的服務(wù)崭倘,方便與其他節(jié)點(diǎn)控制該客戶(hù)端。