Веб-версияОткрыть в Telegram

Пост✨ Кузьма Лешаков — Разгоним запросы: как быстро готовить ClickHouse

16 марта 2025
D
Data Engineering Digest
Ссылка
нажмите — покажем
✨ Кузьма Лешаков — Разгоним запросы: как быстро готовить ClickHouse Сложность: 1/3 (для тех, кто знаком с Clickhouse) Кому будет интересно: В докладе рассказывают про индексацию, проекции и шардирование в Clickhouse. Про индексы очень интересно послушать, но вот про шардирование и проекции - слишком просто. Но если с Clickhouse не работали (или не использовали проекции/работали с одним шардом), то для знакомства - доклад в самый раз. --- Ссылка на выступление: https://youtu.be/COBEEbozRqw?si=Qdtfv1lN68EaVPqh или https://vkvideo.ru/video-147464741_456239336 --- ✨ Кузьма Лешаков — Разгоним запросы: как быстро готовить ClickHouse Кузьма Лешаков рассказал о методах ускорения запросов в ClickHouse, включая индексацию, проекции и шардирование. Основной фокус был на практических примерах и тестах, которые показывают, как эффективно использовать возможности ClickHouse для аналитики. --- 🔍 Основные моменты: 1️⃣ Индексация в ClickHouse: - Первичный индекс: Создается явно или неявно (через ORDER BY). Рекомендуется использовать 2-3 колонки с возрастающей кардинальностью. - Вторичные индексы: - Фильтр Блума: - Вероятностная структура данных, которая гарантирует отсутствие элемента, но не его наличие. - Пример: Определение наличия IP-адреса в спам-списке. Без фильтра Блума используется 100 миллионов строк, с фильтром — 32,77 тысячи строк. - Размер индекса: 74 МБ после компрессии, 100 МБ до компрессии. - Фильтр МинМакс: - Фиксирует минимальное и максимальное значение для каждой гранулы. - Требует корреляции с первичным ключом. - Пример: Подсчет общего количества просмотров по колонкам response_start и response_end. Без фильтра МинМакс используется 100 миллионов строк, с фильтром — 65 миллионов. - Размер индекса: 0,01 МБ после компрессии, 0,005 МБ до компрессии. - Индекс Сет: - Фиксирует уникальные значения в каждой грануле. - Подходит для колонок с низкой кардинальностью. - Пример: Подсчет хитов просмотров с условиями по браузеру. Без индекса Сет используется 100 миллионов строк, с индексом — 41,91 тысяча строк. - Размер индекса: 0,24 МБ после компрессии, 0,14 МБ до компрессии. Преимущества вторичных индексов: - Ускоряют выполнение запросов. - Нет ограничений по количеству индексов на таблицу. Недостатки вторичных индексов: - Занимают дополнительное место, особенно фильтры Блума. - Могут замедлять вставку данных. - Требуют вдумчивого подхода: неграмотное использование может замедлить ClickHouse. 2️⃣ Проекции: - Проекции — это скрытые подтаблицы, которые помогают ускорить запросы, особенно при изменении ключа сортировки или предагрегации данных. - Пример: создание проекции для агрегации данных по user_id. ALTER TABLE hits ADD PROJECTION hits_avg_users ( SELECT user_id, count(*) GROUP BY user_id ) - Недостатки: Проекции занимают много места и могут быть менее гибкими, чем материализованные представления. 3️⃣ Шардирование: - Шардирование позволяет распределить данные между несколькими хостами, что повышает производительность и отказоустойчивость. - Ключ шардирования: Определяет, как данные распределяются между хостами. - Недостатки: Требует дополнительных вычислительных мощностей и ручной ребалансировки при добавлении новых хостов. 4️⃣ Оптимизация запросов: - Первичный ключ: Основной способ ускорения запросов. - Индексы пропуска данных: Ускоряют запросы, но могут замедлять вставку данных и занимать дополнительное место. - Проекции: Эффективны для предагрегации, но требуют много места. - Шардирование: Позволяет преодолеть ограничения одного хоста, но требует дополнительных ресурсов. --- 📌 Выводы: ClickHouse предоставляет множество инструментов для ускорения запросов, включая индексы, проекции и шардирование. Однако важно учитывать их ограничения и выбирать подходящие методы в зависимости от конкретных задач. P.S. Пожалуйста, делитесь постом с коллегами. Для нас это очень важно)
88 · 3.1K ·

Рядом в ленте

DData Engineering Digest✨ Андрей Бородин — Compute/Storage separation в Greenplum Сложность: 1.5/3 Кому будет интересно: Специалистам, работающим с Greenplum. Или тем, кто топит за то,DData Engineering DigestДобавлю комментарий от себя: кажется, что технология безумно крутая, но пока сырая. Документация очень скудная. https://yandex.cloud/ru/docs/managed-greenplum/o
это сообщение
DData Engineering Digest✨ Иван Клименко (Arenadata) — CDC в банке от источника до хранилища с применением продуктов Arenadata Ссылка на выступление: https://youtu.be/nfZdDzr_Y_Y?si=l69DData Engineering DigestСкрин архитектуры Data Platform банка из последнего поста. Пожалуйста, делитесь нашими постами с коллегами)
DData Engineering DigestData Engineering Digest@DataEngineeringDigest · канал · Новости
1 175подписчиков474средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем