Учебный курс «Работа с Clickhouse»

Краткое содержание: архитектура Clickhouse, отличия от Postgres и Greenplum, особенности колоночной организации хранения данных, проектирование системы таблицы, запросы SQL и PRQL, изменение данных и мутации таблиц, организация загрузки данных, оптимизация производительности

Общие данные:

Clickhouse — система управления базами данных с открытым исходным кодом на основе Postgres, которая была специально  разработана для аналитической нагрузки. Колоночное хранение данных позволяет очень эффективно выполнять запросы по большим объемам данных. Мы с удовольствием поделимся с вами не только базовыми знаниями по всем возможностям Clickhouse, но и опыт работы с этой системой от наших слушателей из финтеха и других предприятий.  Заказывайте обучение!

Продолжительность: 4 дня (32 учебных часа).

В курсе 14 модулей, 20 лабораторных работ (на лабораторные работы, выполняемые под руководством преподавателя, отводится 50 % времени учебного курса).

Для кого предназначен: администраторы и другие специалисты, которым необходимо работать с системой управления базами данных Clickhouse

План курса:

  1. Clickhouse: особенности архитектуры и ситуации для применения.
  2. Планирование развертывания Clickhouse. Zookeeper или Clickhouse Keeper. Планирование отказоустойчивости и распределения нагрузки. Оценка требований к оборудованию. Развертывание Clickhouse.
  3. Введение в систему объектов Clickhouse. Отличия системы объектов от Postgres и других реляционных СУБД.
  4. Кластеры Clickhouse. Создание кластеров в файлах конфигурации, ситуации применения кластеров.
  5. Базы данных Clickhouse. Служебные и пользовательские базы данных. Выбор ядра базы данных: Atomic, Replicated, Memory, Lazy, Dictionary. Ядра баз данных для интеграции с Postgres и другими СУБД.
  6. Типы данных Clickhouse: обычные, модификаторы режимов хранения (Nullable и LowCardinality), композитные (Array, Tuple, Map, Nested). Влияние на производительность.
  7. Обзор движков таблиц Clickhouse. Архитектура движка MergeTree. Ключи сортировки и первичные ключи, секционирование (PARTITION BY), сэмплинг (SAMPLE BY), время жизни (TTL).
  8. Репликация данных и ядро ReplicatedMergeTree. Мониторинг репликации и исправление проблем при репликации.
  9. Проекции в таблицах MergeTree и применение альтернативных ключей сортировки.
  10. Движок ReplacingMergeTree и автоматическое удаление дубликатов.
  11. Движки SummingMergeTree и AggregatingMergeTree и автоматическое агрегирование данных.
  12. Движки CollapsingMergeTree и VersionedCollapsingMergeTree и решение проблем с удалением данных.
  13. Движок Distributed и шардинг в Clickhouse.
  14. Семейство движков Log и другие движки Clickhouse.
  15. Представления (Views) в Clickhouse. Обычные представления, параметризованные представления, материализованные представления, обновляемые материализованные представления, оконные представления. Использование материализованных представлений для перекачки и преобразования данных между таблицами.
  16. Особенности добавления/изменения/удаления данных в Clickhouse. Вставка данных и механика IJNSERT. Слияние кусков и команда OPTIMIZE. Удаление данных через облегченные DELETE (lightweight DELETE) и через мутации. UPDATE средствами мутаций и другие варианты изменения данных.
  17. Простая и инкрементальная закачка данных в Clickhouse через интеграционные таблицы.
  18. Непрерывная закачка данных в Clickhouse. Связка Postgres-Debezium-Kafka-Clickhouse. Получение данных в Clickhouse через Kafka. Оптимизация производительности и решение возникающих проблем.
  19. Запросы в Clickhouse. Инфраструктура для работы с запросами. Применение clickhouse-client для оценки производительности, команда EXPLAIN и таблицы system.query_log и system.query_metric_log. Работа со статистикой столбцов.
  20. Фильтрация данных в Clickhouse. WHERE и PREWHERE. Применение вторичных индексов — set, minmax, bloom. Особенности фильтрации с LIKE и регулярными выражениями. Применение полнотекстовых индексов для фильтрации данных.
  21. Джойны в запросах Clickhouse. Специальные типы джойнов и ASOF джойны. Алгоритмы выполнения джойнов: hash, parallel hash, grace hash, full sorting, partial merge. Метод Direct join и применение словарей (dictionaries).
  22. Группировка и агрегатные функции в Clickhouse. Комбинаторы агрегатных функций. Оконные функции. Оптимизация группировки и расчета агрегатов.
  23. Сортировка в запросах Clickhouse. Применение первичных и вторичных индексов для оптимизации сортировки. Управление оперативной памятью при сортировке больших таблиц.
  24. Подзапросы, CTE и временные таблицы в Clikchouse. Особенности работы Clickhouse при декомпозиции запросов. Рекурсивные CTE.
  25. Сжатие и кэширование данных в Clickhouse. Настройка кэширования при выполнении запросов. Применение query cache.
  26. Пользовательские функций в Clickhouse и лямбда-выражения. Применение функций на внешних языках (Python и т.п.).