Разработка серверной части приложений
Расширенный курс
12
Авторские права
© Postgres Professional, 2020 год.
Авторы: Егор Рогов, Павел Лузанов
Использование материалов курса
Некоммерческое использование материалов курса (презентации,
демонстрации) разрешается без ограничений. Коммерческое
использование возможно только с письменного разрешения компании
Postgres Professional. Запрещается внесение изменений в материалы
курса.
Обратная связь
Отзывы, замечания и предложения направляйте по адресу:
Отказ от ответственности
Компания Postgres Professional не несет никакой ответственности за
любые повреждения и убытки, включая потерю дохода, нанесенные
прямым или непрямым, специальным или случайным использованием
материалов курса. Компания Postgres Professional не предоставляет
каких-либо гарантий на материалы курса. Материалы курса
предоставляются на основе принципа «как есть» и компания Postgres
Professional не обязана предоставлять сопровождение, поддержку,
обновления, расширения и изменения.
2
Разработчикам
DEV1, 4 дня
Базовый курс
для разработчиков серверной части
DEV2, 4 дня
Расширенный курс
QPT, 2 дня
Оптимизация запросов
Основы SQL
Е. П. Моргунов,
«PostgreSQL. Основы языка SQL»
Для разработчиков серверной части приложений мы предлагаем
несколько курсов.
Для прохождения всех курсов необходимы предварительные знания
основ языка SQL. Специального курса по языку SQL в нашей линейке
курсов нет, но существует множество книг и других образовательных
ресурсов, с помощью которых можно освоить SQL. Мы рекомендуем
книгу Евгения Моргунова «PostgreSQL. Основы языка SQL»:
Базовым курсом для разработчиков является курс DEV1, в котором
даются общие сведения об архитектуре PostgreSQL и использовании
основных объектов базы данных; изучается программирование на
стороне сервера на языках SQL и PL/pgSQL с использованием
основных типов данных (включая составной тип и массивы), а также
рассматривается взаимодействие с клиентской частью.
Данный курс DEV2 продолжает изучение серверной разработки на
более глубоком уровне.
В курсе QPT детально разбираются механизмы планирования и
выполнения запросов, рассматривается настройка параметров
экземпляра, связанных с производительностью, и изучаются
возможности для поиска проблемных запросов и их оптимизации.
3
Администраторам
DBA1, 3 дня
Базовый курс
по администрированию
DBA2, 4 дня
Настройка и мониторинг
QPT, 2 дня
Оптимизация запросов
DBA3, 2 дня
Резервное копирование
и репликация
Основы SQL
Е. П. Моргунов,
«PostgreSQL. Основы языка SQL»
Для администраторов мы предлагаем следующие курсы.
В базовом курсе DBA1 даются общие сведения об архитектуре
PostgreSQL, процессе установки, базовой настройки и управления
сервером. Рассматриваются основные задачи администрирования,
вопросы управления доступом. Приводится обзор резервного
копирования и репликации.
В курсе DBA2 обсуждается настройка различных конфигурационных
параметров исходя из понимания внутренней организации сервера;
говорится о мониторинге сервера с использованием обратной связи для
итеративной настройки параметров. Также рассматриваются настройки,
связанные с локализацией, управление расширениями и знакомство
с процедурой обновления сервера.
Курс DBA3 посвящен рассмотрению резервного копирования, а также
настройкам физической и логической репликации и сценариям ее
использования. Также дается общее представление о способах и
сложностях построения высокодоступных, масштабируемых кластеров.
Курс QPT является общим для разработчиков и администраторов.
Курсы по администрированию могут быть интересны и разработчикам,
желающим детальнее изучить внутреннее устройство PostgreSQL,
а также в случае, когда на проекте нет выделенной роли
администратора.
4
О курсе DEV2
Продолжительность: 4 дня
Предварительные знания
общие сведения об архитектуре PostgreSQL
уверенное владение SQL и PL/pgSQL
минимальные сведения о работе в Unix
Какие навыки будут получены
понимание внутренней организации сервера
полное использование возможностей, предоставляемых PostgreSQL
для реализации логики приложения
расширение возможностей СУБД для решения специальных задач
Основная идея курса – показать не просто базовые функции
PostgreSQL, но и его расширяемость: возможность дополнить
серверные механизмы собственным кодом, что позволяет использовать
PostgreSQL для решения самых разнообразных задач.
5
Используемые материалы
Подготовленная виртуальная машина
ОС Xubuntu
PostgreSQL 12 (два кластера)
набор расширений, в том числе сторонних
документация на русском языке
учебное веб-приложение «Книжный магазин 2.0»
pgAdmin 4
Учебные материалы
руководство слушателя
презентации, демонстрации, практические задания и их решение
(в форматах html и pdf)
В этом курсе мы показываем довольно много расширений (extensions),
включая сторонние. Это позволяет глубже раскрыть и подчеркнуть
идею курса о расширяемости PostgreSQL. Все расширения собраны
и установлены в виртуальной машине курса.
Если вы проходите курс самостоятельно, обязательно начните со
знакомства с Руководством слушателя. В числе прочего в нем
написано, где скачать и как использовать виртуальную машину курса
и прочие материалы. Все материалы курса доступны по адресу:
Выполнение практических заданий очень важно для получения навыков
работы с PostgreSQL. Обязательно старайтесь сначала самостоятельно
выполнить задания, а затем просмотрите предлагаемые нами решения,
даже если задание не вызвало вопросы. В решениях могут
содержаться дополнительные сведения, которые не упоминаются
в презентациях и демонстрациях.
Учебные материалы (презентации, демонстрации, практические
задания и их решения) доступны в двух форматах. Формат html удобен
для онлайн-работы, он позволяет копировать фрагменты текста и кода.
Формат pdf разбит на страницы и удобен для печати на бумаге.
6
Организационные вопросы
День: ~8 академических часов + обед (1час)
Каждая тема состоит из
презентации и демонстраций: ~30–50 мин
практических заданий: ~20–30 мин, включая перерыв
7
День 1
Архитектура
01. Изоляция
02. Внутреннее устройство
03. Очистка
04. Журналирование
05. Блокировки
Первый день занятий посвящен теоретической подготовке. Здесь
рассматриваются темы, знакомые по курсу DEV1, но на более
серьезном уровне. Полученные знания будут применяться на практике
в последующих темах курса.
8
День 2
«Книжный магазин»
06. Приложение 2.0
Расширяемость
07. Пул соединений
08. Типы для больших значений
09. Пользовательские типы данных
10. Классы операторов
Начиная со второго дня занятий, каждая тема содержит два набора
практических заданий: связанных с приложением «Книжный магазин»
(они отмечены значком книги) и дополнительных. За время, которое
отводится на задания (около 30 минут), выполнить всю практику
невозможно. Используйте дополнительные задания для
самостоятельной работы.
9
День 3
Расширяемость (продолжение)
11. Слабоструктурированные данные
12. Фоновые процессы
13. Асинхронная обработка
14. Создание расширений
15. Языки программирования
10
День 4
Расширяемость (продолжение)
16. Агрегатные и оконные функции
17. Полнотекстовый поиск
18. Физическая репликация
19. Логическая репликация
20. Внешние данные
В последних трех темах используется второй кластер PostgreSQL,
установленный в виртуальной машине курса.