Sök…


Syntax

  • Standard syntax:

  • INSERT OVERWRITE TABLE tabellnamn1 [PARTITION (partcol1 = val1, partcol2 = val2 ...) [IF NOT EXISTS]] select_statement1 FROM from_statement;

  • INSERT IN TABLE tabellnamn1 [PARTITION (partcol1 = val1, partcol2 = val2 ...)] select_statement1 FROM from_statement;

  • INSERT IN TABLE tabellnamn1 [PARTITION (partcol1 = val1, partcol2 = val2 ...)] (z, y) select_statement1 FROM from_statement;

  • Hive-förlängning (flera insatser):

  • FRÅN från_statement
    INSERT OVERWRITE TABLE tabellnamn1 [PARTITION (partcol1 = val1, partcol2 = val2 ...) [IF NOT EXISTS]] select_statement1
    [INSERT OVERWRITE TABLE tabellnamn2 [PARTITION ... [IF NOT EXISTS]] select_statement2]
    [INSERT IN TABLE tabellnamn2 [PARTITION ...] select_statement2] ...;

  • FRÅN från_statement
    INSERT IN TABLE tabellnamn1 [PARTITION (partcol1 = val1, partcol2 = val2 ...)] select_statement1
    [INSERT INTO TABLE tabellnamn2 [PARTITION ...] select_statement2]
    [INSERT OVERWRITE TABLE tabellnamn2 [PARTITION ... [IF NOT EXISTS]] select_statement2] ...;

  • Hive-förlängning (dynamiska partitionsinsatser):

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

  • INSERT IN TABLE tabellnamn PARTITION (partcol1 [= val1], partcol2 [= val2] ...) select_statement FROM from_statement;

Anmärkningar

infoga skriv över
En insatsöverskriven uttalande raderar alla befintliga filer i måltabellen eller partitionen innan du lägger till nya filer baserade på det valda uttalandet som används. Observera att när det finns strukturförändringar i en tabell eller DML som används för att ladda tabellen att de gamla filerna ibland inte raderas. När du laddar till en tabell med dynamisk partitionering kommer endast partitioner som definieras av det valda utskriften att skrivas över. Alla tidigare existerande partitioner i målet förblir och kommer inte att raderas.

Sätt in i
En infogning i uttalande lägger till nya data i en måltabell baserat på det valda uttalet som används.

infoga skriv över

insert overwrite table yourTargetTable select * from yourSourceTable;

Sätt i tabellen

INSERT INTO kommer att läggas till tabellen eller partitionen och hålla befintliga data intakta.

    INSERT INTO table yourTargetTable SELECT * FROM yourSourceTable;

Om en tabell är partitionerad kan vi infoga statisk partition i den särskilda partitionen som visas nedan.

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

Om en tabell är partitionerad kan vi infoga den specifika partitionen på dynamiskt sätt som visas nedan. För att genomföra dynamiska partitionsinsatser måste vi ställa ned nedan egenskaperna.

    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;

Flera bilagor från en tabell.

Hive-förlängning (flera insatser):

    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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow