Обсуждаем ClickHouse
ещё квоты выглядят здраво, но к сожалению не осилил внедрить, если кто то тут да, поделитесь опытом, очень интересно насколько практически применимый инструмент )
Читать полностью…а есть примеры того как пользоваться даной либой?
в описании нет деталей того как создавать миграции и тд.
не могу сам разобраться
Лимиты на самом деле являются вполне правильным способом обеспечивать изоляцию в многопользовательской среде, но, конечно, если лимиты не позволяют использовать всю доступную память и такое требование есть, то репликация это единственный возможный вариант
Читать полностью…У нас есть лимиты по memory и настройка приоритетов для CPU по пользователям, которые хорошо работали какое-то время. Просто с развитием аналитики, ростом количества словарей и больших дашбордов проду то не хватает памяти в моменте, то latency слишком большой выходит для критичных к этому операций. Хочется сделать не временное решение, а архитектурно разделить эти два процесса чтобы проще было их контролировать и управлять ресурсами
Читать полностью…приветствую! нельзя ли в облаке clickhouse сделать асинхронную вставку в таблицу? проблема в том что у меня постоянный поток данных и вставка не проходит
Читать полностью…Кластер из 2 нод, таблицы типа Replicated.... И всё )
Читать полностью…Опубликован релиз 25.5!
Presentation: https://presentations.clickhouse.com/2025-release-25.5/
Video: https://www.youtube.com/live/wxicecqZOuw
Changelog: https://github.com/ClickHouse/ClickHouse/blob/master/CHANGELOG.md
да криво делают пушдаун, лечится limit
https://fiddle.clickhouse.com/e7a518c3-9dcc-4e5c-955f-962674b9d9c4
действительно
но это странно, с учетом
x and weight must both be Integer or floating-point, but may have different types.
Добрый день!
у функции avgWeighted есть какая-то проблемма с Float?
https://fiddle.clickhouse.com/c881ef0d-f2d1-4759-9dbd-a11892731de4
а время вообще в ключ сортировки стоит добавлять ? toDate(event_time) ок я понял ставим на первое место
Читать полностью…да, время в партиции, а на первое место toDate or toStartOfDay
Читать полностью…а если мы всегда селектим какоето конкретное время а не дату, то выгоднее в партицию засунуть время выходит ? а в ключе сортировки надо ли в таком случае ставить время на первое место ?
Читать полностью…ну кликхаус же не знает что event_date это производная от event_time
Читать полностью…Большая часть проблем от аналитиков в моей практике, перекрывалась комбинацией ручек:
max_memory_usage
max_bytes_before_external_sort
max_bytes_before_external_group_by
max_result_rows
max_execution_time
max_concurrent_queries_for_user
max_rows_in_join
max_bytes_in_set
причем последние две ручки давали больше всего, ибо аналитики грешили джоинами и кодогенрируемыми WHERE IN (миллионы значений)
отдельного упоминания стоит ручка max_result_rows, ну или если хотите можно и в байтах, это помогает не укладывать BI инструменты, вот например из редаша можно сказать SELECT * в клик, и клик не ляжет от такого фуллскана, а вот реляционная базюка под редашем ещё как лопнет от объемов ответа.
схема с репликами практиковалась такая:
1) фактор репликации 3
2) 2 реплики обслуживают прод, одну насилуют аналитики
3) если продовая реплика отказывает, хук на фейловере обрубает доступ аналитикам и их реплика используется в качестве продовой
4) разумеется в SLA было прописано, что проду мы гарантируем работу при сбоях, а аналитикам нет. бизнес это устраивало.
Всем привет!
Такая ситуация, есть три шарда по которым равномерно распределяются данные. Но хотелось бы их реплицировать. Решение с фактором репликации 3 - очевидно. А есть решение с фактором репликации 2? Я видел статьи от 19 года, там много костылей.. Может появилось решение от ClickHouse?
Asynchronous Inserts (async_insert) | ClickHouse Docs
https://clickhouse.com/docs/optimize/asynchronous-inserts?ysclid=mb4usgcc2m735370627
По идее это можно решить настройкой лимитов, хотя репликацию все равно хорошо бы иметь, хотя бы чтобы не потерять данные, если что-то с одним сервером случится
Читать полностью…Всем привет! Вопрос про область применения репликации.
У нас есть один единственный инстанс CH, без шардов и реплик, который используется как самим продуктом, так и аналитиками с BI-системой. Мы хотим отделить друг от друга прод и аналитику, при этом сохранив актуальность и консистентность данных. Решение видится в создании replicated таблиц для аналитики на отдельном сервере.
Прошу помощи и совета, как бы вы реализовали такую схему?
добавил https://github.com/ClickHouse/ClickHouse/issues/80794
Читать полностью…Всем привет!
Оператор where
не работает с движком Join
я так понял?
https://fiddle.clickhouse.com/181d7a84-9bf4-47d0-9166-4d25e7eff3bd
Нашел похожий issue, но непонятно как решить. Пробовал обернуть в подзапрос, но все равно не работает.
https://github.com/ClickHouse/ClickHouse/issues/16991
проблема с Int имхо ;-) если второй агрумент FLoat — все ОК
Читать полностью…Партиции уже давно больше про манипуляции с данными. Переносить по партициям, удалять, вставлять… например, можно провести работы с таблицей в месяц и далее готовую партицию перенести в большую таблицу.
Как верно отметили выше, схема с партицией и без часто работают практически одинаково и на запись и на чтение.
Выборка, затрагивающая 2 партиции может работать медленнее, чем при отсутствии этих партиций.
Если у вас условие выборки не содержит условия на партиции, то вы так же можете только проиграть.
Если у вас нет плана работы с партициям, то можете их не делать или делать максимально большими.
Вопрос же от времени или от даты совершенно несущественен. Время которое клик потратит чтобы из вашего времени в условии получить список нужных партиций ничтожно.
Ну типа да, лет ... более чем 6 назад ещё на старых версиях клика, ещё до того как я начал там работать, наверное могли бы.
Читать полностью…получается вы могли просто toDate(time) в where использовать вместо создания новой таблицы с новым партиционированием ? я правильно вас понял ?
Читать полностью…У меня как то была огромная табличка, более чем на сотню машин забитых дисками, занимала на каждой реплике с десяток териков, партиционирована была по toYYYYMM(время), с рекламными событиями. Чтобы иметь возможность переливать некорректные данные за конкретную дату, сделали вторую табличку, такую же, партиционированую по дате, начали писать туда, понемногу переливая данные из старой. Знаете что поменялось по дашикам читателей и писателей? Скорость вставки, скорость выборки... Ничего.
Читать полностью…Ну да. Если вы используете дату для партиционирования, не забывайте добавлять условие в WHERE
Читать полностью…С чего бы это? partition pruning сработает одинаково. Но если у вас там еще и время фильтруется, то прочитаете две колонки вместо одной, что медленее
Читать полностью…