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

Всем привет. Помогите, пожалуйста, с теорией: 1. При одинаковых запросах и наборах

полей в чём принципиальная разница между схемой MV TO с таблицей и отдельной MV с аналогичным движком?
2. Если на одну и ту же таблицу навесить несколько MV с одинаковым запросом, то данные в них должны быть одинаковые или есть какие-то нюансы?
3. Влияет ли как-то ключ сортировки\первичный ключ на скорость схлопывания данных в CollapsingMergeTree?

8 ответов

7 просмотров

тут все что нужно знать про MV https://youtu.be/1LVJ_WcLgF8?t=7595 2. да, одинаковые 3. практически нет.

1) схема с отдельной таблицей удобнее чем с .inner, потому что более понятная и проще отдельно эту внешную таблицу ALTER делать 2) если запросы действительно одинаковые в MV, но могут отличаться целевые движки таблиц и данные по времени вставляются РАЗДЕЛЬНО и РАЗДЕЛЬНО идут background merge в общем thread pool так что после вставки могу быть разные результаты select 3) да влияет, но мало, чем длинее ключ (больше полей и больше кардинальность) тем медленней скорость (больше сравнений)

Alexey-Sokolov Автор вопроса
Denny [Altinity]
тут все что нужно знать про MV https://youtu.be/1L...

Доклад отличный! MV стал понимать намного лучше. На слайде про каскадирование MV было сказано, что MV1 при вставке преобразованных данных в своё хранилище триггерит MV2. А есть ли возможность триггерить MV на событие схлопывания данных движком? Например, мне надо сначала убрать дубли (чтобы отработал CollapsingMergeTree), а потом обращаться к нескольким столбцам схлопнутых данных по ключу, отличному от ключа схлопывания. Есть ли какие-то лайфхаки на этот счёт?

Alexey Sokolov
Доклад отличный! MV стал понимать намного лучше. ...

>триггерить MV на событие схлопывания данных движком? нет. MV вообще не физически не может прочитать из таблицы, то что в таблице что-то там схлопнулось, значения не имеет, MV не может это прочитать. Посмотрите LiveView. >Есть ли какие-то лайфхаки на этот счёт? Все в доке. Данные всегда не схлопнуты, более того в какой-то момент парты достигнут макс. размера и схлопываться больше не будут. Т.е. все запросы select надо написать чтобы select домерживал, доагрегировал. Возможно вам подойдет модификатор FINAL, просто делать select from таблица FINAL

Alexey-Sokolov Автор вопроса
Denny [Altinity]
тут все что нужно знать про MV https://youtu.be/1L...

Денис, а я правильно понимаю, что прилетающие в MV куски данных ещё никак не отсортированы, а потому запрос можно особо не оптимизировать с учётом ключа сортировки?

Alexey Sokolov
Денис, а я правильно понимаю, что прилетающие в MV...

да, не отсортированы, порядок записей в блоке ровно как было в инсерте. парт сортируется в слпд. стадии, при записи на диск.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта