title

text

Сергей Мокеев
Сергей Мокеев
10:00 04 апреля
45 мин

pgCodeKeeper - инструмент для организации современного процесса разработки БД

Современные языки программирования “из коробки” предоставляют удобные средства по организации процесса разработки, тестирования и доставки изменений. Но как быть если хочется тех же возможностей при разработке структуры БД и кода хранимых процедур и функций?

В докладе я расскажу о созданном нами инструменте для работы с кодом внутри БД. И как на его основе мы организовали процессы разработки баз данных с автоматическим тестированием и автоматической доставкой изменений на боевые экземпляры баз данных.

слайды

Видео

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

  • Анатолий Анфиногенов
    Анатолий Анфиногенов
    22 мин

    Вакуумотерапия: лечим хронические заболевания БД

    После импортозамещения и перехода с СУБД Oracle на PostgreSQL мы столкнулись как с "детскими" болезнями нашего приложения на новой СУБД, которые успешно вылечили, так и с "хроническими заболеваниями", с которыми пришлось разбираться существенно дольше. Одной из наиболее запомнившихся проблем стала проблема деградации производительности, которая, как выяснилось, была вызвана недостаточным вакуумированием нашей БД. Опыт осознания и решения этой проблемы предлагается вашему вниманию в виде практических рекомендаций по борьбе с эффектом bloat для таблиц и индексов БД, а также настройке VACUUM/autovacuum PostgreSQL.

  • Алексей Фадеев
    Алексей Фадеев
    22 мин

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

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

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

  • М
    Михаил Маслов
    22 мин

    Мультитранзакции и возможные проблемы с ними

    В докладе рассмотрены мультитранзакции, в каких случаях они "появляются", как их мониторить и проверять. Возможные проблемы с переполнением счетчика мультитранзакций и описана проблема отсутствия файла в pg_multixact/offsets при восстановлении из резервной копии.

  • Игорь Сухоруков
    Игорь Сухоруков
    22 мин

    Как поместить весь мир в обычный ноутбук: PostgreSQL и OpenStreetMap

    Я покажу в PostGIS, как каждый может проанализировать геоданные всей Земли и получить ответы на свои глобальные вопросы за минуты и секунды.

    Когда вы пользуетесь такси в небольших городах, вызывая машину по телефону, то с высокой вероятностью вашу поездку тарифицирует программа на основе данных OSM. Для тарификации используется какой-либо из пакетов прокладки маршрута. Благодаря этому сценарию использования, сотрудники таксопарка указывают номер дома и улицу на зданиях и делают вклад не только в свой бизнес, но и в OpenStreetMap.

    В сценарии аналитики данных входят и задачи где лучше разместить торговую точку, чтобы в нее приходили покупатели. Опять же данные о шаговой доступности и населенности окресностей можно извлечь из геоданных. Можно расчитывать стоимость недвижимости на основе множества факторов связанных с расположением объекта и его окружения.

    Ученые могут строить прогнозные модели для предсказания эпидемий, эволюции городов, планировать рекреационные зоны и застройку существующих территорий на основе открытых геоданных.

    Ну и можно ответить на любой вопрос по географии который вам придет в голову: посчитать площади городов и построек, протяженности дорог и извлечь названия городов, областей и островов. Можете, например, стать чемпионом по игре в "Города" или основать новый сервис прокатов электро самокатов. Все ограничивается лишь вашей фантазией.

    Я опубликовал https://github.com/igor-suhorukov/openstreetmap_h3 — мой проект высокопроизводительного загрузчика данных, который позволяет выполнять геоаналитику данных из OpenStreetMap в PostGIS. Он преобразует дамп OpenStreetMap всего мира или региона PBF в схему, разделенную по регионам H3. Опция столбцового хранения активирует расширение CitusDB в PostgreSQL для ускорения аналитических запросов.