Hive——分桶的理解
分割槽針對的是資料的儲存路徑;分桶針對的是資料檔案。
分桶建立
(1)建立分桶表
create table stu_buck(id int, name string)
clustered by(id) into 4 buckets
row format delimited fields terminated by '\t';
(2)設定分桶屬性
開啟分桶機制
set hive.enforce.bucketing=true;
讓reducer的個數與定義分桶表時設定的分桶數相同
set mapreduce.job.reduces=-1;
(3)匯入資料
不要用local 來匯入,因為這是把一個檔案put到hdfs的資料庫目錄下,而我們分桶需要多個檔案,這樣就失去分桶意義
insert into table stu_buck
select id, name from stu;
分桶的作用
對於非常大的資料集,有時使用者需要使用的是一個具有代表性的查詢結果而不是全部結
果。Hive 可以通過對錶進行抽樣來滿足這個需求。
語法
tablesample(bucket x out of y)
x 表示從哪個 bucket 開始抽取
y 表示從x開始間隔y個桶取一個桶出來
注意事項
y 必須是 table 總 bucket 數的倍數或者因子
x 的值必須小於等於 y 的值
比如一共有4個桶 x=1 y=2 我取1、3這兩個桶出來
再比如一共有8個桶 x=2 y=4 我就取2、6這兩個桶出來(y不能取3,因為8/3有餘數)
select * from stu_buck tablesample(bucket 1 out of 1 on id);
表示我拿出所有桶的資料
相關文章
- hive分桶表排序Hive排序
- hive分割槽分桶Hive
- Hive分桶之BUCKET詳解Hive
- hive分割槽和分桶你熟悉嗎?Hive
- hive學習筆記之五:分桶Hive筆記
- hive 分割槽表和分桶表區別Hive
- Hive分桶秘籍:解鎖大資料效能提升的神秘力量Hive大資料
- hive從入門到放棄(四)——分割槽與分桶Hive
- 徹底理解Hive中的鎖Hive
- 好程式設計師大資料學習路線分享hive分割槽和分桶程式設計師大資料Hive
- Hive on Spark和Spark sql on Hive,你能分的清楚麼HiveSparkSQL
- Hive on Spark 和 Spark sql on Hive,你能分的清楚麼HiveSparkSQL
- Hive 表的兩種分類Hive
- 三分鐘搞懂桶排序排序
- VUE全家桶之vuex核心原理解析Vue
- Apache Spark:分割槽和分桶 - NiveditaApacheSpark
- 雙層桶劃分學習筆記筆記
- Hive --------- hive 的優化Hive優化
- 自己對分頁的理解
- stm32智慧垃圾桶,垃圾分類
- 15行Python程式碼,幫你理解令牌桶演算法Python演算法
- 輕鬆理解分庫分表
- Hive學習之Hive的安裝Hive
- Kafka資料每5分鐘同步到HiveKafkaHive
- Hive基礎語法5分鐘速覽Hive
- 漏桶、令牌桶限流的Go語言實現Go
- 洛谷P1600 天天愛跑步(差分 LCA 桶)
- 輕鬆理解JVM的分代模型JVM模型
- Android 事件分發機制的理解Android事件
- 三分鐘帶你解析Hive中的json字串(詳細!)HiveJSON字串
- hive 的使用Hive
- efcore分表分庫原理解析
- 流量管制-令牌桶與漏桶
- 10分鐘詳解Spring全家桶7大知識點Spring
- 深入理解Java的分級引用模型Java模型
- 差分約束的一些理解
- 二分查詢的簡單理解
- [Hive]Hive排序優化Hive排序優化