Александр Любушкин

ООО "ФОРС Телеком"

Технический директор

Юлия Голубева

ООО "ФОРС Телеком"

Ведущий эксперт

Новое развитие LUI (Live Universal Interface) - LUI4ORA2PG, инструмент миграции

русский

В докладе будет рассказано о новом инструменте миграции прикладных систем из среды Oracle в среду Postgres. Инструмент разработан на основе средства ora2pg (Gill Darold) и отечественного средства разработки приложений LUI. О LUI делались доклады на конференциях в 2019-м и 2020-м годах:

Алексей Лесовский

Data Egret

PostgreSQL DBA

Noisia - генератор аварийных и нештатных ситуаций в PostgreSQL

русский

Noisia это результат всех предыдущих попыток собрать в одном месте все мои инструменты для воспроизведения нештатных и аварийных ситуаций в Postgres.

Noisia это утилита которая позволяет легко и непринужденно создавать аварийные ситуации в БД. В этом докладе я расскажу зачем потребовалось создавать такие ситуации, как теперь в этом помогает Noisia и где еще может пригодиться этот инструмент. Также хочу поделиться планами развития на будущее.

Андрей Фефелов

Mastery.pro

Технический директор

Как обфусцировать базу в Postgres для задач нагрузочного тестирования веб-приложений

русский

Postgres - отличная база данных для высоконагруженных веб-приложений. В свою очередь для таких веб-приложений периодически встает задача нагрузочного/стресс тестирования. Кроме очевидных сложностей: эмуляции рабочего окружения близкого к продуктовому и генерации трафика есть задача подготовки базы данных для тестового окружения. В эпоху борьбы за приватность персональных данных (152-ФЗ, GDPR, HIPAA) использование базы с прода выглядит плохой идеей. Выход один - обфусцировать данные.

Существуют различные инструменты для обфускации данных в Postgres. В докладе я расскажу, какие из них мы выбрали и почему, с какими трудностями столкнулись во время использования, насколько удачно решили задачу.

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

Иван Фролков

Postgres Professional

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

Constraints или о том, как попытаться спокойно жить

русский

Часто можно услышать, что ограничения целостности снижают производительность, все время мешают в работе и вообще в целом бесполезны, база - это всего лишь хранилище и вообще там не должно быть никакой логики. Я расскажу, почему это не так и чем может обернуться такой бездумный подход.

Слайды

Михаил Цветков

Intel

Технический директор

Технологии Intel для PostgreSQL

русский

Расскажем о продуктах и решениях Intel для сегмента Data Platform Group: серверных процессорах Xeon 3rd Gen (4S Cooper Lake), памяти PMEm 200 Series, и FPGA.

Андрей Зубков

Postgres Professional

Старший инженер

Анализатор исторической нагрузки pg_profile/pgpro_pwr и его новые возможности

русский

Речь пойдет о простом инструменте стратегического анализа исторической нагрузки. Расширение предназначено для поиска проблем производительности в базах данных Postgres. Расскажу о принципах работы расширения, его применимости, возможностях и развитии. У pg_profile появилась расширенная ветка pgpro_pwr, предназначенная для работы в дистрибутивах PostgresPro с расширенным набором статистик производительности. Покажу на простых примерах преимущества, доступные в базах PostgresPro Enterprise Edition и PostgresPro Standard Edition.

Слайды

Василий Пучков

ООО «Газпромнефть – ЦР»

Руководитель направления СУБД

Разработка интеграционной базы производственных данных нефтебаз на базе PostgreSQL

русский

Архитектурный подход как основа устойчивого решения. Старые и новые технологии - единство и борьба противоположностей. Информационная безопасность и требования бизнеса - есть ли компромисс?

Andreas Scherbaum

Adjust GmbH

Главный эксперт по СУБД

Управление PostgreSQL с помощью Ansible

english

Ansible — открытый бесплатный инструмент для управления конфигурацией и развёртываниями, который можно применять для управления серверами и установленным на них программным обеспечением. В данном докладе мы вкратце обсудим сам Ansible, а затем объясним, как использовать его для установки и настройки PostgreSQL на сервере. Примеры будут демонстрироваться на протяжении всего доклада.

Дмитрий Урсегов

Postgres Professional

Руководитель группы разработки

Шардман - естественный подход к шардингу в PostgreSQL

русский

Объем данных, с которым работают современные корпоративные и интернет системы, постоянно растет. При этом все сложнее становится иметь и синхронизировать несколько копий данных в разных системах. Возникает необходимость работать с большими объемами данных непосредственно в транзакционной СУБД, Часто такое требование накладывает и логика приложений, которым необходимы результаты в реальном времени. В докладе рассмотрим какой может быть универсальная распределенная транзакционная СУБД. Разберем такие аспекты как типы нагрузки и их приоритизация, динамическое выделение ресурсов, уровень консистентности. Расскажем на каких инструментах в PostgreSQL можно построить такую систему, что у нас уже получилось и какие задачи еще предстоит решить.

Henrietta Dombrovskaya

Braviant Holdings

Зам.директора по СУБД

NORM - фреймворк без ORM

english

Хорошо известно, что, хотя производительность базы данных велика и каждый запрос выполняется за миллисекунды, общее время отклика приложения может быть медленным, поэтому пользователи могут долго ждать ответа. Мы знаем, что проблема не в базе данных, а в том, как разработчики приложений с ней общаются. В частности, речь идет об ORM - Object-Relational Mappers. Разработчики баз данных ненавидят их, но разработчики приложений любят их, потому что они позволяют разрабатывать приложения без каких-либо знаний о внутреннем устройстве СУБД. В результате производительность системы часто оказывается неприемлемо низкой.

Единственный способ изменить это - предоставить разработчикам приложений такой же простой в использовании инструмент, как ORM, но позволяющий избежать распространенных ошибок ORM. Вот почему мы разработали NORM - No-ORM Framework. Во время этой презентации мы рассмотрим примеры кода из репозитория https://github.com/hettie-d/NORM и узнаем, как создавать «транспортные объекты» для эффективной передачи данных между приложениями и базами данных.

Павел Борисов

Postgres Professional

разработчик PostgreSQL

Ускорение быстрого текстового поиска с помощью индекса RUM

русский

Быстрый текстовый поиск в PostgreSQL существенно ускоряется, если использовать обратные составные индексы по лексемам внутри типа tsvector. Индекс RUM - это свободное расширение, основанное на индексе GIN. Оно индексирует не только лексемы, но и их положение в текстовом поле, а также включает дополнительную информацию - вес лексемы, это позволяет полнее поддерживать возможности tsvector.

До недавних пор запросы с весами лексем в индексе RUM требовали перепроверки по таблице. Моя модификация (2020) в разы ускоряет такие запросы, делая их index-only.

В докладе будут представлены различные сценарии использования быстрого текстового поиска и применение индекса RUM для его существенного ускорения, а также бенчмарки по сравнению с встроенным в PostgreSQL индексом GIN.

Олег Бартунов

Postgres Professional

генеральный директор

Никита Глухов

Postgres Professional

Разработчик

JSONB изнутри

русский

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

Арсений Шер

Postgres Professional

Разработчик

Консенсус, Postgres, Мультимастер

русский

Postgres Pro Multimaster - это расширение Postgres (и набор патчей для ядра), обеспечивающее высокую доступность (HA) со строгой согласованностью и масштабируемостью чтения. Он образует симметричный кластер без общего доступа, синхронно реплицирующий данные и автоматически выполняющий аварийное восстановление. В течение последнего года мы приложили значительные усилия, чтобы убедиться и доказать, что согласованность сохраняется во всех сценариях. Новая версия, которая будет выпущена как часть Postgres Pro Enterprise 13, использует алгоритм Paxos для определения результата транзакции и оригинальный протокол, управляющий процессом восстановления; мы использовали TLA+ и TLC model checker для проверки его правильности. Я расскажу, как все это работает и почему в некоторых случаях multimaster может быть привлекательной альтернативой традиционным HA решениям на основе потоковой репликации.

Multimaster теперь имеет открытый исходный код и доступен по адресу: https://github.com/postgrespro/mmts

Чтобы сделать доклад менее узкоспециализированным и более привлекательным для широкой аудитории, в первой части я расскажу о том, как в целом современные СУБД (в основном так называемые NewSQL СУБД) обеспечивают отказоустойчивость. В частности, я остановлюсь на следующих моментах:

что такое строго согласованная СУБД и какие накладные расходы с этим связаны; что такое распределённый консенсус, Paxos, Raft; как они здесь помогают?

Я не буду пытаться объяснять какие-либо алгоритмы построчно; это едва ли осмысленно с учетом ограничений по времени, и на эту тему есть много полезной литературы. Цель здесь скорее в том чтобы познакомить с областью и задать в ней ориентиры.

Егор Рогов

Postgres Professional

эксперт

Новое в учебных курсах Postgres Professional

русский

Образовательные проекты нашей компании создаются, чтобы помочь в изучении PostgreSQL. В прошлом году мы сосредоточились на курсах для прикладных разработчиков: обновили базовый курс DEV1 и выпустили совершенно новый курс DEV2. Что изменилось в нашем подходе к учебным материалам, как мы видим дальнейшее развитие курсов и есть ли у нас что-то кроме них, будут ли обновлены курсы для администраторов и как это отразится на сертификации – обо всем этом я и расскажу.

Christopher Travers

Adjust GmbH

ИТ директор

Когда всё идёт не так: как надо и как не стоит реагировать на инциденты при поддержке СУБД

english

Однажды в Adjust мы столкнулись с проблемой скорого достижения предельного значения xid в очень централизованной базе данных из-за длительной остановки autovacuum. Поскольку мы заметили предупреждения за 5 часов до надвигающейся катастрофы, мы смогли минимизировать влияние проблемы на клиентов. Приходите на доклад, чтобы узнать, как мы использовали это время для подготовки и какие уроки это может преподать всем, кто сталкивается с необычными проблемами в больших базах данных.

David Steele

Crunchy Data

Главный архитектор СУБД

Лучшие практики для бэкапов с помощью pgBackRest

english

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

В этом докладе мы рассмотрим лучшие практики резервного копирования баз данных и способы их реализации с помощью pgBackRest, в том числе:

  • архивирование и хранение журнала предзаписи (WAL);
  • частоту снятия резервных копий и срок их хранения;
  • достижение целей по времени / точке восстановления;
  • варианты конфигурации;
  • обоснование с точки зрения производительности.

Bo Peng

SRAOSS, Inc. Japan

Старший инженер-разработчик

Развёртывание PostgreSQL-кластера с балансировщиком запросов и мониторингом в Kubernetes

english

Kubernetes - это платформа оркестровки контейнеров с открытым исходным кодом для автоматизации развертывания, масштабирования и управления контейнерами приложений. В настоящее время все больше и больше приложений развертываются в контейнерах на Kubernetes.

Есть несколько решений для запуска кластера PostgreSQL на Kubernetes. Однако эти решения не предусматривают балансировку нагрузки. В этом выступлении я покажу вам, как объединить PostgreSQL-оператор с Pgpool-II для развертывания в Kubernetes кластера PostgreSQL с возможностью балансировки нагрузки.

Мониторинг - очень важная часть для любого реального продакшна. Хотя Kubernetes предоставляет базовый способ мониторинга состояния кластера PostgreSQL, этого недостаточно для управления кластером PostgreSQL в продакшне. Важным улучшением версии Pgpool-II 4.2 является возможность вывода более полезной статистики кластера PostgreSQL. В этом докладе я объясню, как отслеживать и визуализировать статистику кластера PostgreSQL в Prometheus для расширенного мониторинга кластера.

Bruce Momjian

EnterpriseDB

Senior Database Architect

Postgres и искусственный интеллект в современном мире

english

Искусственный интеллект, машинное обучение и глубокое обучение — это взаимосвязанные концепты, которые пытаются решить проблемы, бросающие вызов традиционным вычислительным решениям — с помощью них обнаруживают мошенничество, распознают голос и определяют релевантность результатов поиска. Несмотря на то, что они противостоят традиционному вычислению, они требуют больших вычислительных ресурсов — вплоть до вычисления миллионов вероятностей и весов. Хотя эти вычисления могут выполняться вне базы данных, машинное обучение внутри базы данных, близко к тому, где хранятся данные, даёт определенные преимущества. В этой презентации будет разъяснено, как выполнять машинное обучение в базе данных под управлением Postgres.

Слайды

Иван Чувашов

ООО ОККО

Ведущий инженер

Жизнь DBA в онлайн-кинотеатре "OKKO"

русский

Okko — один из самых больших легальных онлайн-кинотеатров в России. В нашем каталоге представлено 60 000 фильмов, мультфильмов и сериалов. С момента запуска сервис посетили более 20 млн пользователей. Ежемесячная аудитория составляет 2,8 млн человек Все эти цифры говорят о надежном высоконагруженном сервисе.

В своем докладе я, как DBA, буду говорить преимущественно о базах данных (PostgreSQL, Cassandra, Redis), которые используются в компании. Подробно рассмотрим PostgreSQL на темы высоких нагрузок, мониторинга, оптимизации, резервного копирования и восстановления.

Yana Krasteva

Swarm64

Вице-президент по маркетингу

Современное хранилище данных на основе PostgreSQL

english

Построение хранилища данных на основе PostgreSQL имеет долгую историю. Netezza, Redshift и Greenplum превратили определенные релизы PostgreSQL в решения для хранения данных. В настоящее время, с учетом тенденции к повышению производительности PostgreSQL (улучшение секционирования, статистики, JIT-компиляция и т. д.) и наличия продвинутых расширений, таких, как Swarm64 Data Accelerator, вы можете создать современное, надёжное и многофункциональное хранилище данных. В этом докладе будут рассмотрены тенденции PostgreSQL и хранилищ данных и затронуты ключевые аргументы в пользу выбора PostgreSQL для построения хранилища данных.

Андрей Лепихов

Postgres Professional

Программист

Постгрессовый планнер с памятью

русский

Постгрес умеет строить оптимальные планы запросов для большинства практических случаев. Однако иногда, по объективным причинам, для сложных запросов или из-за ошибок в самом планнере, он может ошибаться и выдавать неоптимальный план. Из-за этого, время выполнения такого запроса может возрастать в десятки раз. Если запрос выполняется часто, то из раза в раз этот запрос выполняется дольше, чем мог бы, и СУБД в целом выдает меньший TPS. Если планнер сможет фиксировать свои ошибки и учитывать их при последующем планировании того же запроса, то это позволит улучшать характеристики СУБД в процессе её эксплуатациии. Мы представляем результаты разработки расширения для СУБД PostgreSQL, которое хранит историю выполнения запросов и реализует рекомендательный механизм для планнера. Показываем, как знание о ранее выполнявшихся запросах позволяет улучшить выполнение последующих.

Алексей Фадеев

Sibedge

Старший разработчик .NET, евангелист Postgres

Multicorn Foreign Data Wrapper против plpython

русский

Технология Multicorn позволяет разрабатывать FDW на языке Python, что гораздо проще и быстрее создания FDW на языке C. Однако есть и обратная сторона, Multicorn FDW хорошо работают с примитивными условиями WHERE, но на чуть более сложных случаях возникают трудности, про которые я расскажу. Случаи будут рассмотрены на примере моего Multicorn FDW для получения данных OpenStreetMap. Так же я покажу примеры использования одного и того же кода в Multicorn FDW и функции на plpython, в том числе сравнение производительности. В заключение поделюсь своими выводами, когда лучше использовать plpython, а когда Multicorn FDW.

Дорофей Пролесковский

Kontur

Head of Product

Что нового в PostGIS 3.1

русский

PostGIS - расширение для работы с пространственными данными в PostgreSQL. В этом докладе будут рассмотрены все последние изменения в экосистеме вокруг PostGIS с комментариями от разработчика.

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

Postgres Professional

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

Новости и роудмап СУБД Postgres Pro

русский

Сооснователь Postgres Professional расскажет о работе компании над СУБД Postgres Pro, опишет её отличия от PostgreSQL и обозначит направления её дальнейшего развития.

Слайды

Александр Никитин

Data Egret

Администратор баз данных

Неочевидные моменты процесса копирования и переноса баз данных и кластеров PostgreSQL

русский

Копирование и перенос баз данных и кластеров PostgreSQL, казалось бы, что может быть проще?

Однако, практика показывает, что даже в таких простых действиях можно запутаться. Во время доклада я покажу какие подводные камни могут подстерегать вас в процессе копирования/переноса баз данных и кластеров PostgreSQL. Попробуем ускорить эти операции, посмотрим, с какими неожиданными проблемами вы можете столкнуться при выполнении этих, казалось бы, простых действий.

Julien Rouhaud

VMware

Разработчик

Как перестать бояться обновлений glibc

english

PostgreSQL использует системные библиотеки правил сортировки, например, glibc или ICU, для расположения текста в определённом порядке. Общеизвестно, что необходимо принять меры предосторожности на случай, если библиотека изменит порядок сортировки для какого-либо правила. Любой индекс, который использовал старый порядок, вероятно, будет повреждён после установки новой версии библиотеки.

В данном докладе мы рассмотрим улучшения, которые войдут в PostgreSQL 14 и помогут отслеживать версии правил сортировки, обнаруживать и устранять возможные повреждения индексов, вызванные обновлением библиотек. Мы также обсудим работу, которая выполняется сейчас в целях дальнейшего улучшения этого процесса.

Yugo Nagata

SRA OSS, Inc. Japan

Руководитель исследований

Автоматическое инкрементальное обновление материализованных представлений

english

Материализованное представление служит для хранения результатов запросов определения представления в БД, чтобы добиться более быстрого ответа на запрос. Однако данные в представлении устаревают после изменения базовых таблиц. Следовательно, для поддержания актуальности содержимого необходимо обновлять представление. В PostgreSQL есть команда REFRESH MATERIALIZED VIEW для обновления материализованного представления, но эта команда вычисляет его содержимое с нуля, что неэффективно в случаях, когда изменяется только небольшая часть базовой таблицы.

Инкрементальное обновление представлений (IVM) - это метод эффективного обновления материализованных представлений, который вычисляет и применяет к материализованным представлениям только инкрементальные изменения вместо повторного вычисления. Эта функциональность требуется для быстрого обновления материализованных представлений, но еще не реализована в PostgreSQL.

Поэтому мы разработали IVM для PostgreSQL и предлагаем реализовать его в качестве основной функции. Патч сейчас обсуждается в списке рассылки hackers. Наша реализация делает возможным автоматическое инкрементальное обновление материализованных представлений при изменении базовой таблицы. Вам не нужно писать собственную триггерную процедуру для обновления представлений. После продолжительной работы нашей команды текущая реализация IVM поддерживает некоторые возможности аггрегации, подзапросы, соединение одной таблицы (self-join), внешние соединения (outer join) и CTE (предложения WITH) в запросе определения представления. Результат оценки производительности с использованием запросов TPC-H показывает, что наша реализация IVM может обновлять материализованное представление в 200+ раз быстрее, чем повторное вычисление с помощью команды REFRESH.

В данном докладе мы опишем нашу реализацию IVM и ее возможности.

Simon Riggs

Enterprise DB

Эксперт по PostgreSQL, ответственный за стратегическое развитие и технические коммуникации

PostgreSQL и стандарты SQL

english

PostgreSQL - одна из СУБД, в наибольшей степени соответствующая стандартам. В этом докладе будет рассмотрено влияние Постгреса на стандарт SQL и фичи из стандарта, которые были релизованы в Постгресе, в том числе фичи, планирующиеся в 14й и последующих версиях.

Kohei KaiGai

HeteroDB

Главный архитектор и генеральный директор

GPU-версия PostGIS и индекса GiST

english

В рамках данного доклада мы представим GPU-версию PostGIS и индекса GiST, которую мы разработали в качестве новой функциональности PG-Strom.

Сегодня наши устройства (например, мобильные телефоны) динамически генерируют геолокационные данные. Это часто используют для маркетинга на основе местоположения устройства, доставки push-уведомлений, оповещения о чрезвычайных ситуациях, и так далее. Люди часто используют технологию GIS для получения данных о пользователях, находящихся в данный момент в данном месте. Даже если определения географических областей представляют собой сложные многоугольники, функции PostGIS могут генерировать правильные пересечения, однако это часто требует интенсивных вычислительных нагрузок. Графический процессор (GPU) был разработан для массовых параллельных вычислений с тысячами ядер на чип и более. Мы разработали расширение PG-Strom для частичного выполнения SQL-запросов на устройствах GPU. В новом релизе PG-Strom v3.0 будет добавлена поддержка для нескольких функций PostGIS и GiST-индексов для выполнения ресурсоёмких вычислений с обработкой геолокационных данных.

В рамках этого доклада мы расскажем о создании этой технологии, её использовании, реализации и представим результаты сравнительного тестирования для GPU-версии PostGIS и GiST-индекса.

Константин Евтеев

X5 FoodTech

Главный архитектор

Формирование отчетов и аналитики в реальном времени с PostgreSQL.

русский

В современном мире операционная отчетность и аналитика в реальном времени становятся базовой потребностью. Существует огромное количество инструментов, практик и подходов, которые в свою очередь требуют различной экспертизы и ресурсов. В рамках данного выступления расскажу, как может происходить развитие с помощью PostgreSQL. Подводные камни при использовании различных схем. Поговорим про вопросы качества данных и производительности. Доклад будет интересен как тем, кто находится на начальном этапе, так и для практиков с многолетним опытом (буду рад горячим обсуждениям и вопросам после доклада) План доклада: 1. Эволюция построения отчетности - миграция с OLTP на OLAP. 2. Вызовы организации доставки данных в DWH. 3. Масштабирование архитектуры с ростом данных. 4. Вопросы качества данных. 5. Сохранение стабильности при большом кол-ве изменений. 6. Различные подходы по организации работ команды DWH. 7. И конечно же успешно решенные нами вызовы (pgAgent, PGWatch, работа с фс, новое прочтение postgresql.conf).

Robert Haas

EnterpriseDB

Вице-президент, руководитель исследований в сфере СУБД

Повреждение данных: как его избежать, обнаружить и обеспечить восстановление

english

Повреждение данных в PostgreSQL может происходить по ряду причин, в числе которых аппаратные ошибки, программные сбои и ошибки пользователя. В данном докладе я расскажу о своём опыте работы с повреждёнными базами. В частности, я упомяну о частых причинах повреждения данных в базе, среди которых процедурные ошибки при снятии резервных копий или восстановлении из них. Также я остановлюсь на частых последствиях повреждения данных в базе - например, ошибках, которые говорят о несоответствии между таблицей и ее индексами либо таблицей и TOAST-таблицей. Также я уделю некоторое внимание техникам, которые используют для восстановления базы или исправления ошибок после повреждения данных, в том числе моему опыту использования pg_resetxlog. Основой для данного доклада послужили реальные кейсы, с которыми я сталкивался в ходе работы с клиентами EnterpriseDB. Надеюсь, что они будут полезны разработчикам PostgreSQL для возможных улучшений этой СУБД, а пользователи получат представление о том, как избежать повреждения данных, обнаруживать его, если оно произошло, и справляться с ним.

Николай Рыжиков

Health Samurai

CTO

SQL данными

русский

Почти каждое бизнесс приложение является в значительной степени генератором запросов к базе данных. Как можно легко строить запросы и делать их композицию? В этом докладе я расскажу про интересный подход из мира clojure, в котором sql записывается "данными" (data dsl) и какие возможности это открывает - от композиции и безопасного sql до макросов и анализа запросов.

Андрей Бородин

Яндекс

Руководитель подразделения разработки РСУБД с открытым кодом

Евгений Дюков

Yandex

Старший разработчик

Эксплуатация высокодоступных РСУБД с открытым исходным кодом в облачном окружении

русский

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

Dimitri Fontaine

Microsoft

Postgres Contributor

Архитектуры с Postgres в продакшне

english

При использовании PostgreSQL в продакшне крайне важно реализовать стратегию высокой доступности. В случае с сервисом БД требования к высокой доступности будут касаться как самого сервиса, так и набора данных.

В рамках данного доклада мы попробуем определить потребности вашей конкретной продакшн-среды в высокой доступности и постараемся выполнить необходимые требования с использованием открытых бесплатных инструментов, разработанных для PostgreSQL. В частности, мы рассмотрим многие возможности, которые можно реализовать для Postgres, чтобы превратить его из обычного набора инструментов в реально работающий. Что это означает в контексте высокой доступности? Как выполнить эти требования?

Daniele Varrazzo

Codice Lieve

Директор

psycopg3: как Питон полюбил Постгрес

english

На сегодняшний день Python является одним из наиболее часто используемых языков программирования в мире. Он прост в изучении и использовании и легко совместим с любыми известными сервисами и протоколами. psycopg2 - наиболее часто используемый драйвер PostgreSQL для Python: он обеспечивает хорошую производительность и делает взаимодействие между ЯП и СУБД максимально удобным.

За последние годы Python существенно изменился, и его первоклассная поддержка асинхронного программирования меняет способ написания новых программ. В PostgreSQL также было внесено множество изменений, поэтому требуется новое поколение драйвера, который позволит питонистам использовать все возможности Postgres по максимуму.

psycopg3 - это новое поколение наиболее часто используемой библиотеки-адаптера Python-PostgreSQL: она предлагает знакомый интерфейс и удобный процесс обновления, кроме того, она спроектирована для получения максимальной производительности от базы данных и ЯП: она поддерживает асинхронное программирование, связываемые переменные (prepared statements), двоичные параметры.

psycopg3 также экспериментирует с инновационной поддержкой JSONB и конвейерной обработкой запросов! Приходите и узнайте, что нового происходит на стыке вашего любимого языка программирования и базы данных!

Анастасия Лубенникова

Postgres Professional

Разработчик

Встроенное секционирование в PostgreSQL

русский

В этом докладе мы сравним встроенное декларативное секционирование PostgreSQL со сторонними расширениями pg_pathman и pg_partman, чтобы понять каких возможностей пока не хватает в ядре. Кроме того, я расскажу, над какими фичами в этой области сейчас активно работает сообщество и чего можно ожидать в релизе PostgreSQL14.

Дмитрий Долгов

Zalando SE

Senior Software Engineer

Сколько нужно инженеров, чтобы скобки заработали?

русский

Недавно появившийся в PostgreSQL, jsonb subscripting не выглядит так же захватывающе, как другие улучшения в jsonb. Но те изменения, которые видны пользователю - всего лишь верхушка айсберга. Как много людей было вовлечено в разработку, и какие решения были сделаны в дизайне? Как много времени это заняло, и какие хорошие/плохие идеи существуют для продвижения патча? Эти и несколько других вопросов будут целью это презентации.

Alicja Kucharczyk

Microsoft

EMEA Global Blackbelt OSS Data Tech Specialist

Sushant Pandey

Microsoft

Engineering Architect in the Microsoft India team specializing in relational databases.

История одной миграции

english

В данном рассказе мы хотим рассказать о том, как команда Microsoft, созданная из двух различных команд, работала над проектом, решала проблемы миграции, используя ora2pg, и смогла доказать, что Postgres Single Server может демонстрировать хорошую производительность наравне с Oracle Exadata. Мы расскажем о наших методах работы, а также о ряде основных проблем технического характера, с которыми мы столкнулись, включая миграцию выражений BULK COLLECT, иерархических запросов, курсорных выражений REF CURSOR и других, более сложных конструкций Oracle.

Наша история о практическом подтверждении гипотезы, которое доказало, что Postgres может демонстрировать такую же производительность, как Oracle Exadata. Схема мигрируемой БД была не самой простой. Скорее, наоборот. Код был нагружен динамическими запросами, выражениями BULK COLLECT, вложенными циклами, операторами CONNECT BY, глобальными переменными и множеством зависимостей. Инструмент Ora2pg очень помог нам с преобразованием схемы БД, но всё равно осталось много работы, которую можно было сделать только вручную. Оценки, которые мы получили благодаря инструменту, также оказались очень далеки от истины, поскольку требовалась не просто миграция кода, а изменение его архитектуры. В рамках нашего доклада мы рассмотрим следующие подтемы:

  • Как (не) работают оценки
  • Как мы справились с миграцией выражений BULK COLLECT
  • Почему мы избавились от выражений REF CURSOR
  • Как мы застряли на фазе тестирования одного из пакетов и как помощь друга помогла нам в решении этой проблемы.
  • Как мы справились с иерархическими запросами и детализацией иерархии

Pavel Stehule

freelancer

Независимый консультант и разработчик

Как использовать pspg

english

pspg - это unix-совместимый инструмент для постраничного просмотра данных, разработанный специально для Postgres-клиента psql. На сегодняшний день его возможности не ограничиваются обычным просмотром данных. Он может работать в режиме приложения или инструмента для открытия CSV и TSV файлов. В рамках доклада я постараюсь продемонстрировать основные возможности данного приложения.

Дарья Вилкова

Postgres Professional

программист

Обзор новой функциональности и настройка Zabbix Agent 2 для мониторинга PostgreSQL

русский

В версии Zabbix Server 5.0.1 для Zabbix Agent 2 стал доступен плагин мониторинга PostgreSQL. Он был разработан компанией Postgres Professional совместно с Zabbix. В презентации будет рассказано о принципе работы плагина, вариантах его настройки, а также о возможности добавления кастомных метрик.

Tatsuro Yamada

NTT Comware

Ведущий специалист по базам данных

Julien Rouhaud

VMware

Разработчик

Построение автоматического консультанта и инструментов настройки производительности в PostgreSQL

english

PostgreSQL - зрелая реляционная СУБД, её история насчитывает более 30 лет. За последний год её оптимизатор запросов стал лучше, и обычно он создаёт хорошие планы выполнения запросов.

Но всегда ли эти планы выполнения запросов хороши? Чтобы оптимизировать процесс их создания, приходится пользоваться предположениями, чтобы планы выполнения запросов создавались достаточно быстро. Некоторые из этих предположений проверить довольно легко (например, актуальность статистики), другие сложнее (например, надо убедиться, что правильные индексы были созданы), а некоторые проверить почти невозможно (например, убедиться, что выборки достаточно репрезентативны даже для ассиметричного повторного секционирования данных). Сегодня из-за всех этих предположений администратор базы данных не всегда осознаёт, что он мог бы добиться значительного улучшения производительности.

Чтобы помочь администраторам баз данных работать с действительно хорошим планом выполнения запросов, ниже мы представим несколько инструментов, которые могли бы помочь решить вышеупомянутые проблемы. Мы расскажем о консультанте для недостающих индексов, поиске недостающей статистики для создания новых метрик, а также информации для исправления ошибок в оценке строк (при этом порядок выполняемых операций соединения и оператор соединения определяются автоматически).

  • pg_qualstats предоставляет подсказки для создания новых индексов и расширенной статистики чтобы собрать много предикатных статистических данных о производственной нагрузке.
  • pg_plan_advsr создаёт альтернативные планы выполнения запросов автоматически для анализа информации об итеративном выполнении запросов, чтобы исправить ошибку оценки строк.

В рамках этого доклада мы объясним, как устроены эти инструменты, что можно делать с их помощью, и как эффективно использовать оба инструмента вместе. Мы также упомянем другие инструменты для решения смежных проблем. Поэтому наш доклад будет полезен администраторам баз данных, которые заинтересованы в улучшении производительности при выполнении запросов или хотят проверить адекватность существующих настроек, индексов или статистики.

Слайды

Максим Орлов

Postgres Professional

разработчик

Горячее минорное обновление в Postgres Pro13

русский

Обновление минорных версий Postgres Pro без остановки сервера и остановки активных сессий.

Федор Сигаев

Postgres Professional

технический директор

Антон Дорошкевич

ИнфоСофт

Руководитель Отдела-ИТ

1С:Предприятие + Постгрес = ...

русский

В диалоге технического директора Postgres Professional, ведущего разработчика PostgreSQL Федор Сигаев и известного 1С-эксперта Антон Дорошкевич обсудят имеющиеся проблемы эксплуатации 1С на Постгресе и их возможные решения.

Антон Дорошкевич

ИнфоСофт

Руководитель Отдела-ИТ

Сжатие на уровне СУБД в реалиях 1С

русский

В PostgresPro Enterprise есть замечательный механизм сжатия. 2020 год мною был посвящён исследованию этого механизма в реальной работе 1С. Накоплены некоторые статистические данные и конечно тонкости использования и поведения 1С по сравнению с другой популярной СУБД, которыми и хочу поделиться.

Артём Картасов

Postgres.ai

Software Engineer

Над пропастью WAL-G

русский

Что мы ожидаем от системы резервного копирования? Что отличает хорошую систему бэкапов? И самое главное - как выбрать для этого процесса подходящие инструменты? При подготовке резервных копий возникает немало насущных вопросов.

В докладе я расскажу историю построения системы снятия и верификации бэкапов в отдельно взятой компании. Обсудим вопросы выбора инструмента по работе с резервными копиями, адаптации к изменяющимся реалиям, проблемы облачных хранилищ и безграничные возможности open-source коллаборации.

Приглашаю вас в увлекательное путешествие длиной 2 года.

Ibrar Ahmed

Percona LLC

Старший инженер-программист - консультант по PostgreSQL

Всё о безопасности PostgreSQL

english

В PostgreSQL реализованы различные уровни безопасности. Данный доклад посвящен всем доступным техникам обеспечения безопасности, используемым в PostgreSQL 13. Мы разберём, как обеспечить безопасность на стороне клиента (LibPq, JDBC) и на стороне сервера. В нем будут затронуты все поддерживаемые методы аутентификации, а также плюсы и минусы всех этих методов. Ниже приведены некоторые подтемы данного доклада:

  • Введение в криптографию.
  • SSL, TLS, GSSAPI и OpenSSL.
  • Шифрование на стороне клиента.
  • Обеспечение безопасной аутентификации.
  • Защита данных на диске.
  • Безопасность резервного копирования и базового резервного копирования.
  • Обеспечение безопасности репликации.
  • Роли и привилегии внутри базы данных.

Важно знать обо всех уровнях обеспечения безопасности, включая (1) безопасность на уровне сети (2) на уровне диска (3) на уровне строки, (4), на уровне столбца. В этом докладе мы поговорим обо всех вышеперечисленных аспектах обеспечения безопасности, а также обсудим конкретные кейсы и приведём несколько примеров из реальной практики.

Robert Bernier

Percona

Старший консультант по PostgreSQL

Продвинутые техники pg_upgrade

english

На сегодняшний день утилита командной строки pg_upgrade является наиболее популярным инструментом для обновления между мажорными версиями Postgres. Однако помимо достоинств, у неё есть и известные проблемы. Одна из наиболее критичных: что делать, если произошёл сбой? Цель данного доклада - раскрыть те маленькие секреты, благодаря которым любой из слушателей сможет существенно улучшить процесс выполнения обновлений.

Мы начнём с обсуждения базового режима фунционирования pg_upgrade. Потом мы изучим то, что позволяет обновить многотерабайтный кластер за считанные минуты. В конце мы обсудим те самые ситуации сбоя, которых все боятся, а также разберёмся, что делать в случае их возникновения, чтобы обрести уверенность и определённость.

Список подтем доклада приведён ниже:

  • Как работает pg_upgrade? Общая картина
  • О pg_upgrade (вызов из командной строки)

    • аргументы и опции

  • Пошаговое выполнение обновления
  • О репликации на основе РОЛИ

    • с атрибутом REPLICATION
    • с атрибутом LOGIN

  • Опции для обновления: копирование или жёсткие ссылки?
  • Что делать после обновления?

    • о производительности
    • об анализе
    • о команде REPACK
    • о переиндексации

  • Когда что-то идёт не так, и точка невозврата уже пройдена (пройдена ли?)
  • Обновляем РЕПЛИКУ
    • Метод по умолчанию: pg_basebackup
    • Продвинутый метод:
      • - используем rsync
      • предупреждение: закольцовка vacuum

Николай Самохвалов

Postgres.ai

Основатель компании

Автоматическое тестирование изменений БД (DDL, DML)

english

В высоконагруженном проекте любое изменение несёт в себе заметные риски сбоя или деградации производительности. Мы видим, как растёт сложность систем, количество серверов БД, релизов в неделю, автоматизация всего и вся в CI/CD pipelines, контейнерах, Kubernetes.

Но вот когда речь заходит о тестировании изменений в БД — от банального добавления индекса до сложных, почти «хирургических» операций вроде замены в первичного ключа int4 на int8 в многотерабайтной таблице под нагрузкой — тут налицо отставание технологий и методологий. В лучшем случае изменения проверяются визуально, и тут уж всё зависит от опыта и усталости проверяющего.

В докладе мы расскажем как мы (Postgres.ai) закрываем этот вопрос с помощью нашего решения Database Lab:

  • моментальная выдача независимых тонких клонов для многотерабайтных БД, готовых к проверкам,
  • интеграция в существующие CI/CD-инструменты и рабочий процесс,
  • сбор метрик, наиболее важных для принятия решения об одобрении/отклонении изменения (и даже автоматическое отклонения совсем опасных действий).

Fabrízio Mello

OnGres Inc

Разработчик PostgreSQL

Álvaro Hernández

OnGres

Основатель компании

Сетевой фильтр PostgreSQL для EnvoyProxy

english

Как вы осуществляете мониторинг Postgres? Какую информацию вы собираете и насколько она помогает решать возникающие проблемы? Что если вам хочется или нужно логировать все запросы? Высоконагруженные базы данных могут выйти из строя при таком подходе.

В OnGres мы стараемся сделать СУБД PostgreSQL более прозрачной для мониторинга. Поэтому мы вместе с командой Tetrate работали над Сетевым фильтром Envoy для PostgreSQL, расширением, призванным обеспечить и улучшить прозрачность для мониторинга входящего трафика в кластерной инфраструктуре. Это бесплатное расширение с открытым исходным кодом доступно для всех участников сообщества. Вы можете использовать его везде, где пользуетесь Envoy. Оно позволит вам автоматически собирать статистику и устранять проблемы сетевого трафика. Данный доклад обеспечит глубокое погружение в декодирование протокола PostgreSQL и прокси-фильтры Envoy. В рамках этого выступления также будут рассмотрены все возможности сетевого фильтра, его развёртывание и использование в любом окружении.

Полезные ссылки:

Daniel Westermann

dbi services

Principal Consultant

Как переносить данные из Oracle в PostgreSQL и обратно

english

Использование PostgreSQL стало обычным делом во множестве организаций. В большинстве случаев PostgreSQL устанавливают в дополнение к уже имеющимся СУБД Oracle, и довольно скоро возникает закономерный вопрос: как перебрасывать данные из Oracle в PostgreSQL и наоборот? Давайте перенесёмся в прошлое, в март 2001, когда вышло новое расширение SQL стандарта, определившее общие принципы создания API для управления внешними данными: SQL/MED (ISO/IEC 9075-9:2008). Сообщество PostgreSQL довольно быстро создало фреймворк для использования рекомендаций стандарта в виде так называемых обёрток сторонних данных (foreign data wrappers). Это случилось в 2011 с выходом PostgreSQL 9.1. С тех пор число обёрток сторонних данных постоянно растёт. Сегодня благодаря им PostgreSQL может интегрировать данные почти из любого внешнего источника, будь то обычные файлы, другие реляционные СУБД или даже неструктурированные данные. В рамках этого доклада мы рассмотрим обёртку сторонних данных для Oracle и то, как её можно использовать для получения данных из Oracle в PostgreSQL. Однако обратное тоже верно: данные из PostgreSQL также можно отправить в Oracle, и это может быть важно для соблюдения требований. Обещаю, что в докладе будет две части: слайды и много демонстраций.

Amit Kapila

Fujitsu

Senior Director

Как будет развиваться логическая репликация?

english

Логическая репликация в PostgreSQL доступна начиная с версии 10.0, и с каждым новым релизом она улучшается. Мы начнём доклад с обсуждения базовой архитектуры логической репликации в PostgreSQL, а затем перейдём к различным способам её использования.

Одним из недостатков логической репликации по сравнению с физической является невозможность репликации транзакции до момента коммита. Для транзакций, которые выполняются продолжительное время, это может привести к серьёзной задержке на стороне реплики. Мы обсудим, какое решение этой проблемы реализовано в PostgreSQL.

Мы также остановимся на других крупных разработках в области логической репликации, которые позволят осуществлять потоковую передачу транзакций в заранее заданное время. Это позволит реализовать логическую репликацию без конфликтов. Это также можно будет использовать для масштабирования чтения. Благодаря протоколу 2PC мы сможем убедиться, что реплики получили все данные, закоммиченные на мастере. Теперь мы можем спроектировать систему, где определённые узлы являются владельцами некоторого набора таблиц. Так мы всегда сможем получить данные этих таблиц с этих узлов, а также установить некий внешний процесс для учитывающей это маршрутизации для операций чтения.

В конце доклада мы перечислим новые улучшения, связанные с логической репликацией и вошедшие в недавние релизы PostgreSQL.