Эксплуатация JSONB
JSONB в PostgreSQL обладает рядом интересных свойств, которые могут пригодиться при проектировании и разработке бизнес-систем с тяжелой предметной областью, помогая бороться со сложностью и вариабельностью. На мастер-классе мы обсудим преимущества и недостатки использования JSONB. На примере открытой медицинской базы данных - fhirbase - мы с вами:
- загрузим синтетические медицинские данные в PostgreSQL
- научимся искать и индексировать эти данные (gin, jsquery, json-knife)
- посмотрим, как использовать JSON агрегацию для постороения сложных запросов (GraphQL)
- покажем, как эти данные можно модифицировать и валидировать
- поговорим об архитектурных последствиях использования JSONB
Технические требования:
- docker
- docker-compose
Видео
Другие доклады
-
Александр Коротков Postgres Professional Руководитель разработки
Узкие места PostgreSQL
Хорошо, когда база работает предсказуемо. Если сервер не справляется с нагрузкой, то только знай добавляй процессорные ядра, терабайты оперативной памяти и миллионы IOPS'ов – всё станет хорошо. Гораздо неприятнее, когда у сервера куча свободных ресурсов, но база данных всё равно тормозит. И особенно обидно, когда при нагрузочном тестировании всё работало как часы, а при реальной нагрузке такого же объёма – встаёт колом.
В данном докладе я разберу "узкие места" постгреса, которые нам приходилось встречать в реальной жизни, и которые приводили к печальному поведению, как описано выше. Расскажу о том, что можно сделать на пользовательском уровне, что эти "узкие места" обойти, и о том, что планируют сделать разработчики, чтобы их вообще убрать. А также поделюсь некоторыми рецептами нагрузочного тестирования, которые помогут избежать неожиданностей в продакшене.
-
Константин Евтеев X5 FoodTech Главный архитектор
Стендбай в бою
В докладе рассмотрю различные варианты использования и конфигурацию standby сервера. Расскажу о том, как сделать standby, согласованный с вашим архивом, чтобы после аварии primary и промотирования standby сервера новый стендбай можно было пересоздать из архива. Слушатели познакомятся с опытом Avito: как использовать standby для read-only запросов, какие возникали проблемы и как мы их решили. Поговорю про мониторинг standby - на какие метрики стоит обратить внимание.
-
Андрей Хитрин RedSys Системный архитекторАлександр Федоров dbeaver.com Директор по развитию
Самый важный инструмент: Xobot IDE
В мире программирования особняком стоит создание исходного кода для "процедурных расширений" баз данных. Большинство СУБД предлагает процедурные языки и "хранимые процедуры" для создания процедурных расширений. В Postgres количество поддерживаемых официально и не очень процедурных языков уже перевалило за десяток.
Традиционно на хранимые процедуры возлагают множество задач: трудно устоять перед соблазном исполнить операцию над данными непосредственно в хранилище, особенно в Enterprise разработке. Такой подход довольно быстро приводит к размазыванию бизнес-логики по телу хранимых процедур и резко повышает стоимость поддержки и развития системы в целом.
Особенности жизненного цикла хранимых процедур затрудняют применение стандартных инструментов и практик по контролю изменений. Необходимо адаптировать работу с хранимыми процедурами к стандартам Change Management, оставаясь в рамках привычных для разработчика действий.
Мы рассмотрим проблемы разработки процедурных расширений и обсудим решения, которые мы реализуем в IDE XOBOT.
-
Петр Ярмуз Allegro sp. z.o.o Senior Database Engineer
Хакинг с Postgres 11 - pg_threads
Мое выступление будет посвящено написанию расширений для Postgres. Я создал модуль pg_threads, который реализует упрощенную версию API POSIX потоков внутри базы данных Postgres. Он дает разработчикам баз данных новый мощный инструмент для параллельного написания кода и использования преимуществ многоядерной CPU. Существует дополнительное API для транзакционных и нетранзакционных IPC между потоками. Я покажу пример приложения, в котором реализовано преимущество нового API - линейное масштабирование равномерно на два узла. Презентация сопровождается живой демонстрацией на vagrant с двумя виртуальными машинами на Ubuntu и двуми базами данных Postgres.