Учебный курс «Запросы в Clickhouse»
Краткое содержание:
особенности запросов в Clickhouse, метрики запросов и команда EXPLAIN, WHERE и PREWHERE, фильтрация, первичные и вторичные индексы, BLOOM-индексы, сортировка, джойны и словари в Clickhouse, группировка, подзапросы и CTE, кэширование и сжатие данных, столбцовая статистика, пользовательские функции
Общие данные:
Clickhouse — это очень своеобразная СУБД, в которой вроде бы есть запросы SQL, но они существенно отличаются от привычных запросов в Postgres/Oracle/SQL Server. Многие возможности запросов «методом тыка» обнаружить сложно. А, учитывая, что Clickhouse — это всегда большое количество данных, надо еще уметь анализировать метрики запросов и уметь их оптимизировать. Времени на то, чтобы самостоятельно разобраться со всеми тонкостями запросов в Clickhouse, может уйти много. Поэтому рекомендуем сделать это под руководством опытного преподавателя, с учетом опыта групп из множества разных предприятий. Заказывайте обучение!
Продолжительность: 3 дня (24 учебных часа).
В курсе 14 модулей, 12 лабораторных работ (на лабораторные работы, выполняемые под руководством преподавателя, отводится 50 % времени учебного курса).
Для кого предназначен: разработчики, которые используют Clickhouse для своих приложений. Аналитики, которые работают с данными в Clickhouse. Администраторы и специалисты службы сопровождения, которым необходимо решать проблемы с производительностью запросов в Clickhouse
План курса:
- Введение в Clickhouse SQL. Основные отличия от Postgres SQL, Oracle SQL и SQL Server Transact-SQL.
- Клиенты для написания запросов Clickhouse: DBeaver и clickhouse-client. В каких ситуациях выбирать каждый из клиентов. Тонкие настройки клиентов.
- Получение метрик запросов для оптимизации. Встроенные метрики clickhouse-client и команда EXPLAIN. Дополнительные модификаторы INDEXES, HEADER, DESCRIPTION, ACTIONS, JSON в EXPLAIN PLAN.
- Таблицы system.query_log и system.query_metrics для ретроспективного анализа запросов
- Оптимизация фильтрации. WHERE и PREWHERE. Первичные и вторичные индексы. Типы minmax, set и bloom для вторичных индексов. Применение проекций для ускорения фильтрации данных.
- Особенности фильтрации по текстовым данным в запросах Clickhouse. LIKE и регулярные выражения. Применение полнотекстовых индексов.
- Ограничение набора возвращаемых данных. LIMIT и FETCH.
- Сортировка в запросах Clickhouse. Сортировка в оперативной памяти и с использованием диска: max_bytes_before_external_sort. Индексы и проекции для ускорения сортировки.
- Синтаксис джойнов в запросах Clickhouse. Внутренние и внешние джойны. Джойны типа SEMI, ANTI, ANY, ASOF. Ситуации применения.
- Оптимизация джойнов в Clickhouse. Выбор алгоритма джойнов в запросе: hash join, parallel hash join, grace hash join, full sorting merge join, partial merge join. Direct join и применение словарей (dictionaries) как самый быстрый способ объединения таблиц.
- Группировка в запросах Clickhouse. Особенности применения агрегатных функций. Комбинаторы агрегатных функций: -If, -Array, -SimpleState, -State и т.п. ROLLUP и оконные функции.
- Декомпозиция в запросах Clickhouse. Особенности работы с подзапросами, Common Table Expressions и временными таблицами.
- Дополнительные возможности оптимизации запросов. Управление кэшированием и сжатием данных. Применение столбцовой статистики.
- Cоздание пользовательских функций в Clickhouse. Функции на основе лямбда-выражений и внешние функции.