Обсуждаем ClickHouse
Нам в итоге саппорт Яндекса ответили на все тикеты, что мол да, заглянули в наши БД и увидели слишком "много лишнего" в 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
Читать полностью…CoalescingMergeTree заполнит нуловые поля, но если будут апдейты не нуловых, то это будут две разные строки уже, т.е. это не совсем апсерт
Читать полностью…https://github.com/ClickHouse/ClickHouse/issues/78869#issuecomment-2901209361
https://fiddle.clickhouse.com/037332ba-4e75-421d-b3c6-7d95101c54ba
select * from system.replicas where table = ....
скорее всего is_lost=1
проще всего system drop replica / restore relica
На chproxy таких механизмов, кажется, нет
Читать полностью…Привет. У нас тут завелся "спамер" (неумышленный), раз в 30 секунд дает запрос к клику, затратный и ненужный. Мы его конечно завтра найдем, а пока такой вопрос: есть ли у клика какой-то механизм jdbc запросы по маске дропать, не выполняя?
Читать полностью…всем привет, заранее извиняюсь если вопрос не совсем релевантен для чата (вопрос скорее про dbt-clickhouse).
Такая проблема, в кликхаусе (при работе dbt-core + dbt-clickhouse (1.9.1 оба)) при стратегии microbatch
макрос {%- if is_incremental() %}
всегда возвращает False - это такое поведение и задумано или бага ? делаю чз microbatch
обновление но мне надо сравнивать новые данные с теми которые уже записали (всегда делал чз is_incremental()
- но при выборе стратегии microbatch
не получается) Что в такой ситуации делать, использовать обычную инкрементальную материализацию вместо microbatch
стратегии или есть какое-то решение ?
проблема кстати концептуальная есть в КХ https://github.com/ClickHouse/ClickHouse/issues/66527
Читать полностью…Кто поможет после обновления на версию 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 сделать так как уже есть такие таблицы, но увы не смог. Требуется безКластерное решение
Буду благодарен заранее если опишите подробно решение
директория с данными примонтировалось в другое место и такой эксепшен получался не очень информативный
Читать полностью…чукча писатель ? еще раз https://fiddle.clickhouse.com/355d395a-0b9b-4110-a69b-998fad33297e
Читать полностью…вывод на живой реплике и на проблемной где count() 0 показывает отличается только вот этим:
last_queue_update_exception: Code: 242. DB::Exception: Table is in readonly mode due to static storage. (TABLE_IS_READ_ONLY) (version 24.8.14.39 (official build))Читать полностью…
https://github.com/ClickHouse/ClickHouse/discussions/59187#discussioncomment-8239140
нашел как ограничить join на большую таблицу в MV
(a7efd2a8-72f7-48d3-b16b-a1d4890b9450): auto DB::StorageReplicatedMergeTree::processQueueEntry(ReplicatedMergeTreeQueue::SelectedEntryPtr)::(anonymous class)::operator()(LogEntryPtr &) const: Code: 242. DB::Exception: Table is in readonly mode due to static storage. (TABLE_IS_READ_ONLY), Stack trace (when copying this message, always include the lines below):
0. DB::Exception::Exception(DB::Exception::MessageMasked&&, int, bool) @ 0x000000000d17d45b
1. DB::Exception::Exception(PreformattedMessage&&, int) @ 0x0000000007db1dec
2. DB::Exception::Exception<>(int, FormatStringHelperImpl<>) @ 0x0000000007dc9a8b
3. DB::StorageReplicatedMergeTree::fetchPart(String const&, std::shared_ptr<DB::StorageInMemoryMetadata const> const&, String const&, String const&, bool, unsigned long, std::shared_ptr<zkutil::ZooKeeper>, bool) @ 0x0000000011aaee4f
4. DB::StorageReplicatedMergeTree::executeFetch(DB::ReplicatedMergeTreeLogEntry&, bool) @ 0x0000000011aa0a1b
5. DB::StorageReplicatedMergeTree::executeLogEntry(DB::ReplicatedMergeTreeLogEntry&) @ 0x0000000011a8648c
6. bool std::__function::__policy_invoker<bool (std::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>::__call_impl<std::__function::__default_alloc_func<DB::StorageReplicatedMergeTree::processQueueEntry(std::shared_ptr<DB::ReplicatedMergeTreeQueue::SelectedEntry>)::$_1, bool (std::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>>(std::__function::__policy_storage const*, std::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&) @ 0x0000000011ba18fc
7. DB::ReplicatedMergeTreeQueue::processEntry(std::function<std::shared_ptr<zkutil::ZooKeeper> ()>, std::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&, std::function<bool (std::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>) @ 0x0000000012230947
8. DB::StorageReplicatedMergeTree::processQueueEntry(std::shared_ptr<DB::ReplicatedMergeTreeQueue::SelectedEntry>) @ 0x0000000011ad353c
9. DB::ExecutableLambdaAdapter::executeStep() @ 0x0000000011ba2552
10. DB::MergeTreeBackgroundExecutor<DB::RoundRobinRuntimeQueue>::threadFunction() @ 0x0000000011f18eba
11. ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::worker(std::__list_iterator<ThreadFromGlobalPoolImpl<false, true>, void*>) @ 0x000000000d24fec9
12. void std::__function::__policy_invoker<void ()>::__call_impl<std::__function::__default_alloc_func<ThreadFromGlobalPoolImpl<false, true>::ThreadFromGlobalPoolImpl<void ThreadPoolImpl<ThreadFromGlobalPoolImpl<false, true>>::scheduleImpl<void>(std::function<void ()>, Priority, std::optional<unsigned long>, bool)::'lambda0'()>(void&&)::'lambda'(), void ()>>(std::__function::__policy_storage const*) @ 0x000000000d254011
13. void* std::__thread_proxy[abi:v15007]<std::tuple<std::unique_ptr<std::__thread_struct, std::default_delete<std::__thread_struct>>, void ThreadPoolImpl<std::thread>::scheduleImpl<void>(std::function<void ()>, Priority, std::optional<unsigned long>, bool)::'lambda0'()>>(void*) @ 0x000000000d252d89
14. start_thread @ 0x0000000000007ea7
15. ? @ 0x00000000000fca2f
(version 24.8.14.39 (official build))
код надо смотреть вполне возможно бага... лучше тут спросить
https://github.com/ClickHouse/dbt-clickhouse/issues
это очень стремно, уберегло от мутаций выполняющихся в этот момент
Читать полностью…а, ну те это чтоб руками не лазить и кол-во брокен партов не поднимать, а потом не опускать?
Читать полностью…