Егор Рогов

Postgres Professional

эксперт

Мастер-класс: Больше индексов, хороших и разных

"Не мог он GIN от SP-GiST-а, как мы ни бились, отличить", говорил классик. А вы можете? Этот мастер-класс посвящен индексам, которые хоть и не так часто используются, как обычное B-дерево, но могут сильно выручить в трудную минуту. Мы посмотрим, как устроены эти индексы и в каких случаях они могут быть успешно применены. Заодно поговорим и об особенностях индексного доступа в PostgreSQL. Чтобы провести время с пользой, от слушателей потребуется некоторое знакомство с PostgreSQL и умение читать планы несложных запросов.

Материалы мастер-класса

Резервную копию БД с демонстрационными данными можно скачать тут:

Слайды

Видео

Григорий Смолкин

Postgres Professional

инженер по эксплуатации

Резервное копирование PostgreSQL с помощью pg_probackup: высокая производительность и острая форма паранойи

Как бэкапировать PostgreSQL? Как хранить сделанные бэкапы? Как валидировать бэкап? Как валидировать PostgreSQL и можно ли ему вообще доверять? Можно ли доверять твоему инструменту? Как сделать всю эту паранойю удобной и производительной, если СУБД не помогает в этом деле? На какие компромиссы можно идти и на какие ни в коем случае нельзя? Создавая свой инструмент бэкапирования, мы были вынуждены искать ответы на эти и многие другие вопросы, о чем и хотелось бы рассказать.

Слайды

Видео

Иван Панченко

Postgres Professional

заместитель генерального директора

Полнотекстовый поиск: от A до Ω

Мастер-класс о том, как правильно организовать полнотекстовый поиск в Postgres, с учетом последних новинок. Все рецепты для создания готового приложения: конфигурация словарей, индексы, фасетный поиск, многоязыковой поиск, нечеткий поиск, подсказки, ранжирование. Участники мастер-класса получат тестовую базу данных, на которой смогут проделать все нужные упражнения.

Слайды

Видео

Иван Панченко

Postgres Professional

заместитель генерального директора

Программирование серверных процедур на языках PL/Perl, PL/Python, PL/v8

Мастер-класс покажет особенности серверного программирования на указанных языках. Будут рассмотрены примеры и произведено сравнение данных языков и их возможностей в серверной среде PostgreSQL для различных практических задач.

Слайды

Видео

Olivier Courtin

DataPink

Owner & DataScientist

Мастер-класс: продвинутый анализ пространственных данных с помощью PostgreSQL, PostGIS и Python

На мастер-классе будут рассмотрены: продвинутый анализ пространственных данных на чистом PostGIS, включая новейшие функции PostGIS; приведение в соответствие разных типов данных в PostgreSQL и Python (массивы в NumPy, таблицы в Pandas); секреты эффективной работы с инструментами и средами обработки данных (Jupyter, dataviz и др.); дальнейшее развитие с помощью GeoDataScience, библиотек и фреймворков Python, сочетаемых с PostgreSQL/PostGIS, включая технологии машинного и глубокого обучения.

Видео

Алексей Клюкин

Zalando SE

Database Engineer

Александр Кукушкин

Zalando SE

Database Engineer

Мастер-класс: Управление высокодоступными PostgreSQL кластерами с помощью Patroni

Patroni - это Python-приложение для создания высокодоступных PostgreSQL кластеров на основе потоковой репликации. Оно используется такими компаниями как Red Hat, IBM Compose, Zalando и многими другими. С его помощью можно преобразовать систему из ведущего и ведомых узлов (primary - replica) в высокодоступный кластер с поддержкой автоматического контролируемого (switchover) и аварийного (failover) переключения. Patroni позволяет легко добавлять новые реплики в существующий кластер, поддерживает динамическое изменение конфигурации PostgreSQL одновременно на всех узлах кластера и множество других возможностей, таких как синхронная репликация, настраиваемые действия при переключении узлов, REST API, возможность запуска пользовательских команд для создания реплики вместо pg_basebackup, взаимодействие с Kubernetes и т.д.

Слушатели мастер-класса подробно узнают, как работает Patroni, получат практические навыки настройки высокодоступных кластеров на его основе, познакомятся с различными дополнительными возможностями и поучаствуют в диагностике проблем. Будут рассмотрены следующие темы:

  • область применения: какие задачи HA успешно решаются Patroni
  • обзор архитектуры
  • создание тестового кластера
  • утилита patronictl
  • изменение конфигурации PostgreSQL для кластера, управляемого Patroni
  • мониторинг с помощью API
  • подходы к переключению клиентов
  • дополнительные возможности: ручное переключение, перезагрузка по расписанию, режим паузы
  • настройка синхронной репликации
  • расширяемость и универсальность
  • частые ошибки и их диагностика

Для полного участия в мастер-классе вам понадобится ноутбук с установленным git, vagrant и virtual box.

Vagrant можно загрузить со страницы https://www.vagrantup.com или установить с помощью пакетов в вашем дистрибутиве. Virtualbox: https://www.vagrantup.com

После установки Vagrant и Virtualbox нужно выполнить:

$ git clone https://github.com/alexeyklyukin/patroni-training
$ cd patroni-training
$ vagrant up

После того, как patroni box поднимется и установит необходимые пакеты к нему можно подключиться с помощью vagrant ssh.

Видео

Иван Фролков

Postgres Professional

инженер-консультант

Pgpro_scheduler и криптовалютные транзакции

Pgpro_scheduler, помимо основной функции выполнение заданий по расписанию, способен выполнять цепочки связанных транзакций. Это может использоваться в различных сценариях асинхронной обработки данных.

Данный мастер-класс предназначен для демонстрации использования возможностей pgpro_scheduler для обеспечения надежной обработки последовательности транзакций на примере отправки криптовалют.

pgpro_scheduler – расширение, входящее в состав Postgres Pro Enterprise.

Слайды

Видео

Брюс Момжиан

EnterpriseDB

Senior Database Architect

Изучаем CTE и оконные функции

От разработчиков часто требуются результаты, которые трудно получить обычными SQL-запросами. К счастью, стандартом SQL предусмотрены мощные средства - общие табличные выражения (CTE) и оконные функции, который весьма расширяют круг возможного.

SQL является декларативным языком, что означает, что пользователь только формирует запрос, с база данных определяет, как его следует оптимально исполнять. CTE позволяют запросам быть более императивными, дают возможность организовать циклы и обработку иерархических структур, что обычно делается только в императивных языках.

Обычные SQL-запросы возвращают наборы строк, в которых одна строка не зависит от других. Оконные функции позволяют добавлять в запрос поля, значения которых зависят от других строк.

Этот мастер-класс поможет прикладным разработчикам в использовании CTE, что позволит перенести часть логики из приложения в SQL-код, и разъяснит возможности оконных функций и особенности их использования.

Видео

Часть I «Programming the SQL Way with CTE»


Часть II «Postgres Window Magic»


Слайды

Слайды