У меня есть таблица с именем zhihu_answer
.Я воспринимаю это как хранилище для хранения данных, извлеченных изо дня в день.Каждый день там будет создаваться таблица zhihu_answer_tmp
, в которой хранятся вновь очищенные данные, которые разделяют ту же структуру данных, что и zhihu_answer
.
. DDL:
createtab_stmt
CREATE TABLE `zhihu_answer`(
`admin_closed_comment` boolean,
`answer_content` string,
`answer_created` string,
`answer_id` string,
`insert_time` string,
`voteup_count` int)
PARTITIONED BY (`year_month` string)
Я взял answer_id
и insert_time
как уникальный ключ, мой вопрос заключается в том, как объединить новые данные в zhihu_answer_tmp
в таблицу исторических данных zhihu_answer
на основе answer_id
и insert_time
?
В частности, если в zhihu_answer
существует строка с таким же answer_id and insert_time
, то ничего не делать, просто игнорировать (для идемпотентности, не допускать побочных эффектов от вставки данных более двух раз).
С другой стороны, если нет строк с таким же answer_id and insert_time
, как у zhihu_answer_tmp
в zhihu_answer
, вставьте строки (новые данные).
Спасибо за любой советили любое решение вопроса.