建設(shè)網(wǎng)站實(shí)訓(xùn)app推廣方法
order by
對(duì)數(shù)據(jù)進(jìn)行全局排序, 只有一個(gè)reducer Task, 效率低
mysql中strict模式下, order by必須要有l(wèi)imit, 不然會(huì)拒絕執(zhí)行. 對(duì)于分區(qū)表, 必須顯示指定分區(qū)字段查詢。
sort by
可以有多個(gè)reduce Task(以distribute by后的字段個(gè)數(shù)為準(zhǔn))
每個(gè)reduce Task內(nèi)部數(shù)據(jù)有序, 但全局無序
distribute by
按照指定的字段對(duì)數(shù)據(jù)進(jìn)行劃分到不同的輸出reduce文件中
distribute by相當(dāng)于MR中的partitioner
distribute by通常和sort by連用: select * from logs distribute by date sort by te;
注意,Hive 要求 DISTRIBUTE BY 語句要寫在 SORT BY 語句之前。
Cluster?by
如果sort by和distribute by中所有的列相同, 可以縮寫為Cluster?by以便同時(shí)指定兩者所使用的列
注意被Cluster?by指定的列只能降序, 一般用于桶表。