Вставьте перезаписать на огромный улей внешний стол для архива - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть огромная внешняя таблица улья, в которой хранятся данные ежедневных транзакций. У меня есть работа выходного дня, которая в основном находит дубликаты на основе ключа, перемещает их в архивную таблицу и сохраняет уникальные строки (на основе ключа) в фактической таблице Hive.

Пример:

Create temporary table my_temp_tbl as select row_number() over(partition by k1,k2,k3) rn ,* from my_tran_tbl;

Insert into my_tran_tbl_archive partition (p1,p2,p3) 
select f1,f2,f3,... from my_tran_tbl where rn !=1;

Insert overwrite table  my_tran_tbl partition (p1,p2,p3)  
select f1,f2,f3,... from my_tran_tbl where rn =1;

Проблема, которую я вижу здесь при таком подходе, заключается даже в том, что нет дубликатов или очень мало дубликатов. Я всегда перезаписываю весь набор данных в таблице. Есть ли лучший способ сделать это? Текущий подход также не подходит для огромных таблиц кустов с «ошибкой времени выполнения куста при закрытии операторов», вызванной

исключение connecttimeout: 60000 миллисекунд ожидания при ожидании готовности канала к соединению

Любая помощь будет высоко ценится

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...