184 похожих чатов

Подскажите пожалуйста можно ли делать партицию по обновляемому полю ```sql CREATE TABLE

table(
id FixedString(512) NOT NULL,
some_data Map(String, String),
create_date DateTime64(3, 'Europe/Moscow')
)
ENGINE = ReplacingMergeTree
PARTITION BY toYYYYMMDD(create_date) ORDER BY (some_data);
```

суть такая:
пришла запись с уже имеющимся идентификатором
легла сверху с новой create_date, но some_data неизменны.

дальше я полагаю что ReplacingMergeTree должен будет схлопнуть 2 строки в одну, автоматом удалив из старой партиции данные.

Другимо словами - перепрыгнет ли запись в новую партицию?

Нужно это затем чтобы ежедневно заливать данные и раз в месяц дропать старые партиции (даные по которым не было изменений)

8 ответов

23 просмотра

Нет, они лягут в разные партиции

Можете тут посмотреть https://gist.github.com/den-crane/0e9e2347546f88a83e0aebc8f4165743

Артем-Разуваев Автор вопроса
Константин
Нет, они лягут в разные партиции

то есть мердж на них не подействует?

Артем Разуваев
то есть мердж на них не подействует?

Мержи идут в одной партиции, то есть если у вас будет лежать старая запись в старой партиции, а у вас придёт новая запись и она попадёт в новую, то они друг о друге знать не будут. И будут вместе показываться

Артем Разуваев
моё уважение )

если вы хотите простыми словами, то воспринимайте партиции не как "ещё один индекс помимо order by", а как отдельные таблицы связанные при выдаче через union all. Это не совсем точная метафора, но если думать так, то все становится на свои места и очевидные ошибки исчезают сами.

Артем-Разуваев Автор вопроса
Константин
Откройте GIST там понятно всё.

Судя по написанному это то что мне и нужно Partition pruning works with (type IN ('tl_segments')) and removes rows with type <> tl_segments and then FINAL finalizes incorrect? rows. То есть новая запись прилетит в другую партицию по дате создания (что корректно) и после FINAL из старой партиции исчезнет ее дубль так как ключ партификации разный а критерих схлопывания(урезания) одинаковый. если не так понял поправь плиз

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта