title

text

Брюс Момжиан
Брюс Момжиан EnterpriseDB Senior Database Architect
14:00 05 февраля
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 запросов.

  • Григорий Смолкин
    Григорий Смолкин Ozon Инженер
    90 мин

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

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

  • W
    Wiktor Brodło Adjust GmbH Системный администратор
    45 мин

    Bagger: как мы мигрировали 1 PB данных с Elasticsearch на PostgreSQL

    В своем выступлении я расскажу о том, как группа сисадминов набила шишки, пытаясь реанимировать петабайтный кластер баз данных Elasticsearch, и в конце концов решила заменить его проверенными технологиями: PostgreSQL, Kafka, немного Redis, много клея, и типичное сисадминское упрямство. Результатом стал Bagger - ответ сисадмина на вызов больших данных. Быстрое, надежное, устойчивое к отказам хранилище, используемое в основном для логирования временных событий. Bagger получил свое имя по названию серии ковшовых экскаваторов, одних из крупнейших наземных транспортных средств, когда-либо производимых человеком. Как эти экскаваторы прокапывают тонны материала, так и наш Bagger способен прокопаться через тонны данных.

  • Валерий Косарев
    Валерий Косарев - начальник отдела
    22 мин

    Подключаемое хранилище для больших объектов

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