ClickHouse и инженерия данных

Формат: цифровые практические инженерные воркшопы
Слушатели: дата инженеры и аналитики данных Совкомбанк
Длительность: 4 дня 
Домен: Финтех / Банковская сфера
Уровень: Middle+ (опыт работы с данными обязателен)

Работа с ClickHouse на масштабах банка — это не просто «написать SQL-запрос». Это ежедневные вызовы:

  • Запросы работают минуты, хотя должны — миллисекунды. Где узкое место?
  • JOIN на миллиардах строк превращается в час ожидания. Как победить?
  • Данные текут рекой, а витрины устаревают ещё до того, как построятся.
  • Непонятно, какой движок таблицы выбрать, чтобы завтра не переписывать всё с нуля.

Формат обучения

  • 80% времени — практика за компьютером
  • Обучение на учебной платформе ClickHouse с подготовленными генеративными
    данными, повторяющими структуру реальных банковских сценариев и витрин
  • Кейсы приближены к боевым: обезличенные данные по кредитным
    рейтингам, банковским картам и транзакциям
  • Нет риска для продакшена — экспериментируем в изолированной среде
  • Разбор реальных запросов и ситуаций

Модули программы

  • MergeTree — базовый движок для большинства задач
  • Как работает слияние кусков (parts) и почему это важно?
  • Когда использовать MergeTree, а когда — другие разновидности.
  • Сравнение производительности.
  • ReplacingMergeTree — для данных с дубликатами
  • SummingMergeTree, AggregatingMergeTree и другие агрегационные движки.
  • Дополнительные свойства создания таблиц. Партицирование. Сортировка и первичный ключ. Гранулярность
  • Что такое гранулы и индексный интервал?
  • Как настроить гранулярность для оптимальной производительности?
  • Формат хранения даты и времени
  • Научиться работать с ClickHouse из Python-кода.
  • Виртуальные таблицы и материализованные представления (COMPUTE pipeline)
  • Table Constraints и индексы. Типы индексов в ClickHouse и когда они нужны.
  • Ограничения целостности данных (CHECK, NOT NULL).
  • URLEngine: чтение данных по URL.
  • KafkaEngine: подключение к потокам Kafka.
  • MySQL / PostgreSQL Engine: чтение данных из внешних БД.
  • Использование Dictionary (словари)
  • Сравнение производительности: JSON vs Dictionary.
  • Оптимизация JOIN-запросов. Оптимизация по памяти и порядку чтения
  • EXPLAIN — как понять план выполнения запроса. Что такое EXPLAIN, EXPLAIN AST, EXPLAIN PIPELINE
  • Временные таблицы и CTE
  • Сложные структуры данных: Tuple, Map, JSON, массивы, сводные таблицы
  • Продвинутая агрегация и аналитика в OLAP. От GROUP BY до оконных функций