動的パーティション日にデータを挿入|ハイブ日付で、その日パーティションテーブルを確立

次のようにハイブ、パーティションの基礎として今日の日付(「2014年8月15日」)にHQLをパーティションテーブルを確立します。

EXTERNAL TABLE IFではないproduct_sell EXISTS CREATE(
、BIGINTをCATEGORY_ID
、BIGINTをprovince_id
BIGINTはPRODUCT_ID、
価格DOUBLE、
sell_numのBIGINT

PARTITIONED BY(DS文字列)が
行形式DELIMITED
FIELDSは、TERMINATED BY '\ t'の
LINES TERMINATED BY '\ n'の
AS TEXTFILEに格納。

次のようにパーティショニングとして日付、データの挿入は、シェルスクリプト:

#!/ binに/、bashの
ソースは/ etc / profile。

昨日= $(日付は-d '-1日を' '+%Y-%m-%d'では)
lastweek = $(日付は-d '-1週間を' '+%Y-%m-%d'では)

/ usr / local /クラウド/ハイブ/ binに/ EOF <<ハイブ 
INSERT TABLEは、上書きにPARTITION(DS = '$昨日の')product_sell SELECT a.category_id、b.good_receiver_province_idはASをprovince_id、ASはb.sell_amount(、PRODUCT_IDをa.id / b.sell_num)製品から価格、b.sell_numとして so_item SIからの参加(選択si.product_id、s.good_receiver_province_id、合計(si.order_item_amount)sell_amount、合計(si.order_item_num)sell_numが参加しそう(si.order_idによ= s.id)ここsi.is_gift = 0と si.is_hidden = 0と'$ lastweek'および(a.id = bのs.good_receiver_province_id、si.product_id)Bによって「$昨日群間si.ds。 PRODUCT_ID);
EOF難易度のこの部分は、ハイブがそれをマークし、パーティションの作成日のシェル変数の日のような形の道を呼び出す方法を知っていないということです!

公開された276元の記事 ウォンの賞賛109 ビュー240 000 +

おすすめ

転載: blog.csdn.net/lvtula/article/details/104776588