Встроенное секционирование в PostgreSQL
В этом докладе мы сравним встроенное декларативное секционирование PostgreSQL со сторонними расширениями pg_pathman и pg_partman, чтобы понять каких возможностей пока не хватает в ядре. Кроме того, я расскажу, над какими фичами в этой области сейчас активно работает сообщество и чего можно ожидать в релизе PostgreSQL14.
Видео
Другие доклады
-
Julien Rouhaud Разработчик
Как перестать бояться обновлений glibc
PostgreSQL использует системные библиотеки правил сортировки, например, glibc или ICU, для расположения текста в определённом порядке. Общеизвестно, что необходимо принять меры предосторожности на случай, если библиотека изменит порядок сортировки для какого-либо правила. Любой индекс, который использовал старый порядок, вероятно, будет повреждён после установки новой версии библиотеки.
В данном докладе мы рассмотрим улучшения, которые войдут в PostgreSQL 14 и помогут отслеживать версии правил сортировки, обнаруживать и устранять возможные повреждения индексов, вызванные обновлением библиотек. Мы также обсудим работу, которая выполняется сейчас в целях дальнейшего улучшения этого процесса.
-
Николай Самохвалов Nombox LLC Основатель
Бесшовная оптимизация запросов PostgreSQL, версия 2.0
Существует два способа анализировать SQL-запросы:
На макроуровне: в этом случае мы анализируем рабочую нагрузку как единое целое (есть три основных подхода: использование метрик из pg_stat_statements или аналогичного модуля, анализ логов с помощью pgBadger или другого похожего решения и запрос выборки в представлении pg_stat_activity).
На микроуровне: в этом случае мы погружаемся в детали исполнения одного конкретного запроса (тут главную роль играет команда EXPLAIN).
Между этими двумя подходами есть немало "белых пятен", которые обнаруживаются с ростом нагрузки. Главные проблемы:
- Нужно переключаться между макро- и микроуровнем без больших накладных расходов.
- Требуется надёжная проверка гипотез относительно возможных оптимизаций.
- Есть необходимость минимизации рисков при развёртывании новой функциональности.
Чтобы справляться с этими задачами в растущем проекте, требуется продвинутый опыт в качестве администратора баз данных, и – иногда – интуиция. Также могут помочь новые инструменты, которые (к счастью для нас!) не так давно начали появляться.
В рамках данного мастер-класса мы разберёмся, как можно настроить процесс беспроблемной и бесшовной оптимизации SQL-запросов в вашей организации: а) какие инструменты следует выбрать в вашем конкретном случае? б) как эффективно заполнить вышеупомянутые пробелы в сфере анализа запросов?
-
Алексей Фадеев 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.
-
Álvaro Hernández OnGres Founder
Как преобразовать Postgres в облачную платформу
Сводится ли развёртывание Postgres на Kubernetes к простой перераспаковке в контейнере? Или Postgres может использовать другой cloud-native софт для более качественной интеграции с K8s? Мы поговорим об этом на данном мастер-классе и продемонстрируем несколько примеров на StackGres:
- Как преобразовать Postgres в контейнер без инициализации с несколькими контейнерами-"прицепами" для создания пула соединений, резервного копирования, агентов и т.п.
- Определение высокоуровневых CRD в качестве единого API для взаимодействия с Postgres оператором.
- Использование авторизации на основе K8s RBAC для аутентификации пользователя веб-интерфейса управления.
- Использование Prometheus для мониторинга; сборка узла, использование экспортёров и Postgres, и PgBouncer.
- Проксирование трафика Postgres traffic через Envoy. Завершение работы Postgres SSL с помощью плагина Envoy, который также экспортирует метрики "проводного" протокола в Prometheus.
- Использование Fluentbit для сбора логов Postgres и их пересылки в Fluentd, который хранит их в централизованной постгрессовой базе данных.
Во время мастер-класса вы сможете повторить все действия на собственном Kubernetes-кластере и с лёгкостью пройти путь от новичка до профи в Postgres на Kubernetes! Вы сможете создавать собственный Postgres-as-a-Service на Kubernetes всего за несколько минут!