Обсуждаем ClickHouse
Контекст: хотелось бы использовать под tmp два диска, ssd+hdd. Использовать первый, второй использовать только в случае если на первом нет места.
Сначала попробовал использовать для эти цели storage_policy с двумя volume c приоритетами, но клик бодро при старте ругнулся
Code: 139. DB::Exception: Policy 'tmp_two_tiers' is used temporary files, such policy should have exactly one volume. (NO_ELEMENTS_IN_CONFIG)
Был бы рад положиться на то, то это будет работать из коробки по описанию в tmp_policy, но его описание расходится с описанием того, как работают диски в вольюме в общем случае
Ну его в 25.8 его из эксперементального переместели в бета. Так что всё еще не продакшн реди. Использование на свой страх и риск.
Читать полностью…добавьте в SETTINGS
grace_hash_join_initial_buckets=8, grace_hash_join_max_buckets=8;
Один джоин.
Использую setting grace_join
Ого, спасибо. Просто стал сталкиваться часто с тем что не хватает конфигурации 8GB*3, а ценник за 16GB*3 уже достаточно большой.
Хотя по идеи запрос должен отработать с 24 GB памяти...
Коллеги, добрый день!
Вопрос по Clickhouse Cloud ☁️:
Чтобы у меня запросы выполнялись распределенно, мне нужно создать над SharedMergeTree создать Distributed?
Я помню, спарк там чёт хотел получать сначала от кх . Посмотрите в query_log может там ошибки есть в запросах спарка )
Читать полностью…А зачем спарком писать в буфер?
Можно же на стороне спарка регулировать размер вставляемого батча
настройку где прописываете? в каждом insert запросе? движок replacing? или оьычный merge tree?
Читать полностью…Всем привет, а если в логе КХ ошибка на MOVES, то как править это ?
DB::Exception: Cannot clone part 20250829_0_491_7 from 'store/64f/64f827cd-06a5-4c66-8d2e-224f577ee042/20250829_0_491_7/' to 'store/64f/64f827cd-06a5-4c66-8d2e-224f577ee042/moving/20250829_0_491_7/': path '/clickhousehdd/store/64f/64f827cd-06a5-4c66-8d2e-224f577ee042/moving/20250829_0_491_7/' already exists. (DIRECTORY_ALREADY_EXISTS)
этот функционал используется крайне редко, смысл в том что мы стримим данные из разных источников и агрегируем их в кх. Бывают моменты когда источники отключаются и недоступны нарушается консистентность. И мы перезаписываем все имеющиеся данные. Версия у нас как updated_date в источниках и она никогда не меняется
Читать полностью…А в чем физический смысл вставки одинаковых данных? Вы же, вроде, писали что хотя бы версия меняется
Читать полностью…Добрый день, хотел еще спросить а сейчас наблюдаю такое поведение что первый раз эта настройка помогает, но если еще раз удалю данные и вставлю снова (получается третий раз) то данные опять не вставляются. Это ожидаемое поведение? Что можно с эти сделать?
Читать полностью…Добрый день, коллеги.
Прошу помощи с трактовкой неясного места из святого августина документации
Storage policy. Как будет выполняться запись на несколько дисков в одном volume?
Отсюда https://clickhouse.com/docs/engines/table-engines/mergetree-family/mergetree
можно сделать вывод, что указание нескольких дисков в одном вольюеме приведёт к записи через
round-robin
"In given example, the hdd_in_order policy implements the round-robin approach."
Здесь же
https://clickhouse.com/docs/operations/server-configuration-parameters/settings#tmp_policy
пишут, что запись в вольюм с несколькими дисками будет выполняться в режиме "failover"
"When /disk1 is full, temporary data will be stored on /disk2"
Не очень понимаю, как без дополнительных настроек один и тот же volume будет настолько по-разному работать в разных случаях указания.
При этом название hdd_in_order само по себе сбивает с толку, я бы от него ожидал режима "failover"
Ребят, насколько lightweight update production-ready?
Читать полностью…вообще это в саппорте надо спрашивать, там настоящие сварщики, а не как тут.
Читать полностью…SETTINGS join_algorithm = 'grace_hash',
max_memory_usage = 15000000000,
max_bytes_before_external_group_by = 1000000000,
max_bytes_before_external_sort = 1000000000;
ну это совешенно иная проблема, обратная даже, и решение у нее другое, в саппорт клауда лучше.
у вас джойн наверное в запросе, или несколько?
в КХ клауд все по другому. Надо спрашивать их саппорт как распаллелить запрос.
Там всегда один шард. Там нельзя создать Distributed.
Чтобы несколько реплик выполняли один запрос, они пилят max_parallel_replicas.
Что-то я действительно не подумал об этом. Все зарпосы от спарка падают вот с такой ошибкой
<failed to load>
java.sql.SQLException: Method: getLong("normalized_query_hash") encountered an exception.
at com.clickhouse.jdbc.internal.ExceptionUtils.toSqlState(ExceptionUtils.java:74)
at com.clickhouse.jdbc.ResultSetImpl.getLong(ResultSetImpl.java:320)
at com.clickhouse.jdbc.ResultSetImpl.getLong(ResultSetImpl.java:175)
in CHouseJdbcHelper.tryGetObject(CHouseJdbcHelper.java:156)
Caused by: java.lang.ArithmeticException: integer overflow: 15722048748544463130 cannot be presented as long
at com.clickhouse.client.api.data_formats.internal.NumberConverter.toLong(NumberConverter.java:87)
at com.clickhouse.client.api.data_formats.internal.AbstractBinaryFormatReader.readNumberValue(AbstractBinaryFormatReader.java:378)
at com.clickhouse.client.api.data_formats.internal.AbstractBinaryFormatReader.getLong(AbstractBinaryFormatReader.java:402)
at com.clickhouse.jdbc.ResultSetImpl.getLong(ResultSetImpl.java:314)
... 22 more
Да. Сейчас проверю дополнительно конечно
Читать полностью…Я пробую вставлять в ReplicatedReplacingMergeTreeEngine и мне ловлю экзепшен что данная таблица не поддерживается. У нас сейчас официальный коннектор от Clickhouse.
Читать полностью…Заранее благодарю за ответы возможно на очевидные вопросы, но не могу найти ответы в документации.
- Возможно ли создать BufferEngine на ReplicatedReplacingMergeTreeEngine?
- Если кто-то уже сталкивался с этим, поддерживает ли Apache Spark connector стриминговую вставку в BufferEngine? На ReplicatedReplacingMergeTreeEngine ругается что не поддерживает.
Отвечу сам себе. Я остановил мув на таблице, дропнул эту часть со второго диска, запустил мув.
Читать полностью…Есть смысл в async_insert если разные сервисы пишут в одну таблицу, но каждый сервис пишет в свой партишен?
Читать полностью…подтвердилась ваша догадка, нашел вставку данных
Читать полностью…честно говоря я не понимаю почему вижу wa на сервере 10.2.0.15
iotop показывает максимум 2МБ запись, чтение
при этом iostat показывает, что процессор ожидает диск, но на диск нагрузки нет
реальных тормозов как раньше, что терминал отвечает с задержкой я сейчас не вижу
но wa удивляет, может я что-то не понимаю, или не туда смотрю
раз в 5 минут идет wa примерно на 15 секунд