У меня есть таблица A в Vertica с 50 столбцами и в таблице Impala B с 20 столбцами. Таблица A, имеющая дату миллионов миллионных записей, и хочет обновить эти записи от impala один раз в день в течение определенного дня. Поскольку я использую java, я обновляю 1000 партию через коллекцию за 1 миллионную запись, но занимает больше времени, иногда день. Я также попытался создать новую копию таблицы A для определенного дня и обновить ее, а затем снова вставить все записи в A. Но никакого эффекта производительности.Обновление огромной записи в vertica от impala
Что может быть лучшим подходом к тому же, чтобы я мог выполнять одну и ту же задачу за меньшее время?
Привет, Спасибо за ответ. Я пробовал другой способ, как select * from impala и создать таблицу в vertica temp с теми же столбцами выше select * и вставить все значения в temp. Затем обновите vertica B, сравнивая temp с соединением на аналогичных ключах и условием одиночного запроса даты. Просто проверяем производительность сейчас. –
Теперь он работает нормально ... UPDATE A ts SET column1 = t.column1 FROM temp t WHERE ts.column2 = t.column2 И ts.column3 = t.column3 и date (ts. column4) = '2017-02-08'; –
Это было бы даже быстрее с оптимизированным MERGE. Прочтите документацию. ... – marcothesane