Files

32 lines
5.7 KiB
Markdown
Raw Permalink Normal View History

2026-09-06 19:26:12 +03:00
# P12-A. ClickHouse: отсечение данных
2026-09-07 21:46:04 +03:00
- **Версия и дата проверки:** 1.1, 07.09.2026.
2026-09-06 19:26:12 +03:00
- **Статус:** готово к назначению.
## Статья и исходные материалы
- **Основная статья:** Robert Schulze и соавт. — [ClickHouse — Lightning Fast Analytics for Everyone](https://www.vldb.org/pvldb/vol17/p3731-schulze.pdf). VLDB 2024.
- **Кратко о статье:** Статья описывает архитектуру ClickHouse — столбцовой аналитической СУБД, рассчитанной на быстрое выполнение запросов над большими объёмами данных. Производительность обеспечивают совместно порядок хранения, разреженный первичный индекс, пропуск ненужных гранул, сжатие и векторизованное выполнение. В этом проекте изолируется вклад порядка данных и отсечения гранул при разной селективности запросов.
- **Почему результат актуален:** статья описывает устройство открытой аналитической СУБД ClickHouse: столбцовое хранение, фоновые слияния частей, векторизованный конвейер исполнения запросов и отсечение ненужных данных.
- **Артефакты и данные:** [ClickHouse/ClickHouse](https://github.com/ClickHouse/ClickHouse) под Apache-2.0 и [ClickHouse/ClickBench](https://github.com/ClickHouse/ClickBench) с воспроизводимой аналитической нагрузкой и конфигурациями разных СУБД. Зафиксированные ревизии: `ClickHouse/ClickHouse@2da63c1b42ca` (Apache-2.0); `ClickHouse/ClickBench@fa52f8524ad9` (CC BY-NC-SA 4.0; лицензии отдельных входных наборов проверяются отдельно).
2026-09-07 21:46:04 +03:00
- **Что уже предоставляет артефакт:** ClickHouse предоставляет движок, а ClickBench — данные, SQL-запросы, конфигурации и скрипты измерений. Их можно использовать как основу стенда и фиксированной нагрузки.
2026-09-06 19:26:12 +03:00
## Обязательный результат
- **Проверяемый вопрос или утверждение:** порядок данных и пропуск ненужных гранул дают измеримый выигрыш для аналитических запросов, когда фильтр согласован с физической организацией таблицы.
- **Технический результат:** Развернуть ClickHouse и подготовить уменьшенный ClickBench с двумя физическими вариантами одной таблицы, различающимися ключом сортировки и размером гранул.
2026-09-07 21:46:04 +03:00
- **Обязательное приращение команды:** Подготовить уже предусмотренные два физических варианта одной таблицы, выполнить одинаковые запросы с прогревом и повторами и самостоятельно объяснить различия через `EXPLAIN` и системные таблицы. Собрать прочитанные строки и байты, CPU и память вместе со временем выполнения.
2026-09-06 19:26:12 +03:00
- **Эксперимент:** Для не менее чем пяти запросов сравнить варианты хранения по прочитанным строкам и байтам, времени, CPU и памяти. Выполнить прогрев и не менее трёх измеряемых повторов; объяснить результат через `EXPLAIN` и системные таблицы.
- **Границы выводов:** эффект отсечения данных оценивается для выбранных ключей сортировки, размеров гранул и запросов уменьшенного ClickBench; он не характеризует все оптимизации ClickHouse и производительность распределённого кластера.
- **Ресурсный профиль:** локально, CPU, 8–16 ГБ памяти, готовый бинарный выпуск или контейнер. Полный ClickBench не требуется: объём данных и набор запросов сокращаются с проверкой того, что выбранные режимы остаются различимы.
## Содержательные направления
- данные, схема и варианты хранения.
- планы и измерения исполнения.
- распределённый режим или дополнительная оптимизация и анализ результатов.
## Возможное продолжение
Добавить реплицированный двухузловой стенд, сравнить локальный и распределённый запрос, исследовать компрессию, проекции, пропускную способность загрузки либо сопоставимый столбцовый baseline.