Учебный курс «Запросы в Clickhouse»

Краткое содержание:

особенности запросов в Clickhouse, метрики запросов и команда EXPLAIN, WHERE и PREWHERE, фильтрация, первичные и вторичные индексы, BLOOM-индексы, сортировка, джойны и словари в Clickhouse, группировка, подзапросы и CTE, кэширование и сжатие данных, столбцовая статистика, пользовательские функции

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

Clickhouse — это очень своеобразная СУБД, в которой вроде бы есть запросы SQL, но они существенно отличаются от привычных запросов в Postgres/Oracle/SQL Server. Многие возможности запросов «методом тыка» обнаружить сложно. А, учитывая, что Clickhouse — это всегда большое количество данных, надо еще уметь анализировать метрики запросов и уметь их оптимизировать. Времени на то, чтобы самостоятельно разобраться со всеми тонкостями запросов в Clickhouse, может уйти много. Поэтому рекомендуем сделать это под руководством опытного преподавателя, с учетом опыта групп из множества разных предприятий. Заказывайте обучение!

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

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

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

План курса:

  1. Введение в Clickhouse SQL. Основные отличия от Postgres SQL, Oracle SQL и SQL Server Transact-SQL.
  2. Клиенты для написания запросов Clickhouse: DBeaver и clickhouse-client. В каких ситуациях выбирать каждый из клиентов. Тонкие настройки клиентов.
  3. Получение метрик запросов для оптимизации. Встроенные метрики clickhouse-client и команда EXPLAIN. Дополнительные модификаторы INDEXES, HEADER, DESCRIPTION, ACTIONS, JSON в EXPLAIN PLAN.
  4. Таблицы system.query_log и system.query_metrics для ретроспективного анализа запросов
  5. Оптимизация фильтрации. WHERE и PREWHERE. Первичные и вторичные индексы. Типы minmax, set и bloom для вторичных индексов. Применение проекций для ускорения фильтрации данных.
  6. Особенности фильтрации по текстовым данным в запросах Clickhouse. LIKE и регулярные выражения. Применение полнотекстовых индексов.
  7. Ограничение набора возвращаемых данных. LIMIT и FETCH.
  8. Сортировка в запросах Clickhouse. Сортировка в оперативной памяти и с использованием диска: max_bytes_before_external_sort. Индексы и проекции для ускорения сортировки.
  9. Синтаксис джойнов в запросах Clickhouse. Внутренние и внешние джойны. Джойны типа SEMI, ANTI, ANY, ASOF. Ситуации применения.
  10. Оптимизация джойнов в Clickhouse. Выбор алгоритма джойнов в запросе: hash join, parallel hash join, grace hash join, full sorting merge join, partial merge join. Direct join и применение словарей (dictionaries) как самый быстрый способ объединения таблиц.
  11. Группировка в запросах Clickhouse. Особенности применения агрегатных функций. Комбинаторы агрегатных функций: -If, -Array, -SimpleState, -State и т.п. ROLLUP и оконные функции.
  12. Декомпозиция в запросах Clickhouse. Особенности работы с подзапросами, Common Table Expressions и временными таблицами.
  13. Дополнительные возможности оптимизации запросов. Управление кэшированием и сжатием данных. Применение столбцовой статистики.
  14. Cоздание пользовательских функций в Clickhouse. Функции на основе лямбда-выражений и внешние функции.