title

text

Алексей Фадеев
Алексей Фадеев Sibedge Старший разработчик .NET, евангелист Postgres.
11:05 03 апреля
22 мин

ORM LinqToDb: используем возможности Postgres по максимуму

ORM-библиотеки широко используются при разработке бэкенда – примем это как данность. ORM-библиотеки совершенствуются, разработчики учатся на своих и чужих ошибках, и многие научились писать код для ORM, генерирующий вполне оптимальные запросы для типовых операций. Но есть ещё одна проблема ORM – ограниченность инструментов. Особенно это актуально для Postgres, имеющего массу операторов и конструкций (как в ядре, так и в расширениях), выходящих за рамки стандарта SQL.

ORM-библиотека LinqToDb имеет важную особенность: она позволяет очень просто (буквально в одну строку) писать расширения, реализующие любой SQL-оператор или конструкцию. Полнотекстовый поиск, KNN, CTE (в том числе рекурсивные), работа с массивами и jsonb, array_agg и jsonb_object_agg, табличные функции и LATERAL JOIN – всё это без труда можно использовать в ORM, что я и продемонстрирую в данном докладе!

Слайды

Фадеев.pptx

Видео

Видео доступно участникам мероприятия, выполнившим вход в личный кабинет

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

  • Андрей Рудометов
    Андрей Рудометов Postgres Professional Младший разработчик
    22 мин

    Привет, встроенный мультимастер? Сравнение двунаправленной репликации в ваниле и Postgres Pro Multimaster

    Во встроенной логической репликации PostgreSQL с версии 9.5 есть механизм replication origin, позволяющий отслеживать процесс логической репликации с конкретного узла. В 16 версию будет включен патч, позволяющий настраивать циклическую репликацию без повторения изменений, пользуясь этим механизмом. В первых обзорах за внешнее сходство получающегося кластера с мультимастером Postgres Pro фичу окрестили "встроенным мультимастером" - разберемся, насколько они похожи на самом деле, и посмотрим, что там внутри. Ожидается, что слушатели имеют некоторое представление о внутреннем устройстве WAL и его месте в работе PostgreSQL. 

  • Игорь Мельников
    Игорь Мельников Postgres Pro Consultant
    45 мин

    Поддержка пакетов Oracle (packages) в СУБД Postgres Pro 15 Enterprise

    Одной из основных проблем при миграции с СУБД Oracle на PostgreSQL, являются пакеты PL/SQL.

    В СУБД PostgreSQL отсутствует такой функционал - это приводит к необходимости переписывания (вплоть до его редизайна!) кода Oracle PL/SQL на PL/pgSQL.

    В новой версии своего флагманского дистрибутива Postgres Pro 15 Enterpise компания Postgres Pro добавила поддержку функциональности пакетов: расширен синтаксис PL/pgSQL и добавлены новые механизмы в среду выполнения хранимых процедур. В докладе речь пойдет идет о поддержке функциональности пакетов в Postgres Pro 15 Enterpise: - группировка типов переменных процедур и функций в пакет; - поддержка секции инициализации пакетов; - поддержка глобальных переменных пакета доступных в течении всей "жизни" сессии.

    Также в докладе будут рассмотрены особенности миграции пакетов из Oracle в СУБД Postgres Pro Enterprise.

  • Игорь Алов
    Игорь Алов Yandex.Bank SRE
    22 мин

    Pgpool-II работа в режиме "Master-Master" или Как должна выглядеть балансировка нагрузки PostgreSQL глазами сетевого инженера.

    Одна из базовых задач для высоконагруженных проектов – это «правильно» настроенное распределение нагрузки внутри кластера базы данных (балансировка), которое бы отвечало определенным параметрам SLA. Большинство решений, с которыми я познакомился, в том числе и Pgpool-II, не в полной мере могли соответствовать требованиям бизнеса. Руками и глазами сетевого инженера мы попытаемся улучшить решение от Pgpool-II и настроим его работу в режиме «Master-Master», а так же рассмотрим случаи, в которых без аналогичных решений не обойтись.

  • Максим Милютин
    Максим Милютин Wildberries Разработчик/DBA
    45 мин

    Аналитические open-source решения на базе PostgreSQL

    Исторически PostgreSQL используется для транзакционной (OLTP) нагрузки. На это указывает строчное хранение данных и невозможность (или сложность) в организации распределённого исполнения запросов по канонам MPP (massive parallel processing) систем. Однако вследствие расширяемости ядра PostgreSQL (прежде всего, появления интерфейса подключаемых методов доступа) и либеральной лицензии (сходной с BSD) на свет появились различные форки и расширения, которые позволяют эффективно организовать обработку больших массивов данных для запросов аналитического толка.

    В текущем докладе планируется дать исчерпывающий обзор форка Greenplum и расширений Citus и TimescaleDB с точки зрение разработчика по основным признакам (фичам) аналитических СУБД - колоночное хранение, сжатие данных, распределённая обработка и др. Результаты данного обзора будут полезны архитекторам, выбирающим СУБД для аналитики под свою систему.