if not exists price_competitor_last
(
date DateTime,
item_id UInt64,
competitor_id UUID,
region_id UUID,
source String,
price Decimal(12,3),
date_collect DateTime
)
engine = ReplacingMergeTree(date_collect)
PARTITION BY toYYYYMM(date)
ORDER BY (item_id, competitor_id, region_id, source)
SETTINGS index_granularity = 8192;
По ключу ORDER BY для date_collect есть несколько одинаковых значений которые которые вставлялись одной пачкой.
При выполнении optimize table price_competitor_last
записи с одинаковым date_collect не удаляются.
В целом я понимаю, что так как дата одинаковая и вставлялись они одной пачкой, то предположительно не понятно какую запись из 3х удалить так как они все равноценны.
Но при этом select * from price_competitor_last final корректно отображает только одну запись.
Вопрос: Как сделать чтобы лишние дубли из таблицы все таки удалялись?
а если сделать optimize table final?
Не знал что так можно, да записи удалились
Обсуждают сегодня