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

Подскажите пожалуйста CTE валит сервер в докере. Есть ли какие-нибудь

настройки чтобы данные промежуточные в своп попадали и CTE не падала вместе с сервером? Пусть выполняется долго, но гарантированно.

24 ответов

16 просмотров

а без CTE не падает тот же запрос?

Anton-Kobelev Автор вопроса
Konstantin Ilchenko
а без CTE не падает тот же запрос?

Если разбить на временные таблицы - то не упадет

Anton Kobelev
Если разбить на временные таблицы - то не упадет

если выполнить тот же запрос без CTE, просто вложенным

Anton-Kobelev Автор вопроса
Anton Kobelev
Не уверен что это реально переписать

любой CTE можно переписать с памятью обычно спасают эти настройки max_memory_usage max_bytes_before_external_group_by max_bytes_before_external_sort max_threads join_algorithm

Anton-Kobelev Автор вопроса
Konstantin Ilchenko
если выполнить тот же запрос без CTE, просто вложе...

Разницы нет, что CTE падает, что переписанный запрос с вложенными запросами. Причем на одном и том же месте.

Anton Kobelev
Разницы нет, что CTE падает, что переписанный запр...

так и в каком месте падает?) group by? join? я выше скинул основные настройки куда смотреть

Konstantin Ilchenko
так и в каком месте падает?) group by? join? я в...

Я скорее пытался найти что-то вроде аналога unique constraint из постгреса для clickhouse, чтобы задать на уровне ddl

ivan
это что-то на oltp-шном )

Хм, отрезвило прям) Вообще да, не по канону, значит буду искать другие варианты, спасибо!

Vaska Kasatka
Хм, отрезвило прям) Вообще да, не по канону, значи...

Тут есть пример констрейнов которые используются в pastila.nl https://clickhouse.com/blog/building-a-paste-service-with-clickhouse

Anton-Kobelev Автор вопроса
Konstantin Ilchenko
так и в каком месте падает?) group by? join? я в...

Падает на UNION причем в результирующем датасете данных не так уже и много, ну там порядка 200.000 записей. Пробовал запускать в другом контейнере со свопом - но это все равно не помогло.

Anton Kobelev
Падает на UNION причем в результирующем датасете д...

UNION параллельно выполняется и может отжирать много памяти https://github.com/ClickHouse/ClickHouse/issues/23245 max_threads уменьшать как вариант ну и если на 200000 записей падает, то сколько у вас оперативы выделено? 2Gb?

Anton-Kobelev Автор вопроса
Konstantin Ilchenko
UNION параллельно выполняется и может отжирать мно...

Выделено 12GB + своп. Запускаю - память заканчивается, начинает свопить и все сам docker-engine больше не отвечает

Anton Kobelev
Выделено 12GB + своп. Запускаю - память заканчивае...

запрос один такой или несколько одновременных? SELECT quantiles(0.5,0.9)(memory_usage), count() FROM system.query_log WHERE memory_usage > 0 AND event_date=today() что показывает?

Anton Kobelev
[600.0,581754220] 51

а вот так? SELECT quantiles(0.5,0.9,0.99)(memory_usage), count() FROM system.query_log WHERE memory_usage > 0 AND event_date=today()

Anton-Kobelev Автор вопроса
Anton Kobelev
[600.0,530692518.4000011,4103380323.5199866] 53

это значит 90% не больше полугигабайта, и максимум 4 гига оперативы на запрос... и запросов мало... запрос покажите целиком и посмотрите его в system.query_log

Anton-Kobelev Автор вопроса
Slach [altinity]
это значит 90% не больше полугигабайта, и максимум...

Это одна большая CTE с кучей окошек, query log не показывает запрос, который падает.

Anton Kobelev
Это одна большая CTE с кучей окошек, query log не ...

Вы не настроили volume чтобы данные сохранялись? Типа после рестарта докера у вас стартует голый КХ? Чему равен max_memory_usage в КХ? как выглядит текст ошибки?

Anton-Kobelev Автор вопроса
Konstantin Ilchenko
Вы не настроили volume чтобы данные сохранялись? Т...

max_mеmory_usage устанавливал в самом запросе 24Gb. В логе вижу такое: 2022.07.27 11:46:47.724925 [ 83 ] {} <Debug> MemoryTracker: Peak memory usage Mutate/Merge: 12.55 MiB. 2022.07.27 11:46:48.000230 [ 129 ] {} <Trace> AsynchronousMetrics: MemoryTracking: was 2.37 GiB, peak 7.64 GiB, will set to 2.38 GiB (RSS), difference: 5.17 MiB 2022.07.27 11:46:49.855754 [ 126 ] {} <Trace> SystemLog (system.metric_log): Flushing system log, 8 entries to flush up to offset 7372 2022.07.27 11:46:49.863704 [ 126 ] {} <Debug> DiskLocal: Reserving 1.00 MiB on disk default, having unreserved 147.34 GiB. 2022.07.27 11:46:49.865680 [ 126 ] {} <Trace> MergedBlockOutputStream: filled checksums 202207_981_981_0 (state Temporary) 2022.07.27 11:46:49.866076 [ 126 ] {} <Trace> system.metric_log (f3d96510-4faf-4323-86a9-c82085a43e6a): Renaming temporary part tmp_insert_202207_981_981_0 to 202207_1325_1325_0. 2022.07.27 11:46:49.867115 [ 126 ] {} <Trace> SystemLog (system.metric_log): Flushed system log up to offset 7372 2022.07.27 11:46:52.405725 [ 77 ] {} <Trace> system.asynchronous_metric_log (b0489df1-206e-4d6b-91e0-5dea018b53b4): Found 2 old parts to remove. 2022.07.27 11:46:52.405757 [ 77 ] {} <Debug> system.asynchronous_metric_log (b0489df1-206e-4d6b-91e0-5dea018b53b4): Removing part from filesystem 202207_1_1350_956 2022.07.27 11:46:52.406269 [ 77 ] {} <Debug> system.asynchronous_metric_log (b0489df1-206e-4d6b-91e0-5dea018b53b4): Removing part from filesystem 202207_1351_1351_0 2022.07.27 11:46:53.395978 [ 54 ] {} <Trace> BaseDaemon: Received signal 15 2022.07.27 11:46:53.396124 [ 54 ] {} <Information> Application: Received termination signal (Terminated) 2022.07.27 11:46:53.396409 [ 1 ] {} <Debug> Application: Received termination signal. 2022.07.27 11:46:53.396540 [ 1 ] {} <Debug> Application: Waiting for current connections to close.

Anton Kobelev
max_mеmory_usage устанавливал в самом запросе 24Gb...

Судя по логу вам сигтерм приходит. У вас, случайно, не ооемкиллер ли срабатывает?

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

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

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
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта