サーチ…


構文

  • 標準構文:

  • 上書きテーブルの挿入tablename1 [PARTITION(partcol1 = val1、partcol2 = val2 ...)[IF NOT EXISTS]] select_statement1 FROM from_statement;

  • INSERT INTO TABLE tablename1 [PARTITION(partcol1 = val1、partcol2 = val2 ...)] select_statement1 FROM from_statement;

  • INSERT INTO TABLE tablename1 [PARTITION(partcol1 = val1、partcol2 = val2 ...)](z、y)select_statement1 FROM from_statement;

  • ハイブ拡張(複数の挿入):

  • FROM from_statement
    上書きテーブルの挿入tablename1 [PARTITION(partcol1 = val1、partcol2 = val2 ...)[存在しない場合]] select_statement1
    [INSERT OVERWRITE TABLE tablename2 [PARTITION ... [存在しない場合]] select_statement2]
    [INSERT INTO TABLE tablename2 [PARTITION ...] select_statement2] ...;

  • FROM from_statement
    INSERT INTO TABLE tablename1 [PARTITION(partcol1 = val1、partcol2 = val2 ...)] select_statement1
    [INSERT INTO TABLE tablename2 [PARTITION ...] select_statement2]
    [上書きテーブルを挿入するtablename2 [パーティション... [存在しない場合]] select_statement2] ...;

  • ハイブ拡張(動的パーティション挿入):

  • INSERT OVERWRITE TABLE tablename PARTITION(partcol1 [= val1]、partcol2 [= val2] ...)select_statement FROM from_statement;

  • INSERT INTO TABLE tablename PARTITION(partcol1 [= val1]、partcol2 [= val2] ...)select_statement FROM from_statement;

備考

上書きを挿入する
insert overwrite文は、使用されるselect文に基づいて新しいファイルを追加する前に、ターゲット表またはパーティション内の既存のファイルを削除します。表または表をロードするために使用されるDMLに構造変更があって、古いファイルが削除されないことがあることに注意してください。動的パーティション化を使用してテーブルにロードする場合、selectステートメントで定義されたパーティションだけが上書きされます。ターゲット内の既存のパーティションはそのまま残り、削除されません。

挿入する
insert into文は、使用されるselect文に基づいて新しいデータをターゲット表に追加します。

上書きを挿入する

insert overwrite table yourTargetTable select * from yourSourceTable;

テーブルに挿入

INSERT INTOはテーブルまたはパーティションに追加し、既存のデータをそのまま維持します。

    INSERT INTO table yourTargetTable SELECT * FROM yourSourceTable;

表がパーティション化されている場合、その特定のパーティションに次のように静的に挿入できます。

    INSERT INTO TABLE yourTargetTable PARTITION (state=CA, city=LIVERMORE) 
    select * FROM yourSourceTable;

テーブルが分割されている場合、その特定のパーティションに動的に挿入することができます(下図参照)。動的パーティション挿入を実行するには、以下のプロパティの下に設定する必要があります。

    Dynamic Partition inserts are disabled by default. These are the relevant configuration properties for dynamic partition inserts:
    SET hive.exec.dynamic.partition=true;
    SET hive.exec.dynamic.partition.mode=non-strict

    INSERT INTO TABLE yourTargetTable PARTITION (state=CA, city=LIVERMORE) (date,time)
    select * FROM yourSourceTable;

テーブルからの複数の挿入

ハイブ拡張(複数の挿入):

    FROM table_name

    INSERT OVERWRITE TABLE table_one SELECT table_name.column_one,table_name.column_two

    INSERT OVERWRITE TABLE table_two SELECT table_name.column_two WHERE table_name.column_one == 'something'


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow