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

Насколько я понял, optimize создает задачу на слияние, и

если уже есть активный мерж, то задача не ставится.

В сети нашел инфу, что кому-то помогало попытаться сделать OPTIMIZE в момент пока нет задач, я пытался это поймать и выполнил с десяток или больше запросов на OPTIMIZE. Но вот на скрине есть мерж который выполняется уже 1000сек и он выполнился только на 0.05%
Получается эти задачи все равно ставились?

21 ответов

7 просмотров

вставку остановить есть возможность? пока вы вставляете - КХ будет запускать новые мержи

Сергей-Худояров Автор вопроса

может можно для этого шарда вес=0 сделать? это сработает?

OPTIMIZE - это не столько директивный приказ, сколько пожелание Кликхаусу. Типа - давай, посмотри, не пора ли тебе что-нибудь по-мерджить. А он попробует сделать (или нет), исходя из текущей нагрузки, состояния разделов в таблице и фазы Луны.. Отношения не как у водителя и машины, а скорее как у адмирала флота на флагманском корабле (которым непосредственно командует всё же капитан):) Если хотите бОльшей степени детерминированности, пробуйте OPTIMIZE FINAL. Для больших таблиц лучше ограничивать команду определённым PARTITION. А ещё лучше OPTIMIZE FINAL и настройкой SETTINGS optimize_throw_if_noop=1

Сергей-Худояров Автор вопроса
Konstantin Rebrikov
OPTIMIZE - это не столько директивный приказ, скол...

Спасибо за объяснение. Можно ли приостановить запись в кх с помощью weight=0 для шарда? нужно ли перезапускать кх,

Сергей Худояров
может можно для этого шарда вес=0 сделать? это сра...

так а кто пишет в КХ? у вас вставка через distributed таблицу с ключом rand?

Сергей-Худояров Автор вопроса
Konstantin Ilchenko
так а кто пишет в КХ? у вас вставка через distribu...

нет, у меня зукипер (и старый кх 22.2.2.1) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/buyouts_new_local', '{replica}') PARTITION BY toYYYYMMDD(buyout_date_time)

Хмм, ваще может так статься что мерж застрял, у него есть прогресс?

Сергей-Худояров Автор вопроса

да, но медленный.

Сергей-Худояров Автор вопроса
Dmitry [Altinity] Titov
Хмм, ваще может так статься что мерж застрял, у не...

мне оч нужно выполнить DEDUPLICATE для таблицы, потому что произошла небольшая авария и данные задублировались. Вставку я остановить не могу, это хайлоад прод, но могу попробовать через весы выставить 0 для этого шарда. Это поможет? дедуплицировать нужно партицию на всем кластере, поэтому если так получится, то повторю еще на другой ноде

Сергей Худояров
16М строк

А сколько строк в проблемной партиции?

Сергей Худояров
да, но медленный.

Тяжелый мерж вообще относится к данной партиции или нет?

Dmitry [Altinity] Titov
Тяжелый мерж вообще относится к данной партиции ил...

неужто предложите ему перетащить партишн в другую табличку и там дедуплицнуть?

Сергей Худояров
screenshot 43гб, 3 шарда.

SELECT count() FROM tbl WHERE _partition_id = ''

Сергей Худояров
нет, у меня зукипер (и старый кх 22.2.2.1) ENGINE ...

а зукипер тут причём? в какую таблицу идёт вставка? как распределяете данные между шардами?

Сергей-Худояров Автор вопроса
Konstantin Ilchenko
а зукипер тут причём? в какую таблицу идёт вставка...

<yandex> <zookeeper> <node index="1"> <host>rtb-ch01-techru</host> <port>2181</port> </node> <node index="2"> <host>rtb-ch03-techru</host> <port>2181</port> </node> <node index="3"> <host>rtb-ch05-techru</host> <port>2181</port> </node> </zookeeper> <remote_servers> <rtb_cluster> <shard> <weight>1</weight> <internal_replication>True</internal_replication> <replica> <host>rtb-ch01-techru</host> <port>9000</port> <user>rtbch01_user</user> <password>***</password> </replica> </shard> <shard> <weight>1</weight> <internal_replication>True</internal_replication> <replica> <host>rtb-ch05-techru</host> <port>9000</port> <user>rtbch05_user</user> <password>***</password> </replica> </shard> <shard> <weight>1</weight> <internal_replication>True</internal_replication> <replica> <host>rtb-ch03-techru</host> <port>9000</port> <user>rtbch03_user</user> <password>***</password> </replica> </shard> </rtb_cluster> </remote_servers>

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Карта сайта