Size: a a a

ClickHouse не тормозит

2020 September 18

D

Dj in ClickHouse не тормозит
Kid
Добрый вечер еще раз.
левая таблица большая(700кк), справа два справочника(45к, 300 строк).
к первому по двум столбцам any left join (по дате и  ид), ко второму по ид. Проблема в производительности.
Нужно это для того, чтобы если из первого справочника совпадений не найдено, то во втором точно будут. Это все для coalesce в select.
DJ пытался мне помочь(select tableft join (select t1 join t2 on t1.id=t2.id)), но, к сожалению, это не помогает, потому что соединение левой и правой части должно быть по 2 полям(чтобы совместить дату и ид.)
Мб есть какие-то еще варианты?
Примерный вид запроса такой:
select t.val, coalesce(t1.val1, t2.val2) from t
any left join t1 on t.date=t1.date and t.id=t1.id
any left join t2 on t.id=t2.id
только сейчас понял что вам надо )
так можете попробовать ещё
select t.val, tboth.val  from t
LEFT ASOF JOIN
(
 select t1.date, t1.val from t1
 UNION ALL
 select toDate(1) as date, t2.val from t2
) tboth
on t.id=t1.id and t.date<=t1.date;
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Denis Efarov
аналогия неуместна. Документация декларирует, что есть функционал по удалению строк. С чего вдруг он неуместен для бизнес процессов?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Denis Efarov
и пожалуйста, давайте отвечать без нелепых аналогий, это неконструктивно. Я ссылаюсь на публичную документацию, а вы на отвертки в ушах
документацию я написал, могу прям щаз исправить
источник

DE

Denis Efarov in ClickHouse не тормозит
приведенные тикеты нерелевантны.  там людям просто объясняют про существование дедупликации. Наш кейс совсем про другое. Delete был указан не потому, что мы возмущаемся невозможности вставки после delete. Кейс совсем иной. Он состоит в том, если вставляемые данные логически составляют одну часть, но физически состоят из нескольких блоков при вставке в CH, возможна подобная ситуация
источник

DE

Denis Efarov in ClickHouse не тормозит
из-за неудаления последнего блока в статистике
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Denis Efarov
приведенные тикеты нерелевантны.  там людям просто объясняют про существование дедупликации. Наш кейс совсем про другое. Delete был указан не потому, что мы возмущаемся невозможности вставки после delete. Кейс совсем иной. Он состоит в том, если вставляемые данные логически составляют одну часть, но физически состоят из нескольких блоков при вставке в CH, возможна подобная ситуация
я не об этом вообще.

зачем упоминать про delete? Чтобы всех запутать ?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Delete это моветон
источник

DE

Denis Efarov in ClickHouse не тормозит
Delete это важная часть кейса. Мы делаем вставку нескольких блоков, логически составляющих целое, которое должно быть записано целиком. Если при первой попытки такой записи хотя бы один блок не записывается, можно попасть в вечный dedup
источник

D

Dj in ClickHouse не тормозит
Denis Efarov
приведенные тикеты нерелевантны.  там людям просто объясняют про существование дедупликации. Наш кейс совсем про другое. Delete был указан не потому, что мы возмущаемся невозможности вставки после delete. Кейс совсем иной. Он состоит в том, если вставляемые данные логически составляют одну часть, но физически состоят из нескольких блоков при вставке в CH, возможна подобная ситуация
считайте, что вы помогли разрабам копать в более нужном направлении.
сломано все и без делета же
источник

DE

Denis Efarov in ClickHouse не тормозит
если delete - "моветон" - уберите его пожалуйста из документации. Чтобы он не был частью декларируемого функционала
источник

D

Dj in ClickHouse не тормозит
так в доке написано же
Префикс ALTER TABLE делает этот синтаксис отличным от большинства других систем, поддерживающих SQL. Он предназначен для обозначения того, что в отличие от аналогичных запросов в базах данных OLTP это тяжелая операция, не предназначенная для частого использования.
источник

DE

Denis Efarov in ClickHouse не тормозит
мы делаем delete 1 раз в сутки - нечасто
источник

DE

Denis Efarov in ClickHouse не тормозит
на 1 / 1000 долю таблицы
источник

D

Dj in ClickHouse не тормозит
Denis Efarov
на 1 / 1000 долю таблицы
это неважно, перезапишется она вся (или партиция)
источник

DE

Denis Efarov in ClickHouse не тормозит
"тяжелая операция" - хорошо, нам и не нужен перформанс.
источник

DE

Denis Efarov in ClickHouse не тормозит
и к делиту нет вопроса. Но без делита этот кейс решается другим образом. А с делитом - возможен вечный dedup
источник

DE

Denis Efarov in ClickHouse не тормозит
я хотел подчеркнуть именно это
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Denis Efarov
Delete это важная часть кейса. Мы делаем вставку нескольких блоков, логически составляющих целое, которое должно быть записано целиком. Если при первой попытки такой записи хотя бы один блок не записывается, можно попасть в вечный dedup
facepalm.jpg
источник

DE

Denis Efarov in ClickHouse не тормозит
что фейспалм? Любые данные разбиваются на блоки, потому что есть физический предел размера блока
источник

DE

Denis Efarov in ClickHouse не тормозит
1М строк по-умолчанию вроде
источник