Специализированных курсов PostgreSQL для системных аналитиков, направленных именно на их задачи, мало. Но специальное обучение по работе с PostgreSQL может быть полезным для системных аналитиков, так как они часто работают с базами данных и проводят анализ данных.
Данный курс предназначен для профессионалов, занимающихся анализом данных и желающих узнать о возможностях и особенностях работы с базой данных PostgreSQL.
Программа курса состоит из теоретического материала, включает практические примеры и задачи, а также дополнительные ресурсы для самостоятельного изучения.
По окончании курса участники получают сертификат об успешном завершении курса.
Изучение возможностей работы с базой данных PostgreSQL для анализа данных
• Курс предназначен для тех, кто хочет овладеть базами данных Postgres и применять их в своей работе системного аналитика
Обучение Postgres поможет системным аналитикам улучшить свои навыки работы с базами данных и проведения анализа данных.
1. Архитектура и структура баз данных Postgres
• Введение в Postgres. Особенности СУБД Postgres по сравнению с Oracle, Microsoft SQL Server, MySQL
• Таблицы и столбцы.
• Выбор типов данных для столбцов таблиц.
• Особенности системы типов данных в Postgres.
• Нормализация таблиц. Создание таблиц.
• Ограничения целостности данных в Postgres.
• Первичные и внешние ключи, ограничения уникальности, условия на значения (check constraints).
• Применение доменов (domains) и правил (rules) в Postgres.
• Пользовательские типы данных как дополнительная возможность обеспечения целостности данных.
• Работа с представлениями (views) в Postgres. Для чего нужны назначения. Создание обычных, материализованных и рекурсивных представлений.
2. PL/pgSQL
• Введение в язык PL/pgSQL. Основы синтаксиса, структура блоков BEGIN..END, символы строки в виде долларов $$. Работа с анонимными блоками PL/pgSQL.
• Переменные и константы в PL/pgSQL. Объявление переменных, присвоение значений, SELECT INTO для присвоения значений переменных из запросов. Переменные типа RECORD. Объявления %ROWTYPE.
• Синтаксические конструкции PL/pgSQL.
• Операторы условного перехода: IF и CASE.
• Циклы WHILE и FOR.
• Обработка исключений в PL/pgSQL. Блоки EXCEPTION, команды RAISE и ASSERT.
• Работа с курсорами в Postgres. Применение курсоров для прохода по набору записей.
• Создание пользовательских функций PL/pgSQL. Работа с параметрами IN и OUT, возврат значений из функции. Типы функций IMMUTABLE, STABLE и VOLATILE.
• Перегрузка функций и особенности функций, возвращающих таблицы.
• Создание пользовательских хранимых процедур в Postgres. Отличия хранимых процедур от функций.
• Триггеры и триггерные функции в Postgres.
• Виды триггеров, лучшие практики применения триггеров.
• Триггеры аудита изменений в таблицах.
• Создание функций Postgres на Python и Java. Особенности работы с функциями, созданными не на PL/pgSQL.
3. Оптимизация
• Мониторинг производительности при помощи системных представлений сервера Postgres. Представления pg_stat и pg_stat_io. Добавление дополнительных представлений производительности. Включение pg_stat_statements.
• Анализ архитектуры приложения и системы баз данных Postgres. Разделение данных на текущие и архивные. Виды баз данных: OLTP, Data Warehouse, staging databases, OLAP.
• Модификация существующих баз данных для разделения данных на текущие и архивные.
• Настройка подсистемы подключений к Postgres.
• Выбор типа драйвера подключения.
• Применение пулов подключений (connection pool).
• Анализ системы индексов. Применение представления pg_stat_user_tables, отношение idx_scan к seq_scan. Типы индексов в Postgres. Настройка оптимальной системы индексов для баз данных Postgres.
• Секционирование (partitioning) и шардинг (sharding) в Postgres. Распределение нагрузки по дискам и по набору серверов.
• Распухание (bloating) и фрагментация таблиц баз данных Postgres как особенности версионной системы изменений.
• Мониторинг подсистемы VACUUM и ее настройка.
• Анализ системы автоматического пересчета статистики в базах данных Postgres.
• Проверка адекватности статистики и настройка ручного пересчета статистики.
• Оптимизация запросов в Postgres. Выбор запросов для оптимизации. Команда EXPLAIN. • Применение параметров конфигурации на уровне сеанса.
• Развертывание модуля pg_hint_plans и применение хинтов в запросах. Лучшие практики при оптимизации запросов в Postgres.