だいぶ前のHiveの機能準拠で作ってたクラスタを大幅に作り直したので、ついでにETL処理をdynamic partition inserts一発でやればMapReduce 1ジョブで済んで超効率的に! やった! と思ったらいくつかハマったのでメモ。 なおdynamic partition insertsについては説明が面倒なので公式Wikiの該当ページを読むとよい、が、簡単に言うとHiveでパーティションにINSERTするときにINSERT先のパーティション指定をSELECTクエリの出力により行う、というもの。 なお断りがない限りは HDP2.1 with Hive 0.13 の環境で試したものとする。(移行元はCDH4) クエリの書き方 単純に言うと、パーティションとして指定したいカラムは SELECT 句の最後に置かなければならない。 簡単に言うと year=INT/month=INT