primary key”? У меня таблица с движком ReplacingMergeTree, при этом очень редко хочется делать апдейт записи. Для этого мы добавили поле “время создания записи”, которое не является частью праймариКлюча. Соответственно добавляем запись с тем же ключом, но поздним “временем создания” и получаем по сути “апдейт”. Но запрос на даннные может прилететь в момент когда ключи ещё не схлопнулись.
И вот я думаю как бы написать запрос, который сделал бы мне “group by primary key” and “select last by {row_created_time}” after. Но так чтобы без group by(потому что наверно не быстро это будет). И делать ли эту логику на уровне запроса или на уровне приложеничя уже?
Добрый вечер, вы уверены, что останется запись с максимальным "временем создания записи", а не рандомная? Я тестил и натыкался, что удаляется какая-то запись. select pk1, pk2, argmax(date, value) from table
хммм, зуб не дам, но был в этом уверен)
Либо select argMax Либо select ... Order by pk, time desc limit 1 by pk Либо select from final
Если очень редко хочется делать апдейт, мб стоит посмотреть на [Versioned]CollapsingMergeTree?
что такое from final?
Это схлопывание на лету
Обсуждают сегодня