ハイブ動的パーティション、パーティションデータを挿入するいくつかの方法

まず、ハイブパーティションを挿入する方法を列挙します
。1:ファイルから
ハイブロードデータの指定されたパーティションにデータをインポートします。ローカルインパス 'filepath'をテーブルtableNamepartition(partitionColumn = '');
2:最初にパーティションを作成し、次にファイルを他のパーティションに渡します。対応するhdfsパスに、対応する形式(列区切り文字は「\ t」、「\ 001」など)でデータを配置します。
パーティションを手動で作成する
altertable tableName add partition(partitionColume = '');
削除パーティション
alter table tableName drop partition(partitionColume = '');
3:プロジェクトで一般的な方法であるパー​​ティションを動的に修復します。
多くの場合、mr、spark、またはflinkは、処理後に対応するパーティションディレクトリにデータを配置しますが、パーティションテーブルのパーティションメタデータはメタストア(通常はmysql)に格納されるため、このようなデータパーティションテーブルは認識されません。方法2を使用して、パーティションを1つずつ追加できますが、パーティションが多すぎる場合は面倒
ので、次のコマンドを直接使用できます。msckrepair table tableName
4:動的パーティション認識挿入、より一般的に使用される
最初に動的パーティション関連パラメーターを
設定するsethive.exec.dynamic。パーティション= true;

set hive.exec.dynamic.partition.mode = nonstrict;

set hive.exec.max.dynamic.partitions.pernode = 10000;

多くの場合、あるテーブルからデータを照会し、それを別のテーブルに挿入して、特定のフィールドに従って動的にパーティション化します。

insert overwrite table tb_test partition(partitionColumn)

select col_a,

col_b,

.....

col_last,

col_date  --这个字段不是实际插入到表中的哦,只是用来标识根据此字段的值来插入到不同的分区中

from tb_test0

この方法の効果は次のとおりです。
挿入前挿入
挿入前
後:
ここに写真の説明を挿入
ここに写真の説明を挿入
完全な挿入、最後の方法は非常に一般的ですが、パラメーターを設定することを忘れないでください

おすすめ

転載: blog.csdn.net/qq_39719415/article/details/103184188