Jul 09, 2019 10:01
Если вам мешает отсутствие delete/update в ClickHouse, подумайте, может вам можно немного изменить подход к данным, и тогда это одновременно решит две головные боли.
Какую еще проблему дают delete и update? В аналитике эти операции - это изменение прошлого. И результат, который вы получили за какой-то период до апдейта уже будет невоспроизводим (хотя многие не понимают, насколько это плохо).
Вместо delete/update можно версионировать изменения - просто добавлять в таблицу еще одну колонку с временем, с которого данные изменились. Например, для страны юзера сохранять в таблицу также время, когда он поменял страну. И если за год 20% массово мигрируют в другую страну, у вас не окажется неконсистентной, глючной аналитики.
И это всего лишь усложнит однократную настройку экспорта из OLTP.
Рецепт, кстати, подходит к большому числу других задач - и к пакетированию софта или конфигураций, и к тренировке ML моделей. Тотальное версионирование и блокчейн.