Использование PostgreSQL и Сlojure для разработки приложений, ориентированных на работу с базами данных
Если честно взглянуть на большинство наших бизнес-приложений, то они через провод собирают данные в базу и раздают их в обратном направлении. Что, если не пытаться воздвигать стену абстракций между приложением и базой данных (ORM), а постараться использовать их симбиоз - сильные стороны и индивидуальные особенности.
Я расскажу как мы используем postgresql и clojure для создания data intensive приложений для медицины.
- functional relational programming
- jsonb для моделирования сложной предметной области
- функциональные индексы и расширение json-knife для поиска в jsonb
- реализация graphql на postgres
- logical replication для построения реактивных интеграций
- асинхронный JDBC-free коннектор к postgresql на netty
Слайды
слайдыВидео
Другие доклады
-
Андрей Бородин Яндекс Разработчик
Разработка дельта-копий в WAL-G
WAL-G - простой и эффективный инструмент для резервного копирования PostgreSQL в облака. По своей основной функциональности он является наследником популярного инструмента WAL-E, но переписанным на Go. Но в WAL-G есть одна важная новая особенность - дельта-копии. Дельта-копии WAL-G (где это возможно) хранят страницы файлов, изменившиеся с предыдущей версии резервной копии. В этом докладе я расскажу о том, как эту особенность разрабатывал.
Наиболее важным и сложным, как ни странно, являлся вопрос интерфейса: WAL-E - простой и понятный, это свойство хотелось сохранить в первую очередь. Технические детали реализации также готовили несколько неожиданных открытий. Кроме того, хотелось бы обсудить перспективы развития технологии и поговорить о взаимодействии и координации со стороны разработчиков инструментов резервного копирования.
-
Иван Фролков Postgres Professional инженер-консультант
Pgpro_scheduler и криптовалютные транзакции
Pgpro_scheduler, помимо основной функции выполнение заданий по расписанию, способен выполнять цепочки связанных транзакций. Это может использоваться в различных сценариях асинхронной обработки данных.
Данный мастер-класс предназначен для демонстрации использования возможностей pgpro_scheduler для обеспечения надежной обработки последовательности транзакций на примере отправки криптовалют.
pgpro_scheduler – расширение, входящее в состав Postgres Pro Enterprise.
-
Константин Книжник Postgres Professional Ведущий разработчик
VOPS: Векторное расширение Постгреса
СУБД Постгрес успешно используется во многих OLTP приложениях, выполняющих большое число простых запросов. Но для аналитики, требующей обработки большого количества данных, Постгрес на порядки отстаёт от специализированных СУБД, оптимизированных для массовой обработки данных. Скорость работы Постгреса для OLAP запросов сдерживается следующими факторами:
- Большие накладные расходы на распаковку записей.
- Затраты на интерпретацию запроса (Постгрес интерпретирует план выполнения запроса)
- Поддержка работы с абстрактными типами
- Недостатки PULL модели выполнения запроса
- Издержки MVCC
Все эти проблемы могут быть в большой степени решены за счёт использования векторного исполнителя запросов, который за одну операцию в состоянии обработать целый блок (вектор) значений. В этом докладе описывается способ добавления векторных операций в Посгрес, с помощью стандартного механизма расширения Посгреса, без внесения изменений в ядро. Такие механизмы Посгреса как UDT (определяемые пользователем типы), FDW (абстракция внешнего поставщика данных), расширения исполнителя запросов позволяют реализовать в Постгресе вертикальный таблицы, с которыми можно работать как с обычными таблицами. Но на порядки быстрее благодаря использованию векторных операций.
-
Иван Панченко Postgres Professional рзаместитель генерального директора
Программирование серверных процедур на языках PL/Perl, PL/Python, PL/v8
Мастер-класс покажет особенности серверного программирования на указанных языках. Будут рассмотрены примеры и произведено сравнение данных языков и их возможностей в серверной среде PostgreSQL для различных практических задач.