Оптимизация затрат: стратегии от сообщества
Это руководство — часть серии материалов, подготовленных на основе встреч сообщества. Материалы на этой странице отражают опыт и практики сообщества по оптимизации затрат при использовании ClickHouse, которые хорошо зарекомендовали себя в их конкретной среде и конфигурации. Для получения дополнительных практических решений и инсайтов вы можете просматривать материалы по конкретным проблемам.
Узнайте, как ClickHouse Cloud может помочь управлять операционными затратами.
Стратегия сжатия: LZ4 и ZSTD в продакшене
Когда Microsoft Clarity нужно было обрабатывать сотни терабайт данных, они обнаружили, что выбор алгоритма сжатия имеет колоссальное влияние на стоимость. В их масштабе важен каждый бит экономии хранилища, и они столкнулись с классическим компромиссом: производительность против стоимости хранения. Microsoft Clarity обрабатывает огромные объёмы — два петабайта несжатых данных в месяц по всем аккаунтам, выполняя около 60 000 запросов в час на восьми узлах и обслуживая миллиарды просмотров страниц с миллионов веб-сайтов. В таком масштабе стратегия сжатия становится критическим фактором затрат.
Изначально они использовали стандартное сжатие LZ4 в ClickHouse, но выяснили, что при использовании ZSTD можно добиться существенной экономии. Хотя LZ4 быстрее, ZSTD обеспечивает лучшее сжатие ценой немного более низкой производительности. Протестировав оба подхода, они приняли стратегическое решение отдать приоритет экономии хранилища. Результаты оказались значительными: 50 % экономии места на больших таблицах при умеренном влиянии на производительность при ингестии и выполнении запросов.
Ключевые результаты:
- 50 % экономии места на больших таблицах за счёт сжатия ZSTD
- Пропускная способность по обработке данных — 2 петабайта в месяц
- Контролируемое влияние на производительность при ингестии и выполнении запросов
- Значительное снижение затрат в масштабе сотен терабайт
Стратегия удержания данных на уровне столбцов
Одна из самых эффективных техник оптимизации затрат связана с анализом того, какие столбцы на самом деле используются. Microsoft Clarity реализует продвинутые стратегии удержания данных на уровне столбцов, используя встроенные телеметрические возможности ClickHouse. ClickHouse предоставляет детализированные метрики по использованию хранилища по каждому столбцу, а также подробные паттерны запросов: какие столбцы запрашиваются, как часто, длительность запросов и общую статистику использования.
Такой основанный на данных подход позволяет принимать стратегические решения о политиках хранения и управлении жизненным циклом столбцов. Анализируя телеметрию, Microsoft может выявлять «горячие точки» хранения — столбцы, которые занимают значительный объём, но практически не участвуют в запросах. Для таких малозапрашиваемых столбцов можно применять агрессивные политики хранения, сокращая срок удержания с 30 месяцев до одного месяца, либо полностью удалять столбцы, если к ним нет запросов вовсе. Эта выборочная стратегия удержания снижает затраты на хранение без влияния на пользовательский опыт.
Стратегия:
- Анализировать паттерны использования столбцов с помощью телеметрии ClickHouse
- Выявлять столбцы с высоким потреблением хранилища и низкой частотой запросов
- Реализовывать выборочные политики хранения
- Отслеживать паттерны запросов для принятия решений на основе данных
Связанные документы
Управление данными по партициям
Компания Microsoft Clarity выяснила, что стратегия партиционирования влияет и на производительность, и на простоту эксплуатации. Их подход: партиционирование по дате, сортировка по часу. Такая стратегия даёт несколько преимуществ помимо эффективности очистки данных — она позволяет тривиально очищать данные, упрощает расчёт биллинга для их клиентского сервиса и обеспечивает соответствие требованиям GDPR по построчному удалению данных.
Ключевые преимущества:
- Тривиальная очистка данных (удаление партиции вместо построчного удаления)
- Упрощённые расчёты биллинга
- Лучшая производительность запросов за счёт отсечения партиций
- Более простое операционное управление
Связанные материалы
Стратегия преобразования строк в целые числа
Аналитические платформы часто сталкиваются с проблемой хранения категориальных данных, которые многократно повторяются в миллионах строк. Инженерная команда Microsoft столкнулась с этой проблемой в данных поисковой аналитики и разработала эффективное решение, позволившее сократить объем хранения на 60% для затронутых наборов данных.
В веб‑аналитической системе Microsoft результаты поиска возвращают различные типы ответов — карточки погоды, спортивную информацию, новостные статьи и справочные ответы. Каждый результат запроса помечался описательными строками, такими как weather_answer, sports_answer или factual_answer. Поскольку обрабатывались миллиарды поисковых запросов, эти строковые значения многократно сохранялись в ClickHouse, занимая огромные объемы дискового пространства и требуя затратных строковых сравнений при выполнении запросов.
Microsoft реализовала систему отображения строк в целые числа с использованием отдельной базы данных MySQL. Вместо хранения самих строк в ClickHouse сохраняются только целочисленные идентификаторы. Когда пользователи выполняют запросы через UI и запрашивают данные по weather_answer, оптимизатор запросов сначала обращается к таблице отображения в MySQL, чтобы получить соответствующий целочисленный идентификатор, затем преобразует запрос так, чтобы использовать это число перед отправкой его в ClickHouse.
Такая архитектура сохраняет привычный пользовательский опыт — пользователи по‑прежнему видят понятные метки, такие как weather_answer, на своих дашбордах, — в то время как подсистема хранения и обработки запросов работает с гораздо более эффективными целыми числами. Система отображения прозрачно обрабатывает все преобразования, не требуя изменений в пользовательском интерфейсе или пользовательских сценариях работы.
Ключевые преимущества:
- 60% сокращение объема хранения для затронутых наборов данных
- Более высокая производительность запросов при сравнении целых чисел
- Снижение потребления памяти для
JOINи агрегаций - Меньшие затраты на сетевой трафик для больших результирующих наборов
Это пример, специфичный для сценария работы с данными Microsoft Clarity. Если все ваши данные уже находятся в ClickHouse или у вас нет ограничений на перенос данных в ClickHouse, попробуйте вместо этого использовать dictionaries.
Видеоматериалы
- Microsoft Clarity and ClickHouse – команда Microsoft Clarity
- ClickHouse journey in Contentsquare – Doron Hoffman и Guram Sigua (ContentSquare)
Эти рекомендации по оптимизации затрат от сообщества основаны на стратегиях компаний, обрабатывающих от сотен терабайт до петабайт данных, и демонстрируют практические подходы к снижению операционных расходов на ClickHouse.