title

text

T
Tatsuro Yamada NTT Comware Ведущий специалист по базам данных
16:00 06 февраля
22 мин

Настройка автопланировщика с использованием цикла обратной связи

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

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

Расширение содержит три фичи:

  1. Автоматическая оптимизация плана запроса за счет неоднократного возвращения информации о ходе выполнения запроса в планировщик.
  2. Сохранение всех выработанных при оптимизации планов запросов в таблицу истории.
  3. Создание и сохранение хинтов оптимизатора с тем, чтобы иметь возможность воспроизвести выработанные планы исполнения запросов в процессе настройки.

Я верифицировал эффективность pg_plan_advsr путем запуска join order benchmark (JOB) на PG 10.4, в ходе чего наблюдалось сокращение времени исполнения запроса до 50% от первоначального. Таким образом, расширение будет полезно пользователям, который хотят настроить планировщик для OLAP и пакетной обработки данных.

В ходе презентации я расскажу о следующие моментах:

  • Принципы построения и архитектура pg_plan_advsr.
  • Подробная информация о результатах тестирования JOB.
  • Направления улучшений в будущем.
  • Совместное использование расширений aqo и pg_plan_advsr together (экспериментальное).
слайды

Видео

Другие доклады

  • Павел Лузанов
    Павел Лузанов Postgres Professional Руководитель образовательных программ
    22 мин

    Обучение и сертификация: что нового и ближайшие планы

    В сентябре 2015 года компания "Постгрес Профессиональный" выпустила первый учебный курс "DBA1.Администрирование PostgreSQL. Базовый курс". Курс основывался на актуальной тогда версии PostgreSQL 9.4. С тех пор вышло несколько новых курсов, да и СУБД PostgreSQL не стояла на месте.

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

  • Павел Молявин
    Павел Молявин 2ГИС Инженер Инфраструктуры
    45 мин

    Готовим PostgreSQL в эпоху DevOps. Опыт 2ГИС

    После перехода к микросервисной архитектуре для PostgreSQL наступили «темные времена». Каждая из десяти команд действовала самостоятельно — ставила свою базу данных, выбирала версию, писала деплои. Пришло время создать общий инструмент.

    Мы собрали кластер на основе PostgreSQL, repmgr, PgBouncer, Barman. Несмотря на то, что система получилась достаточно сложной для неподготовленного специалиста, нам удалось создать повторяемый деплой, который позволяет быстро разворачивать рабочую систему. А также мы смогли консолидировать все базы в нескольких кластерах и снять с команд обязанности по администрированию.

    Failover работает, мы проверяли :-)

  • М
    Марат Сурмашев Health Samurai Программист
    Николай Рыжиков
    Николай Рыжиков Health Samurai CTO
    90 мин

    Эксплуатация JSONB

    JSONB в PostgreSQL обладает рядом интересных свойств, которые могут пригодиться при проектировании и разработке бизнес-систем с тяжелой предметной областью, помогая бороться со сложностью и вариабельностью. На мастер-классе мы обсудим преимущества и недостатки использования JSONB. На примере открытой медицинской базы данных - fhirbase - мы с вами:

    • загрузим синтетические медицинские данные в PostgreSQL
    • научимся искать и индексировать эти данные (gin, jsquery, json-knife)
    • посмотрим, как использовать JSON агрегацию для постороения сложных запросов (GraphQL)
    • покажем, как эти данные можно модифицировать и валидировать
    • поговорим об архитектурных последствиях использования JSONB

    Технические требования:

    • docker
    • docker-compose

    Инструкция по подготовке

  • Андрей Фефелов
    Андрей Фефелов Mastery.pro Технический директор
    90 мин

    Простой отказоустойчивый кластер на postgres, patroni, consul, s3, walg, ansible

    Patroni становится де-факто стандартом для построения отказоустойчивых кластеров Постгрес.

    В мастер-классе мы построим простой отказоустойчивый кластер из 3х нод на перечисленном стеке (на первый взгляд не выглядит простым).

    Мы кратко познакомимся с архитектурой patroni, обсудим наиболее интересные параметры конфигураций.

    Посмотрим как работает файловер и какими способами можно проинициализировать кластер.

    После мастер-класса вы сможете запустить такой кластер с нуля, используя предоставленные плейбуки ansible.