簡體   English   中英

蜂巢中的動態分區

[英]Dynamic partition in hive

我在蜂巢中創建了一個具有動態分區的表,如下所示

create table sample(uuid String,date String,Name String,EmailID String,Comments String,CompanyName String,country String,url String,keyword String,source String)  PARTITIONED BY (id String) Stored as parquet;

我也在蜂巢殼中設置了以下內容

set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.max.dynamic.partitions=100000000;
set hive.exec.max.dynamic.partitions.pernode=100000000;
set hive.exec.max.created.files = 100000000;

這是一個好習慣,因為我如上所述為每個動態分區配置將值設置為1億?

動態分區是為那些具有新分區值的表設計的。 如果您的表將受到INSERT子句的影響,那么它是正確的,如果沒有動態分區,則必須執行另一個查詢來創建新的查詢,或者您必須先知道這些查詢的值:

FROM page_view_stg pvs
INSERT OVERWRITE TABLE page_view PARTITION(dt='2008-06-08', country='US')
   SELECT pvs.viewTime, pvs.userid, pvs.page_url, pvs.referrer_url, null, null, pvs.ip WHERE pvs.country = 'US'

官方的Hive教程中,您可以查看示例。

分區最佳實踐與存儲的數據類型有關 例如:

  • 建議不要使用像Ids這樣的唯一值。 (如果每行將具有不同的id值,那么這是一種不好的做法)
  • 數據必須具有足夠的分散性,如果分區具有很少的不同值(例如使用布爾字段或類似字段),則這是一種不好的做法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM