Hive SQL學習筆記

2021-10-07 08:10:46 字數 1684 閱讀 9512

hadoop

學習hive sql之前,要先了解hadoop。hadoop是乙個分布式系統的基礎框架,其核心部分是:分布式檔案系統hdfs(hadoop distributed file system)和mapreduce。hdfs用於儲存海量資料;mapreduce用於計算海量資料,但是學習mapreduce的成本太高,hive sql就是採用類sql語句轉換成mapreduce程式。

hive 表

內部表和外部表

分割槽

將字段符合要求的表劃分在同乙個區,提公升查詢速度。(例如將同一天的日誌放在乙個分割槽,有需求只需要掃瞄某一天的分割槽檔案)

create

table logs (ts bigint

, line string)

partitioned by

(dt string,country string)

;

分桶根據字段雜湊後對桶數取餘放入對應的桶

例如:根據id分桶,共有4個桶。

create

table bucketed_users(id int

, name string)

clustered

by(id)

into

4 buckets;

inner join 和 natural join 的區別inner join 加 on 選擇條件;natural join 返回兩張表相同字段相等的結果,多個欄位要滿足記錄和資料型別都相等;

select e.last_name, e.first_name, d.dept_no from employees e inner

join dept_emp d on e.emp_no = d.emp_no;

limit主要用於分頁查詢;limit 接受乙個或兩個數字引數;第乙個引數指定第乙個返回記錄行的偏移量,第二個引數指定返回記錄行的最大數目。初始記錄行的偏移量是 0(而不是 1)

select

*from

table

limit5,

10;// 檢索記錄行 6-15,從第6行開始,最多10條資料

select

*from

table

limit95,

-1;// 檢索記錄行 96-last.從95行開始到最後

select

*from

table

limit n; 等價於

select

*from

table

limit

0,n;

// 0不應該是-1?返回前n條資料

ddl、dml資料定義語言、資料操縱語言

Hive SQl 學習筆記

排序函式 需要和over 搭配使用 over 內常用引數有 分組中位於當前行後n行 lead 前n行 lag 的記錄值 可以用於相鄰間隔問題 用途 得到分割槽中的第乙個 最後乙個指定引數的值。select s.sname,c.cname,sc.score,first value sc.score o...

hadoop學習筆記之HiveSQL 資料查詢

資料查詢 select all distinct select expr,from table reference where where condition group by col list cluster by col list distribute by col list sort by c...

hive sql優化整理

hive sql優化方法引數一些整理,方便快速查詢使用 1.map數量與reduce數量的控制 輸入檔案大小指實際檔案大小,與檔案格式textfile,orc等無關,壓縮的檔案格式會小很多設定引數要適當調整 map數量控制 set hive.input.format org.apache.hadoo...