Обсуждаем ClickHouse
Всем привет. Подскажите пожалуйста, а какая логика у кликхауса при кешировании внешних словарей с lifetime 0? Я создаю словари и они все переходят в статус LOADED, с течением некоторого времени, некоторые уходят в статус NOT LOADED чего я не ожидаю
Читать полностью…Вы просто не сильно их пытали
шансы напороться на проблемы выше там, где вовсю используются широкие таблицы и тяжелые запросы
Если поменять местами то начинает работать.
hasAny(column, [1,2,3]) - юзает индех
hasAny([1,2,3], column) не юзает начиная с 24.8
Memorytracker неправильно считает, там есть рекурсияя и кусочек несколько раз учитывается. В 25.3.3 еще все правильно, в 25.3.4 уже нет, туда забекпортили баг.
Можно пофиксить настройкой которая корректирует трекер https://github.com/ClickHouse/ClickHouse/issues/82627#issuecomment-3063032060
https://github.com/ClickHouse/ClickHouse/issues/82627#issuecomment-3063032060
Есть такой ответ.
Так в более свежих версиях починили? Или только назад?
Читать полностью…Кто поможет после обновления на версию 25.3 запросы стали падать с ошибкой по памяти.
SQL Error [22000]: Code: 241. DB::Exception: (total) memory limit exceeded: would use 112.89 GiB (attempt to allocate chunk of 4.00 MiB bytes), current RSS: 23.67 GiB, maximum: 112.84 GiB. OvercommitTracker decision: Query was selected to stop by OvercommitTracker. (MEMORY_LIMIT_EXCEEDED) (version 25.3.5.42 (official build))
select top 10 query, exception
, event_time
from system.query_log where 1=1 and event_date = today() and exception_code
<> 0 order by event_time
desc
Других запросов нету на данный момент.
24 гб используется джоин енджин и словарями. Га сервере 128 гб памяти.
Здравствуйте!
Подскажите, пожалуйста, какие есть способы в ClickHouse из типа данных JSON получить значение по ключу не через dot нотацию, а передав ключ как параметр функции? Я попробовал через
getSubcolumn(json, mapKeyByDict('protoKey'))
и через JSONExtract(toJSONString(json), mapKeyByDict('protoKey')), 'String')
Оба подхода работают, хоть и медленно, но что хуже -- работают только для простых типов и не поддерживают Dynamic, который очень нужно оставить.
Есть ли другой способ заменить dot нотацию для JSON типа?
выглядит так, будто КХ умный и знает, что не важно, что за операция запущена, если дальше транкейт, который удалит данные
Читать полностью…Всем привет господа! Нужна помощь с созданием таблицы на инстансе 1, такую же копию как с инстанса 2.
Дело в том что данные льются в таблицу инстанса 2, и нужно чтобы данные эти тоже были в таблице инстанса 1.
Думал аналогию как с Postgres engine сделать так как уже есть такие таблицы, но увы не смог. Требуется безКластерное решение
Буду благодарен заранее если опишите подробно решение
директория с данными примонтировалось в другое место и такой эксепшен получался не очень информативный
Читать полностью…Ну по сути пока выдали только Work around решение типа отключить metriclog и tracelog, при этом подтвердив баг, сославшись на возможное решение будущем через PR 83607. Так как стоим на managedYandex, не всё можем себе руками править
Читать полностью…Дело кстати не в metric_log. Она просто пример, на любой широкой таблице при мержах течет.
Читать полностью…работает
Читать полностью…
Skip │
31. │ Name: types_sku_bidx │
32. │ Description: bloom_filter GRANULARITY 1 │
33. │ Parts: 17/17 │
34. │ Granules: 2022/2059
А кто в курсе почему с 24.8 bloom_filter index сломался? И до сих пор не починили.
https://fiddle.clickhouse.com/ab57de66-0731-450d-86e2-75e7101a5a00
https://github.com/ClickHouse/ClickHouse/pull/83607
Читать полностью…Нам в итоге саппорт Яндекса ответили на все тикеты, что мол да, заглянули в наши БД и увидели слишком "много лишнего" в system.metric_log и это баг. Мол не должны происходящие процессы запрашивать так много памяти
Читать полностью…Выше (вчера) были ответы.
Либо откатываться, либо пробовать настройки трекера памяти
коллеги, здравствуйте!
обе реплики шарда упали (в k8s) упали с ошибкой
2025.07.12 02:56:37.600407 [ 639 ] {} <Error> MergeTreeBackgroundExecutor: Exception while executing background task {9a7530d1-9ec9-449e-9fd9-5c339523756d::202507_240_246_3}: Code: 128. DB::Exception: Array size is too large: 3400272896918105909: (while reading column content): (while reading from part /var/lib/clickhouse/store/9a7/9a7530d1-9ec9-449e-9fd9-5c339523756d/202507_240_244_2/ in table default.articles_stats_v3_local (9a7530d1-9ec9-449e-9fd9-5c339523756d) located on disk default of type local, from mark 0 with max_rows_to_read = 159): While executing MergeTreeSequentialSource. (TOO_LARGE_ARRAY_SIZE), Stack trace (when copying this message, always include the lines below)
reading from part /var/lib/clickhouse/store/9a7/9a7530d1-9ec9-449e-9fd9-5c339523756d/202507_240_244_2/ in table default.articles_stats_v3_local (9a7530d1-9ec9-449e-9fd9-5c339523756d
и не стартуетrm -r /var/lib/clickhouse/store/9a7/9a7530d1-9ec9-449e-9fd9-5c339523756d/202507_240_244_2/
?
Читать полностью…
также проверил MODIFY COLUMN + RENAME COLUMN (меняю тип поля, чуть позже одновременно с этим меняю имя того же поля)
в таком случае вторая операция ждет первую.
в общем на своих 2 нодах создал я по 1 реплицированной таблице с одинаковым названием и с разными путями в ЗК (чтобы были типа как реплики разных шардов), налил туда данных
1) запустил ALTER TABLE DELETE ON CLUSTER
2) запустил TRUNCATE TABLE ON CLUSTER
получилось тоже интересное поведение. Запустил ALTER TABLE DELETE, он поработал какое-то время, по количеству партов в system.mutations было видно, что завершаться не планирует в ближайшее время. Потом запустил TRUNCATE, он завершился быстро, причем ALTER TABLE DELETE тоже бавершился сразу же в это время (без ошибки)
то есть TRUNCATE не ждал ALTER DELETE, а он его завершил, но без ошибки
>аналогию как с Postgres engine
create table xxx as remote('other_server', 'db', 'talble', 'user', 'pass')
под апсерты действительно лучше подходит чем ReplacingMergeTree + join, попробую
Читать полностью…или так https://fiddle.clickhouse.com/1343f225-1fa9-4669-8ddc-66e45c138b98
Читать полностью…