Изучаем CTE и оконные функции
От разработчиков часто требуются результаты, которые трудно получить обычными SQL-запросами. К счастью, стандартом SQL предусмотрены мощные средства - общие табличные выражения (CTE) и оконные функции, который весьма расширяют круг возможного.
SQL является декларативным языком, что означает, что пользователь только формирует запрос, с база данных определяет, как его следует оптимально исполнять. CTE позволяют запросам быть более императивными, дают возможность организовать циклы и обработку иерархических структур, что обычно делается только в императивных языках.
Обычные SQL-запросы возвращают наборы строк, в которых одна строка не зависит от других. Оконные функции позволяют добавлять в запрос поля, значения которых зависят от других строк.
Этот мастер-класс поможет прикладным разработчикам в использовании CTE, что позволит перенести часть логики из приложения в SQL-код, и разъяснит возможности оконных функций и особенности их использования.
Видео
Часть I «Programming the SQL Way with CTE»
Часть II «Postgres Window Magic»
Слайды
Другие доклады
-
Дмитрий Сарафанников Яндекс Разработчик
Как сохранить статистику при мажорном обновлении, и что за это бывает
Ни для кого не секрет, что статистика не переносится при мажорном обновлении. Для небольших и не сильно нагруженных баз это не проблема, можно быстро собрать новую статистику. Но у нас есть базы объемом порядка 5ТБ и нагрузкой порядка 100k rps, для которых это стало большой проблемой: взлетая без статистики, реплики даже не могли накатывать WAL. В своем докладе расскажу, на какие хитрости мы пошли, чтобы произвести обновление этих баз в условиях требований 100% доступности read only, о том, какие ошибки допустили, и о том как эти ошибки мучительно исправляли. Результатом этих ошибок стало расширение pg_dirty_hands, в котором мы будем собирать различные хаки, которые можно назвать «фол последней надежды».
-
WWiktor Brodło Adjust GmbH Системный администратор
Bagger: как мы мигрировали 1 PB данных с Elasticsearch на PostgreSQL
В своем выступлении я расскажу о том, как группа сисадминов набила шишки, пытаясь реанимировать петабайтный кластер баз данных Elasticsearch, и в конце концов решила заменить его проверенными технологиями: PostgreSQL, Kafka, немного Redis, много клея, и типичное сисадминское упрямство. Результатом стал Bagger - ответ сисадмина на вызов больших данных. Быстрое, надежное, устойчивое к отказам хранилище, используемое в основном для логирования временных событий. Bagger получил свое имя по названию серии ковшовых экскаваторов, одних из крупнейших наземных транспортных средств, когда-либо производимых человеком. Как эти экскаваторы прокапывают тонны материала, так и наш Bagger способен прокопаться через тонны данных.
-
Дмитрий Шитов ООО "ЦТП" специалист
Хроники 1Сников: миграция с Windows+1С+PostgreSQL на Linux+1C+PostgreSQL
Во что может вылиться желание не платить за винду 1С-нику? Есть ли жизнь без COM-а (консоли сервера 1С нет, но есть RAS; ODBC из 1С как вызывать)? Гарем постгресов, адресация и нюансы. i9-7900x и Linux, жизнь без turboboost 3. Планирование дисковых ресурсов. Как побороли падения OC CentOS.
-
Андрей Хитрин RedSys Системный архитекторАлександр Федоров dbeaver.com Директор по развитию
DBeaver - IDE для Postgres с открытым исходным кодом
DBeaver - это универсальный графический клиент для работы с базами данных. Мы создаем DBeaver по модели Open Source Software. Особенное внимание уделяем СУБД PotgreSQL из-за её возможностей, её популярности и открытости. Мы расскажем как развивается DBeaver, покажем внутреннее устройство, продемонстрируем основную функциональность. Отдельно остановимся на трудностях, которые возникают при создании клиента для PostgreSQL. Обсудим модель управления требованиями и способы взаимодействия с сообществом PostgreSQL. Детально рассмотрим интерактивную отладку хранимых процедур PL/pgSQL. Представим новые возможности ближайшего релиза, поделимся планами на будущее.