Каталог курсов
Курсы High Tech
NEW Запросы в Clickhouse
Описание курса
Продолжительность: 3 дня (24 учебных часа).
В курсе 14 модулей, 12 лабораторных работ (на лабораторные работы, выполняемые под руководством преподавателя, отводится 50 % времени учебного курса).
Для кого предназначен курс:
- разработчики, которые используют Clickhouse для своих приложений.
- аналитики, которые работают с данными в Clickhouse.
- администраторы и специалисты службы сопровождения,
которым необходимо решать проблемы с производительностью запросов в Clickhouse.
Clickhouse — это очень своеобразная СУБД, в которой вроде бы есть запросы SQL, но они существенно отличаются от привычных запросов в Postgres/Oracle/SQL Server. Многие возможности запросов "методом тыка" обнаружить сложно. А, учитывая, что Clickhouse — это всегда большое количество данных, надо еще уметь анализировать метрики запросов и уметь их оптимизировать. Времени на то, чтобы самостоятельно разобраться со всеми тонкостями запросов в Clickhouse, может уйти много. Поэтому рекомендуем сделать это под руководством опытного преподавателя, с учетом опыта групп из множества разных предприятий.
По окончании курса Вы буду знать:
--------------------------------------
* особенности запросов в Clickhouse, метрики запросов и команда EXPLAIN, WHERE и PREWHERE,
* фильтрация, первичные и вторичные индексы, BLOOM-индексы, сортировка, джойны и словари в Clickhouse,
* группировка, подзапросы и CTE, кэширование и сжатие данных, столбцовая статистика, пользовательские функции.
Программа курса
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. Создание пользовательских функций в Clickhouse. Функции на основе лямбда-выражений и внешние функции.