title

text

Брюс Момжиан
Брюс Момжиан EnterpriseDB Senior Database Architect
: декабря
180 мин

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

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

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

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

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

Видео

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


Часть II «Postgres Window Magic»


Слайды

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

  • Игорь Успенский
    Игорь Успенский Rambler&Co Системный администратор
    45 мин

    PostgreSQL SaaS в Rambler&Co

    Rambler&Co - это множество изданий, сервисов и проектов. Появляются новые и растут существующие. Такой среде нужна надежная, отказоустойчивая, масштабируемая, автоматизированная система.

    Расскажу об устройстве нашего PostgreSQL SaaS, какие инструменты и технологии мы используем. Кворум из 3 Дата-центров. Единая точка входа для клиентов на основе динамической маршрутизации. Аварийное переключение мастера. Прозрачное масштабирование на чтение. Создание реплики без нагрузки на кластер. Прозрачный перенос PostgreSQL cluster на другие серверы. Актуализация dev окружения из prod для разработки. Резервное копирование с компрессией и использованием нескольких CPU на стороне database, восстановление одной БД из basebackup. Мониторинг sql запросов.

  • Алексей Лустин
    Алексей Лустин SilverBulleters, LLC CTO
    45 мин

    Docker, PostgreSQL, Продуктив ....

    Я бы хотел поделиться наработками в части использования PostgreSQL в докерезированных средах, рассказать, с какими особенностями вам придется столкнуться и какие дополнительные инструменты для этого понадобятся.

    • Какие проблемы решает Docker для PostgreSQL, например PostgreSQLPro.9.6
    • Как работать команде ИТ в условиях использования Docker на разработческих, приемочных и продуктивных контурах
      • Использование хранилища образов и серверов сборок для тестирования самого образа
    • С чем придется столкнуться в продуктиве
      • В части сетевой активности
      • Организации персистентных хранилищ для Docker
      • Дополнительных служб и сервисов
      • В части балансировки и отказоустойчивости
    • Как запустить у себя приложения, использующие PostgreSQL, такие как:
      • SonarQube
      • Gitlab
      • База 1С

  • Александр Федоров
    Александр Федоров dbeaver.com Директор по развитию
    Андрей Хитрин
    Андрей Хитрин RedSys Системный архитектор
    45 мин

    DBeaver - IDE для Postgres с открытым исходным кодом

    DBeaver - это универсальный графический клиент для работы с базами данных. Мы создаем DBeaver по модели Open Source Software. Особенное внимание уделяем СУБД PotgreSQL из-за её возможностей, её популярности и открытости. Мы расскажем как развивается DBeaver, покажем внутреннее устройство, продемонстрируем основную функциональность. Отдельно остановимся на трудностях, которые возникают при создании клиента для PostgreSQL. Обсудим модель управления требованиями и способы взаимодействия с сообществом PostgreSQL. Детально рассмотрим интерактивную отладку хранимых процедур PL/pgSQL. Представим новые возможности ближайшего релиза, поделимся планами на будущее.

  • Александр Коротков
    Александр Коротков Postgres Professional Руководитель разработки
    45 мин

    Подключаемые хранилища

    Тема подключаемых хранилищ для PostgreSQL стала уже притчей во языцех. Период споров о том, нужны ли подключаемые хранилища, или нет закончился. Позиции скептиков, говорящих, что подключаемые хранилища не нужны, поскольку являются источником неконсистентного поведения СУБД, заметно ослабли после критики реализации MVCC в PostgreSQL со стороны Uber'а. Стало понятно, что подключаемые хранилища нужны как-минимум для альтернативной реализации MVCC через undo-лог, и это стало одним из ориентиров для проектирования интерфейса.

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

    В данном докладе будут рассмотрены следующие вопросы:

    • обзор получившегося интерфейса для подключаемых хранилищ;
    • изменения в ядре PostgreSQL, которые потребовались для реализации данного интерфейса;
    • текущие и потенциальные применения данного интерфейса, включая heap с undo-логом и in-memory OLTP движок;
    • текущее состояние патчей и перспектива их принятия в ядро;
    • дальнейшее развитие интерфейса с целю расширения возможностей подключаемых хранилищ (columnar, index-organized, LSM и т.д.).