hive
Вставить заявление
Поиск…
Синтаксис
Стандартный синтаксис:
INSERT OVERWRITE TABLE 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
INSERT OVERWRITE TABLE 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]
[INSERT OVERWRITE TABLE tablename2 [PARTITION ... [ЕСЛИ НЕ СУЩЕСТВУЕТ]] 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;
замечания
вставить переписать
Оператор перезаписи вставки удаляет все существующие файлы в целевой таблице или разделе перед добавлением новых файлов на основе используемого оператора select. Обратите внимание, что при изменении структуры таблицы или в DML, используемой для загрузки таблицы, иногда старые файлы не удаляются. При загрузке в таблицу с использованием динамического разбиения только разделы, определенные оператором select, будут перезаписаны. Любые ранее существовавшие разделы в целевом файле будут оставаться и не будут удалены.
вставлять в
Вставка в оператор добавляет новые данные в целевую таблицу на основе используемого оператора 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'