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

Вот этот раздел тоже слабо в голове укладывается :(( Вроде слова

понятные, а по смыслу непонятно. Поясните пожалуйста на пальцах, что имеется ввиду:

For Replacing / Collapsing

You need to keep all ‘mutable’ columns outside of ORDER BY, and have some unique id (a base to collapse duplicates) inside. Typically the right-most column is some row identifier. And it’s often not needed in sparse index (so PRIMARY KEY can be a prefix of ORDER BY) The rest consideration are the same.

Examples:

ORDER BY (tenantid, site_id, eventid) -- utm_source is mutable, while tenantid, site_id is not PRIMARY KEY (tenantid, site_id) -- eventid is not used for filtering, needed only for collapsing duplicates

Ещё, подскажите пожалуйста,

Replacing - это когда мы заменяем секцию со старыми данными на секцию с актуальными?

А collapsing?

16 ответов

26 просмотров

Collapsing Схлопывает по sign все строки с одинаковым order by значениями полей

А replacing заменяет На любую строку И на последнюю если versioning

Tatiana Egorova-Egorova Автор вопроса
Slach [altinity]
Collapsing Схлопывает по sign все строки с одинак...

что значит схлопывает по SIGN? Когда это происходит, при селекте? Простите, совсем непонятно :((( возможно, чего-то базового не знаю.

Tatiana Egorova-Egorova Автор вопроса
Slach [altinity]
А replacing заменяет На любую строку И на последн...

Я думала replacing - это когда мы принудительно партицию стираем, а вместо нее другую из источника заливаем. Но, судя по ответу, это что-то другое. Поясните пожалуйста.

Tatiana Egorova Egorova
Я думала replacing - это когда мы принудительно па...

Я пояснил Перечитайте ещё раз Парты и партиции это разные вещи Почитайте про system.parts и system.partitions Парты иммутабельны Создаются при вставке Потом объединяются с другими более старыми партами в фоне Путём сортировкой слиянием Порождая новые парты А старые ставя как active=0 И удаляя через 480 секунд Разновидности движков это всего лишь логика которая действует при вставке и слияниях

ORDERBY секция используется мержами идентификации уникальных записей (типа первичный / уникальный), ReplacingMT в мержах остаются только один экземпляр для набора ORDERBY

Tatiana Egorova Egorova
что значит схлопывает по SIGN? Когда это происходи...

это в документации надо читать, тут вам напоют

Tatiana Egorova-Egorova Автор вопроса
Slach [altinity]
Я пояснил Перечитайте ещё раз Парты и партиции э...

Добрый вечер, вы пишите парты и партиции разные вещи, но в документации написано, что парты и есть партиции: https://clickhouse.com/docs/ru/operations/system-tables/parts/ Подскажите, где мне почитать о том, что они разные. Описание таблицы system.partitions также не нагуглила. Посоветуйте пожалуйста.

Tatiana Egorova Egorova
Добрый вечер, вы пишите парты и партиции разные ве...

так указано же, что в этой таблице в колонке name лежит имя парта, в колонке partition — имя партиции, к которой этот part принадлежит. и там разные значения.

Tatiana Egorova Egorova
Добрый вечер, вы пишите парты и партиции разные ве...

парты (куски) физическое представление таблицы (директории на диске) партиции логическое вы создаете таблицу partition by toYYYYMM(D) потом делаете insert ... ( D.... ) values ( 2020-01-01 .... ) insert ... ( D.... ) values ( 2020-01-02 .... ) insert ... ( D.... ) values ( 2021-01-01 .... ) создается 3 парта, в двух партициях (toYYYYMM(D)). парты (куски) сливаются /мержатся в бOльшие куски в рамках партиции т.е. в какой-то момент два первых превратятся в один станет два парта, по одному в партиции

Tatiana Egorova-Egorova Автор вопроса
Denny [Altinity]
парты (куски) физическое представление таблицы (ди...

Denny, я ведь не могу никак повлиять на parts? Они же мержатся в своей логике. И как бы это просто для информации, или нет? Если я, допустим, хочу какой-то кусок заменить. Я могу стереть партицию и внести ее заново.

Tatiana Egorova Egorova
Denny, я ведь не могу никак повлиять на parts? Они...

Можно detach делать партов и нужный кусок убирать

Tatiana Egorova-Egorova Автор вопроса
【D】【J】
Можно detach делать партов и нужный кусок убирать

Как это? Кусок же нужно логически выделить. Чтобы потом его заменить на аналогичный, но новый. А как по part понять, что в нем смержилось и чему он эквивалентен в источнике? По партиции-то понятно.

Tatiana Egorova Egorova
Как это? Кусок же нужно логически выделить. Чтобы...

Парт сам по себе - атомичен и неизменяем. Он мерджится в другие парты. Пока не смерджился - можно удалять детачем. Виртуальная колонка _part вернет информацию о парте

Tatiana Egorova Egorova
Denny, я ведь не могу никак повлиять на parts? Они...

на парты вы не должны хотеть влиять. есть варианты, можно сделать replace партции

Tatiana Egorova Egorova
Добрый вечер, вы пишите парты и партиции разные ве...

извините, но в ссылке которую вы прислали написано "кусок данных", кусок данных это не партиция partition это одно из полей этой таблицы грубо говорят, партиции это префикс в имени парта и еще minmax индекс внутри парта по полям из PARTITION BY чтобы при сканировании партов можно было ОЧЕНЬ БЫСТРО отбрость лишние

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
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
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта