Доклады
-
Андрей Фефелов Mastery.pro Технический директор
Простой отказоустойчивый кластер на postgres, patroni, consul, s3, walg, ansible
Patroni становится де-факто стандартом для построения отказоустойчивых кластеров Постгрес.
В мастер-классе мы построим простой отказоустойчивый кластер из 3х нод на перечисленном стеке (на первый взгляд не выглядит простым).
Мы кратко познакомимся с архитектурой patroni, обсудим наиболее интересные параметры конфигураций.
Посмотрим как работает файловер и какими способами можно проинициализировать кластер.
После мастер-класса вы сможете запустить такой кластер с нуля, используя предоставленные плейбуки ansible.
-
Álvaro Hernández OnGres Founder
Миграция с Oracle на PostgreSQL
Хватит платить за яхту Ларри!
PostgreSQL - это полнофункциональная система управления базами данных с открытым кодом уровня предприятия, которая дважды кряду получает статус "СУБД года". И это также наилучший кандидат для миграции с Oracle. PostgreSQL поддерживает продвинутый SQL, она проста в администрировании, а pl/pgsql является заменой ораклового PL/SQL. Пора прекратить тратить сотни тысяч или миллионы долларов на лицензии для СУБД - лучше направьте эти деньги на инвестиции в свою команду, улучшение инфраструктуры или ПО.
Присоединяйтесь к мастер-классу, чтобы за полдня изучить лучшие практики, инструменты и некоторые секреты успешного мигрирования с Oracle на PostgreSQL. Учитесь у команды, которая провела миграцию на PostgreSQL Blackberry на GCP с 150М пользователей с практически нулевым временем простоя, и у ключевого создателя orafce - набора Oracle-совместимых функций поверх PostgreSQL.
-
Джошуа Дрейк Command Prompt, Inc. Pioneer
Производительность и эксплуатация Postgres
Когда вы оптимизируете Postgres, обычно вопросы эксплуатации оказываются задвинуты на обочину. Каким образом наладить autovacuum? Почему bloat? Из-за чего я получаю IO spikes? Как мне заставить RDS правильно себя вести?! Почему коммиты при репликации происходят так медленно? Ответ на все эти вопросы лежит в понимании взаимосвязи между надлежащей эксплуатацией Postgres и его производительностью. Приглашаю присоединиться к увлекательному 3-часовому путешествию по хитрому миру отладки Postgres!
-
Иван Панченко Postgres Professional рзаместитель генерального директора
NoSQL/PL: Программирование на не SQL-образных процедурных языках
Мастер-класс по Server-Side разработке на процедурных языках PL/Perl ,PL/Python, PL/v8 в PostgreSQL и PostgresPro. Вы узнаете не только, для чего они нужны, но и как ими правильно пользоваться, и каких результатов можно достичь благодаря им.
-
Джошуа Дрейк Command Prompt, Inc. Pioneer
Репликация Postgres на практике
В ходе данного мастер-класса мы обсудим потоковую и логическую репликацию с точки зрения практика, включая вопросы нативных технологий репликации Postgres, конфигурации и управления ими. Мы также обсудим производительность и недостатки различных архитектур, таких как sync vs async и пр. По итогам слушатели смогут провести конфигурацию развертывания базовой репликации с HOT Standby, а также приобретут понимание других технологий, таких как Point in Time Recovery и каскадная репликация.
-
Мирослав Шедиви solute GmbH Senior Software Developer
Python и PostgreSQL с использованием psycopg2
Python, может быть, не самый быстрый язык программирования на CPU, но быстрая и простая разработка на нем экономит массу усилий того, кто находится между креслом и клавиатурой. В ходе мастер-класса мы разберем "psycopg2" - наиболее популярную библиотеку для доступа к серверу PostgreSQL, а также напишем небольшое приложение, используя некоторые его полезные свойства.
-
Андрей Сальников Data Egret DBA
Мажорное обновление PostgreSQL
На данном мастер-классе будет показано мажорное обновление PostgreSQL. На практике сталкиваясь с большим количеством серверов PostgreSQL, наша компания видит, что многие команды разработки, однажды установив PostgreSQL, не поддерживают его версию в актуальном состоянии. Причин для этого много, а результат один - отказ от нового функционала базы данных и важных улучшений производительности. На мастер-классе я детально объясню каждый свой шаг, почему так делаю, почему именно в данной последовательности, и что будет, если пропустить этот пункт обновления. Обновляться будем на версию 11, с версии 9.0. В результате, я надеюсь, каждый из пришедших на мастер-класс, вернувшись к своим базам, проведет апгрейды их всех до 11 версии.
-
Мирослав Шедиви solute GmbH Senior Software Developer
Асинхронный Python и PostgreSQL с использованием asyncpg
Возможно, Python не самый быстрый язык программирования на CPU, но быстрая и простая разработка на нем экономит массу усилий того, кто находится между креслом и клавиатурой. Поскольку программные клиенты базы данных большую часть времени находятся в ожидании отклика от сервера базы данных, аснихронная функциональность Python, ставшая доступной в последних версиях (3.5+), может оказаться полезной для значительной оптимизации скорости работы приложения за счет того, что время подготовки ответа сервером может быть использовано приложением для работы над другими задачами. Асинхронный интерфейс между Python и PostgreSQL называется "asyncpg". В ходе мастер-класса я разберу работу с данной библиотекой и напишу короткое приложение, использую некоторые полезные свойства библиотеки.
-
Николай Рыжиков Health Samurai CTOММарат Сурмашев Health Samurai Программист
Эксплуатация JSONB
JSONB в PostgreSQL обладает рядом интересных свойств, которые могут пригодиться при проектировании и разработке бизнес-систем с тяжелой предметной областью, помогая бороться со сложностью и вариабельностью. На мастер-классе мы обсудим преимущества и недостатки использования JSONB. На примере открытой медицинской базы данных - fhirbase - мы с вами:
- загрузим синтетические медицинские данные в PostgreSQL
- научимся искать и индексировать эти данные (gin, jsquery, json-knife)
- посмотрим, как использовать JSON агрегацию для постороения сложных запросов (GraphQL)
- покажем, как эти данные можно модифицировать и валидировать
- поговорим об архитектурных последствиях использования JSONB
Технические требования:
- docker
- docker-compose
-
Олег Бартунов Postgres Professional генеральный директор
Профессиональный постгрес
Известнейший российский разработчик PostgreSQL Олег Бартунов откроет конференцию своим докладом том, как и почему из университетского open source проекта PostgreSQL превратился в современную индустриальную базу данных.
-
Иван Фролков Postgres Professional инженер-консультант
Типичные ошибки приложений при работе с Postgres
По роду своей деятельности мне все время приходится иметь дело с приложениями, работающими с Postgres. Некоторые работают хорошо; некоторые не совсем - и доклад будет как раз об ошибках последних.
Фотогалерея
-
Константин Евтеев X5 FoodTech Главный архитектор
Стендбай в бою
В докладе рассмотрю различные варианты использования и конфигурацию standby сервера. Расскажу о том, как сделать standby, согласованный с вашим архивом, чтобы после аварии primary и промотирования standby сервера новый стендбай можно было пересоздать из архива. Слушатели познакомятся с опытом Avito: как использовать standby для read-only запросов, какие возникали проблемы и как мы их решили. Поговорю про мониторинг standby - на какие метрики стоит обратить внимание.
-
Петр Грибанов 1С Технологический евангелист
1С:Предприятие и PostgreSQL
- 1С:Предприятие -как среда кросс-платформенной разработки бизнес-приложений
- 1С и PostgreSQL - вместе с 2006 года
- Работа 1С с PostgreSQL в облачном сервисе 1cFresh
- Что улучшено в платформе 1С:Предприятие для работы с PostgreSQL - Общие рекомендации по работе 1С с PostgreSQL.
-
Антон Дорошкевич ИнфоСофт Руководитель ИТ
Первый в России BlockChain на 1С+PostgreSQL
В ходе доклада хотелось бы поделиться опытом реализации BlockChain в реальной бизнес-задаче на базе 1С+PostgreSQL. Откуда возникла такая задача? От кого защищаем данные с помощью технологии? Как получать отчёт о целостности цепочки в десятки миллионов записей за считанные секунды?
-
Александр Кузьменков Postgres Professional Программист
Новые планы выполнения запросов в PostgreSQL 11 и будущих версиях
Одна из важных задач СУБД -- по декларативному SQL-запросу построить эффективный план его выполнения, используя разные алгоритмы сканирования и объединения таблиц. Над улучшением планирования запросов идёт непрерывная работа. Какие методы применяет PostgreSQL, чтобы получить эффективный план, что нового в этой области в версии 11, и что сейчас находится в разработке? Например, при планировании запроса можно удалять ненужные соединения, или сводить внешние и полусоединения к внутренним. Есть патчи, позволяющие выполнять merge join по пересечению интервалов, или улучшающие оценку селективности соединения с помощью многоколоночной статистики. Если говорить о сканировании отдельных таблиц, покрывающие индексы позволяют чаще использовать index-only scan. Инкрементальная сортировка и более точная оценка стоимости сортировки улучшают планы, где нужен сортированный вывод, например, для GROUP BY и ORDER BY или merge join. Мы обсудим эти и другие подобные оптимизации, которые уже реализованы или находятся в разработке.
-
Андрей Фефелов Mastery.pro Технический директор
Как мы выбирали среди patroni, stolon, repmgr для нашего отказоустойчивого Постгреса
Для одного из наших проектов понадобилось решать задачу построения отказоустойчивой БД, желательно к тому же географический распределенной.
Первое на что мы посмотрели - это облачные решения от большой тройки, однако, стоимость их эксплуатации превзошла все наши скромные ожидания. К тому же у нас есть всякие штуки вроде экстеншенов и londiste репликации, и они не совместимы с тем, что предлагают облака.
В докладе я расскажу о том, почему мы остановились на patroni, на какие грабли наступили и какие у него есть неочевидные, но прикольные штуки, которые сильно облегчают жизнь.
-
Дмитрий Юхтимовский Gilev.ru технический лидер
Магические фокусы с последующим разоблачением (1С+PG)
Магические фокусы с последующим разоблачением (1С+PG):
- Фокус первый. Как убедить бухгалтерию купить новый сервер.
- Фокус второй. Как показать, что MS SQL быстрее PostgreSQL.
- Фокус третий. Как показать, что PostgreSQL быстрее MS SQL Server.
-
Александр Павлов Modulbank .NET разработчик
Как получить нагрузку в БД на пустом месте?
Мы - обычные разработчики, которые думали о том, как разработать систему, способную выдерживать неплохие нагрузки, и это даже получилось.
На уровне архитектуры всё было OK, но объём данных возрастал, и начали вылезать не самые приятные моменты, о которых ранее никто не думал и не понимал. Иногда это приводило нас к самым потрясающим запросам, которые мы не понимали, как можно было написать. Мой небольшой рассказ будет о том, как получить нагрузку в БД на пустом месте и как потом от неё избавиться.
-
Александр Коротков Postgres Professional Руководитель разработки
Что PostgreSQL 12 нам готовит?
"Заморозка разработки" (feature freeze) PostgreSQL 12 запланирована на апрель 2019, который ещё не настал. Но контуры будущего релиза уже проступают. В данном доклае я расскажу о том, что уже попало в PostgreSQL 12, а также о том что с большой вероятностью может туда попасть. С особым пристрастием расскажу про SQL/JSON, Merge, pluggable table access methods и zheap.
-
Сергей Андреев ООО "Ортикон-Групп" Архитектор
Что останавливает переход на PostgreSQL и как это побороть
Несколько реальных кейсов от тех кто остановил переход на PostgreSQL.
-
Борис Ещенко Commvault Технический консультант
Управление и защита PostgreSQL c помощью Commvault
Надежное резервное копирование и восстановление данных уровня предприятия для среды PostgreSQL. Больше никаких традиционных резервных копий. Технология CBT (Change Block Tracking) - это следующее поколение инкрементного резервного копирования. Быстрее, чем моментальные снимки, CBT создает резервные копии только блоков, которые изменяются, а не всех ваших данных, уменьшая нагрузку на сервер и сетевой трафик и устраняя необходимость в традиционных резервных копиях. Преимущества: • Защита данных в режиме близком к Real-Time • Обновление с легкостью
-
Джошуа Дрейк Command Prompt, Inc. Pioneer
Сила логической репликации
Одной из наиболее приятных фич после выхода релиза Postgres v10 стала логическая репликация. В ходе доклада мы рассмотрим, что из себя представляет логическая репликация, как она соотносится с потоковой репликацией, как она работает, конфигурируется, какими ограничениями обладает, с какими подводными камнями можно столкнуться, как решаются вопросы безопасности и управления. Мы также обсудим возможные для развертывания архитектуры с логической и потоковой репликацией и некоторые черты базовой технологии.
По результатам выступления слушатели, обладающие разумным пониманием того, как управлять постгресом, смогут сконфигурировать логическую репликацию для нужд практического использования.
-
Дмитрий Белявский ТЦИ Ведущий специалистФедор Сигаев Postgres Professional технический директор, ведущий разработчик PostgreSQL
LTREE: расширяем синтаксис
В конце прошлого года мне поступил заказ на доработку расширения ltree с более полным набором символов. Доклад рассказывает о
- изначальном состоянии расширения
- расширенном синтаксисе
- процессе доработки и тестирования расширения.
-
Иван Муратов ООО "Первая Мониторинговая Компания" Технический директор
PostgreSQL + PostGIS + TimescaleDB - хранилище для систем мониторинга транспорта
PostgreSQL + PostGIS + TimescaleDB - это готовый к эксплуатации симбиоз из надежной РСУБД, мощного набора географических объектов и вычислений и работа с time-series данными. Данная связка прекрасно решает проблему хранения телеметрии, при этом оставляя в ваших руках всю экосистему PostgreSQL.
-
Александр Шелудченков ГК "Митра" Программист
Нестандартный кластер 1C
- Перенос стандартного кластера 1С в MPI окружение - "миграция сервисов между машинами".
- Перенос postgreSQL на GPU.
-
Алексей Лустин SilverBulleters, LLC CTO
Анализ проблемных запросов как средство регулярного рефакторинга кода 1С
- Принципы поиска проблемных запросов в PostgreSQL
- Оценка гипотетических индексов и степени их влияния на планы запросов
- Наиболее часто встречающиеся ошибки у 1С-программистов
- Базовые методы рефакторинга кода с учетом особенностей PostgreSQL
- Хранение аналитической информации журнала работы PostgreSQL для оценки качества рефакторинга
-
Лев Драгунов Juno GIS Research TeamLead
PostgreSQL и Docker
СУБД внутри контейнера - ночной кошмар для администратора баз данных. Я расскажу, как PostgreSQL в контейнерах используется в Juno, с какими сложностями мы столкнулись и как их преодолели.
-
Павел Труханов okmeter.io CEO
Мониторинг Postgres по USE и RED
Есть две методологии перформанс мониторинга: USE (Utilization, Saturation, Errors) Брендана Грегга и RED (Requests, Errors, Durations) от Тома Уилки. В докладе я хочу рассказать о том, как мы на них ориентировались и продолжаем ориентироваться, когда реализуем мониторинг Postgres в okmeter.io.
-
Мирослав Шедиви solute GmbH Senior Software Developer
Битемпоральность: отслеживание воспроизводимых изменений в PostgreSQL с помощью типа данных RANGE
Итак, вы наконец создали модель базы данных для вашего приложения и наполнили ее текущими данными. Каким образом обеспечить их актуальность? Хотя команда INSERT может быть все еще прозрачной, команды UPDATE и DELETE перезапишут ваши предыдущие данные, так что вы не сможете их воспроизвести. Клонирование целиком огромного контента при каждом небольшом обновлении - не вариант. Для богатых и сложных данных о сотнях тысяч электрогенераторов в Германии и по всему миру я построил базу данных, используя тип данных range, недавно появившийся в PostgreSQL. Это позволило мне добавлять, обновлять и удалять данные, при том обладая полным доступом к состоянию базы данных в любой исторический момент. Во время выступления я представлю очень упрощенную версию базы данных, чтобы аудитория смогла тут же применить знания на практике. Также я покожу несколько хитрых приемов в работе с Python и Psycopg2, которые позволят всей команде подготавливать, просматривать и развертывать все изменения в базе данных без конфликтов слияния. И подкину несколько идей о том, как можно эти данные эффективно извлекать.
-
Александр Коротков Postgres Professional Руководитель разработки
Узкие места PostgreSQL
Хорошо, когда база работает предсказуемо. Если сервер не справляется с нагрузкой, то только знай добавляй процессорные ядра, терабайты оперативной памяти и миллионы IOPS'ов – всё станет хорошо. Гораздо неприятнее, когда у сервера куча свободных ресурсов, но база данных всё равно тормозит. И особенно обидно, когда при нагрузочном тестировании всё работало как часы, а при реальной нагрузке такого же объёма – встаёт колом.
В данном докладе я разберу "узкие места" постгреса, которые нам приходилось встречать в реальной жизни, и которые приводили к печальному поведению, как описано выше. Расскажу о том, что можно сделать на пользовательском уровне, что эти "узкие места" обойти, и о том, что планируют сделать разработчики, чтобы их вообще убрать. А также поделюсь некоторыми рецептами нагрузочного тестирования, которые помогут избежать неожиданностей в продакшене.
-
Федор Сигаев Postgres Professional технический директор, ведущий разработчик PostgreSQL
Малоизвестные, но достойные расширения Постгреса
Постгрес хорошо известен своей расширяемостью, которая делает его универсальным и пригодным практически для любого проекта. Многие расширения хорошо известны и широко используются, как, например, PostGIS - фактический стандарт для open sourc'ных ГИС, или hstore - расширение для хранения данных "ключ-значение". Я расскажу о менее известных, но очень полезных расширениях, которые дают полезную функциональность и/или повышают производительность.
Благодаря наличию API для создания расширений, их может разрабатывать программист без компетенции "ядерного" разработчика, и создавать в них свои функции, типы данных, операторы, индексы, и даже методы доступа (знаете, что это?)
Для этого доклада из сотен расширений я выбрал два:
- VOPS - заметно улучшает производительность OLAP-запросов с помощью векторных операций,
- pg_variables - обеспечивающее сессионные переменные, которые можно использовать в том числе и на read-only репликах
-
Александр Смолин Красноярский ИВЦ - СП ГВЦ - ОАО "РЖД" Программист 1 категории
Настройка и профилирование виртуальной инфраструктуры VMware для интенсивного ввода/вывода PostgreSQL
Виртуализация в компаниях стала альтернативой консервативного подхода "одна задача - один сервер", позволяющая эффективно использовать аппаратные ресурсы, централизованно управлять серверной инфраструктурой, экономить электроэнергию и ресурсы на охлаждение. В докладе рассказывается о настройке среды VMware для интенсивного ввода-вывода PostgreSQL и инструментах профилирования виртуальной инфраструктуры для контроля производительности и устранения выявленных проблем.
-
Дорофей Пролесковский Juno GIS Engineer
PostGIS от катастроф
PostGIS - расширение PostgreSQL для обработки пространственных данных.
В этом докладе будет подробно рассмотрено, какие его функции и как применять для работы с информацией о катаклизмах.
-
Артур Закиров Postgres Professional Разработчик
Использование pg_variables в качестве временных таблиц
PostgreSQL предоставляет возможность создания временных таблиц. Хотя временная таблица доступна только для сессии, которая ее создала, и удаляется по окончании этой сессии, вся информация о ней хранится в системном каталоге PostgreSQL. С этим связаны несколько проблем, которые затрудняют или делают невозможным использование временных таблиц в некоторых случаях. Есть различные попытки решения этой особенности, в том числе в нашей компании. Но они пока не увенчались успехом, главным образом из-за движка PostgreSQL. В докладе я хочу рассказать о довольно простом и небольшом расширении pg_variables. Оно позволяет создавать табличные переменные наряду со скалярными. Я расскажу, в каких случаях оно может заменить временные таблицы, какие у него есть достоинства и недостатки.
-
Андрей Бородин Яндекс Разработчик
Резервные копии с WAL-G. Что там в 2019?
Доклад будет состоять из 3 частей: 1. Экспресс-настройка PITR в Облако 2. Последние доработки бекапостроения в WAL-G 3. Почему это может быть нужно или вредно для вашего типа требований и нагрузки.
-
Ирина Фаст Сберобразование DBA
Администрирование PostgreSQL глазами Oracle DBA
Имея опыт администрирования Oracle, я обнаружила некоторые отличительные особенности в администрировании PostgreSQL, которыми я хотела бы поделиться с вами. Мы рассмотрим набор необходимых инструментов для администраторов баз данных, их возможности и полезность по сравнению с аналогами Oracle. Также я собираюсь обобщить основные различия между Oracle DB и PostgreSQL с точки зрения администрирования.
-
Алексей Фадеев Sibedge Старший разработчик .NET, евангелист Postgres.
ORM: как писать запросы и не сводить с ума СУБД
Многие специалисты, обслуживающие СУБД не любят эти три буквы - ORM, потому что не раз видели сгенерированные многоэтажные запросы для простейших операций. Однако, практика показывает, что источник проблемы - не ORM, а разработчики, не умеющие ими пользоваться. В этом докладе я расскажу основные принципы, как писать код для ORM, генерирующий «хорошие» запросы, а также покажу «плохие» примеры кода, и что из них получается на выходе. Основные идеи – при написании кода мыслить в SQL, научиться заранее видеть, какой запрос будет сгенерирован. Но даже обретя такой навык нужно всегда проверять выходной SQL для сложных запросов. Приведу конкретный пример, когда незначительное изменение в ORM-логике меняет объём выходного SQL в десятки(!) раз. Расскажу о дополнительных инструментах и хитростях. А именно – отключение трекинга, конструкция Include, разный синтаксис для JOIN, как получить больше данных за меньшее число запросов, как эффективно писать запросы с группировкой, и зачем нужны проекции. Не обойду стороной и случаи, когда эффективно решить задачу средствами ORM не получается (например, запросы с рекурсией). Кроме SELECT-запросов немного расскажу о средствах Batch-Update/Delete, позволяющих обновлять и удалять данные средствами ORM без загрузки на клиент. Несколько слов будет и о вставке – как заставить ORM быстро вставлять большие объёмы данных через Multi-Insert и COPY. Будет упомянуто и о поддержке в ORM специфичных для PostgreSQL типов данных – массивов, hstore и jsonb. Может возникнуть вопрос – а есть ли вообще смысл использовать ORM, раз нужно столькому научиться. Преимущества их использования есть, и об этом тоже будет сказано. Все примеры будут на технологии Entity Framework для платформ .Net Core и .Net Framework на языке C#. Для Hibernate/NHibernate могут быть отличия в некоторых тонкостях, но основные принципы те же, поэтому доклад будет полезен разработчикам, использующим различные технологии.
-
Джигнеш Шах Amazon Web Services Manager, RDS PostgreSQL
Глубокое погружение во вселенную RDS PostgreSQL
В ходе доклада мы с головой окунемся в пространство восхитительных возможностей службы Amazon RDS для PostgreSQL, включая новые версии релизов PostgreSQL, новые расширения, более крупные таблицы. Мы посмотрим на бенчмарки новых типов сущностей RDS и их ценность, на то, как работают высокая доступность и масштабируемость по чтению. Разберем уроки, которые мы вынесли из опыта управления большим парком сущностей с помощью PostgreSQL, включая важные настройки и возможные подводные камни, связанные с pg_upgrade.
-
Павел Молявин 2ГИС Инженер Инфраструктуры
Готовим PostgreSQL в эпоху DevOps. Опыт 2ГИС
После перехода к микросервисной архитектуре для PostgreSQL наступили «темные времена». Каждая из десяти команд действовала самостоятельно — ставила свою базу данных, выбирала версию, писала деплои. Пришло время создать общий инструмент.
Мы собрали кластер на основе PostgreSQL, repmgr, PgBouncer, Barman. Несмотря на то, что система получилась достаточно сложной для неподготовленного специалиста, нам удалось создать повторяемый деплой, который позволяет быстро разворачивать рабочую систему. А также мы смогли консолидировать все базы в нескольких кластерах и снять с команд обязанности по администрированию.
Failover работает, мы проверяли :-)
-
Christopher Travers DeliveryHero SE Principle Engineer
Восстановление данных в PostgreSQL при поврежденной файловой системе
Данное тематическое исследование посвящено разбору случая, когда мы решили приложить усилия к восстановлению данных. Доклад подойдет для всех пользователей: как для новичков, так и для продвинутых администраторов баз данных PostgreSQL. Начинающие пользователи получат понимание того, что представляет собой восстановление данных и чем оно не является, чего можно ожидать, каким образом построить работу с привлеченными экспертами, чтобы получить на выходе наилучший результат. В тоже время, более продвинутые пользователи и эксперты PostgreSQL также получат честную порцию технических аспектов.
-
Esteban Zimányi ULB Professor
MobilityDB: расширение PostgreSQL для управления мобильными данными
В ходе доклада мы представим MobilityDB - расширение PostgreSQL, которое раздвигает границы системы типов в PostgreSQL и PostGIS на абстрактные данные для адекватного представления изменяющихся данных об объектах. Эти типы данных могут представлять эволюцию во времени значений некоторого типа элементов, называемого базовым темпоральным типом. Например, темпоральный целочисленный тип данных может использоваться для демонстрации изменения во времени количества сотрудников департамента. В данном случае базовым типом данных будет целочисленный или темпоральный целочисленный. Аналогично, темпоральный тип данных с плавающей точкой может использоваться для записи изменения во времени температуры в помещении или местоположения автомобиля по GPS-координатам. Темпоральные типы данных оказываются полезны, поскольку для работы многих приложений, например, мобильных, принципиально необходимо обрабатывать изменяющиеся во времени величины.
В расширении MobilityDB темпоральные типы данных основаны на булевых, целочисленных, с плавающей точкой и текстовых типах данных от PostgreSQL, а также на геометрических и географических типах данных от PostGIS (ограниченных размерностью 2D или 3D). MobilityDB соответствует действующим стандартам по перемещаемым объектам OGC http://www.opengeospatial.org/standards/movingfeatures, в частности, OGC Moving Features Access, в котором определены операции, применимые к изменяющимся во времени геометриям.
Для проведения разноообрзаных операций над темпоральными типами данных доступен богатый набор функций и операторов. В общем случае они разделюятся на три типа:
- Пожизненные функции и операторы: операторы над базовыми типами (такие как арифметические операции над целыми числами и числами с плавающей точкой, пространственные отношения и расстояния для геометрий) интуитивно обобщаются на случай изменяющихся во времени значений. Пространственно-темпоральные функции в MobilityDB обобщают пространственные функции PostGIS как для геометрических, так и для географических типов данных, к примеру для "ST_Intersection". На базовом уровне, MobilityDB принимает в расчет аспект темпоральности и делегирует обработку пространственных данных в PostGIS.
- Темпоральные функции и операторы обрабатывают изменяющиеся во времени размерности величины, которая может представлять собой единичное значение, диапазон значений, массив значений или массив диапазонов. Примерами являются функции периодов, которые ограничивают темпоральный тип заданным массивом временных диапазонов, а также функции продолжительности, которые извлекают время определения значения величины.
- Пространственно-темпоральные функции и операторы - в эту категорию попадают все остальные функции. Примеры: speed(tgeompoint/tgeogpoint), azimuth(tgeompoint/tgeogpoint), maxValue(tfloat/tint), взвешенное по времени среднее twAvg(tfloat) и т.д.
Как GiST, так и SP-GiST индексы были расширены для поддержки темпоральных типов данных. Индекс GiST реализует R-дерево для темпоральных численно-буквенных типов данных, а TB-дерево - для темпоральных координат. Индекс SP-GiST реализует Quad-дерево для темпоральных численно-буквенных типов данных, а Oct-дерево - для темпоральных координат. Подход, использованный в MobilityDB при разработке SP-GIST индекса, позволил нам добавить индексы SP-GIST для двумерных, трехмерных и n-мерных геометрий в PostGIS.
Доступны два типа числовых функций аггрегирования. В дополнение к традиционным функциям min, max, count, sum, and avg, теперь есть и их оконные версии (также известные как кумулятивные). Для заданного промежутка времени w, оконная аггрегативная функция вычисляет значение функции в момент времени t, принимая в расчет значения на интервале [t − w, t]. В противоположность стандартной аггрегации, темпоральная аггрегация может возвращать результат большего размера, чем входящие данные. По этой причине темпоральные функции аггрегирования были подвергнуты жесткой оптимизации, чтобы обеспечить их эффективную работу.
В MobilityDB также есть предварительная реализация функций сбора статистики и селективности для темпоральных типов данных.
С точки зрения размера, расширение состоит из 67k строк кода на C, 19k строк SQL кода и 67k строк модульных тестов SQL. В нем определены 40 типов, 2300 функций и 1350 операторов.
В ходе доклада будет проиллюстрирована пространственно-темпоральная концепция и модель данных для темпорального типа. Кратко остановимся на основных компонентах MobilityDB: индексах, аггрегировании, функциях и операторах, а также SQL-интерфейсе. Рассказ будет дополнен примерами запросов и практических случаев использования. Также будет рассказано о текущем статусе проекта MobilityDB и планируемых разработках.
-
Джигнеш Шах Amazon Web Services Manager, RDS PostgreSQL
Секреты работы со службой Amazon RDS для PostgreSQL
Услуги управляемых служб баз данных набирают популярность. В ходе доклада мы посмотрим, как наилучшим образом сконфигурировать службу Amazon RDS для PostgreSQL, и разберем наиболее частые команды RDS. Мы также заглянем за пределы привычных пользовательских операций и рассмотрим несколько вариантов оптимизации, связанных с обновлением, логической репликацией, повышением производительности и сокращением времени простоя PostgreSQL.
-
Федор Сигаев Postgres Professional технический директор, ведущий разработчик PostgreSQL
Вперед в прошлое
Иной раз есть большое желание вернуть базу данных в прошлое, на день, два или несколько дней. Причины самые разные, но чаще всего: посмотреть, что поменялось, приложение после обновления повело себя некорректно, повеление свыше сделать как вчера. Классический способ все знают - держим опорные резервные копии и наборы WAL-логов для возможности восстановления на произвольный момент. И такой способ - головная боль для DBA/администраторов и быстро не делается. Безусловно, есть способы несколько оптимизировать этот процесс, но без downtime это не обходится. PostgresPro предлагает новый способ - снапшоты или снимки состояния БД и возможность вернуться к ним.
-
Julien Rouhaud Разработчик
HypoPG 2: поддержка гипотетического секционирования в PostgreSQL
Декларативное секционирование было долгожданной фичей, которая претерпела улучшение с момента ее появления в релизе PostgreSQL 10. Однако для многих пользователей нахождение оптимальных схем секционирования, дающих наибольший эффект, все еще является нелегкой задачей. По этой причине мы добавили в HypoPG новую фичу гипотетического секционирования, которая помогает пользователям проектировать схему секционирования. В ходе презентации я сделаю небольшое введение в HypoPG и декларативное секционирование, а затем покажу применение гипотетического секционирования и объясню, как работает расширение.
-
Александр Федоров dbeaver.com Директор по развитиюАндрей Хитрин RedSys Системный архитектор
Самый важный инструмент: Xobot IDE
В мире программирования особняком стоит создание исходного кода для "процедурных расширений" баз данных. Большинство СУБД предлагает процедурные языки и "хранимые процедуры" для создания процедурных расширений. В Postgres количество поддерживаемых официально и не очень процедурных языков уже перевалило за десяток.
Традиционно на хранимые процедуры возлагают множество задач: трудно устоять перед соблазном исполнить операцию над данными непосредственно в хранилище, особенно в Enterprise разработке. Такой подход довольно быстро приводит к размазыванию бизнес-логики по телу хранимых процедур и резко повышает стоимость поддержки и развития системы в целом.
Особенности жизненного цикла хранимых процедур затрудняют применение стандартных инструментов и практик по контролю изменений. Необходимо адаптировать работу с хранимыми процедурами к стандартам Change Management, оставаясь в рамках привычных для разработчика действий.
Мы рассмотрим проблемы разработки процедурных расширений и обсудим решения, которые мы реализуем в IDE XOBOT.
-
Павел Лузанов Postgres Professional Руководитель образовательных программ
Обучение и сертификация: что нового и ближайшие планы
В сентябре 2015 года компания "Постгрес Профессиональный" выпустила первый учебный курс "DBA1.Администрирование PostgreSQL. Базовый курс". Курс основывался на актуальной тогда версии PostgreSQL 9.4. С тех пор вышло несколько новых курсов, да и СУБД PostgreSQL не стояла на месте.
В докладе будет представлена текущая линейка курсов для администраторов и разработчиков приложений. А также планы по развитию на ближайшее будущее, включая сертификацию специалистов.
-
Александр Любушкин ООО "ФОРС Телеком" Технический директорРустам Абдрахимов ООО Форс-Телеком Главный эксперт
Live Universal Interface (LUI) - средство коллективной разработки WEB-интерфейса прикладных систем для Postgres
В нашей компании разработан программный продукт Live Universal Interface (LUI), - инструмент для быстрого создания и изменения унифицированных экранных форм для WEB-браузеров без компиляции программного кода, при этом достаточно знать только SQL.
LUI нацелен на сегменты В2В, В2G, G2C и B2C, и предназначен для использования в системах биллинга, управления финансами, учета и контроля производства, где необходимо решать, в первую очередь, функциональные задачи, а не демонстрировать излишние графические элементы.
Коллективная разработка обеспечивается хранением всего объема наработок в базе данных, которая может располагаться как на корпоративном сервере, так и в «облаке» на сторонней площадке.
-
Николай Самохвалов Nombox LLC Основатель
Промышленный подход к тюнингу PostgreSQL: эксперименты над базами данных
Shared_buffers = 25% – это много или мало? Или в самый раз? Как понять, подходит ли эта – довольно устаревшая – рекомендация в вашем конкретном случае?
Пришло время подойти к вопросу подбора параметров postgresql.conf "по-взрослому". Не с помощью слепых "автотюнеров" или устаревших советов из статей и блогов, а на основе:
- строго выверенных экспериментов на БД, производимых автоматизированно, в больших количествах и в условиях, максимально приближенных к "боевым",
- глубокого понимания особенностей работы СУБД и ОС.
Используя Nancy CLI (https://gitlab.com/postgres.ai/nancy), мы рассмотрим конкретный пример – пресловутые shared_buffers – в разных ситуациях, в разных проектах и попробуем разобраться, как же подобрать оптимальную настройку для нашей инфраструктуры, БД и нагрузки.
-
Андрей Бородин Яндекс Разработчик
DIY индекс
В докладе я расскажу об актуальных технологиях в области индексов общего назначения в РСУБД. Обсудим различные подходы, делающие индексы быстрее для различных типов нагрузки. Поговорим о том, какие вещи приходят к нам из академических исследований и какие находят отклик среди разработчиков, со стороны сообществ и крупных компаний. Будет небольшая live-код сессия по созданию DIY индекса в PostgreSQL.
-
Вадим Подольный АО "РАСУ" Независимый эксперт
Высоконагруженная распределенная система управления современной АЭС
В докладе будет представлена новая платформа распределенной системы управления АЭС.
Вы узнаете, как обеспечивается управление сложнейшими объектами автоматизации в мире. В режиме жесткого реального времени обеспечивается работа более 150 специальных подсистем, управляющих различными технологическими процессами АЭС, таких как система управления реактором мощностью выше 1000 МВт и турбиной весом более 2000 тонн. Более 100К источников данных от датчиков и до 500К расчетных параметров. 5 разновидностей физических процессов: нейтронная кинетика, гидродинамика, химия и радиохимия и физика прочности.
При некоторых отклонениях вся система превращается в огромный источник DDoS полезной диагностической информации, которой всегда больше, чем способна переварить сеть и вычислительные ресурсы автоматизированной системы, что мешает нормальному управлению объектом. Вы узнаете, как мы «разруливаем» такие проблемы.
Из доклада вы узнаете об аппаратной и программной архитектуре таких систем, узнаете, как обеспечивается резервирование и репликация данных в таких системах, зачем нужна избыточность данных и технологическое разнообразие. Как обеспечивается управление нагрузками, как устроен QoS. И что будет, если отключится система нормальной эксплуатации, как, например было на Фукусиме.
Но мы все же про кодинг. Никаких SSD и HDD, только InMemory, структуры данных из десятков миллионов элементов, забудьте про кэш процессора, он не работает. Ваш новый Xeon 4-го поколения потерял все преимущества и превратился в "тыкву", поэтому закатываем рукава и ковыряемся в таймингах, жесточайшей аcинхронике и выжимаем из железа максимум. Кто слабое звено - процессор, память, ОС или сеть. Выясняем это.
-
Петр Ярмуз 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.
-
Юрий Жуковец ЗАО Дилжитал-Дизайн Архитектор ПО
Технические особенности портирования T-SQL кода на plpgsql и данных из MS SQL в PG на примере перевода СЭДО «Приоритет» на Postgres
Доклад посвящен продолжению проекта по переводу нашей системы электронного документооборота «Приоритет» с MS SQL на Postgres. Будут затронуты технические решения и моменты переписывания с T-SQL на plpgsql, оптимизации результативного кода и переноса данных. Дополнительно рассмотрим аспекты тестирования производительности с точки зрения поиска «плохого кода» pgplsql как кандидата на оптимизацию. Основная задача презентации - ответить на вопрос: "У нас так на T-SQL - как это перенести на PG?". Доклад предназначается для начинающих разработчиков на Postgres и является продолжением предыдущего доклада сделанного на конференции в 2017 (https://youtu.be/v6_4Szr8t14).
-
Степан Данилов РТ Лабс Разработчик
Оптимизация оптимизированного и не очень
Хочу поделиться опытом оптимизации запросов PostgreSQL для Региональной Медицинской Информационной Системы (РМИС). Опыт работы с PostgreSQL и с этой системой - более 6 лет.
-
Василий Пучков ООО Главный эксперт
Интеграция серверов PostgreSQL в корпоративную сеть
Корпоративные стандарты защиты информации, обеспечения надёжности и унификации ПО: Аутентификация Kerberos (на Windows и Linux) в среде Active Directory. Особенности 1С Предприятие. Подключение к системе резервного копирования (HP Data Protector). Подключение к системе мониторинга Solarwinds.
-
Камиль Исламов Stickeroid Ai CTO
CTE запросы как основа бизнес-логики
Рассмотрены особенности разработки и некоторые варианты реализации бизнес-логики высоконагруженных web-приложений на базе хранимых процедур в парадигме широкого применения Common Table Expression запросов.
-
Артем Иванов Atos IT S&S Пресейл-инженерАлексей Игнатов Postgres Professional DBA
Миграция на СУБД PostgreSQL/Postgres Pro с многоядерными серверами Bull. Реальный опыт
При миграции на СУБД PostgreSQL/Postgres Pro многоядерные серверы требуют к себе внимательного отношения и знания настроек для параллельной работы процессов. Как обеспечить корректную и быструю работу при многотерабайтных конфигурацях?
В своем докладе Артем Иванов и Алексей Игнатов расскажут об опыте тестирования PostgreSQL и Postgres Pro на BullSequana S и Bullion S.
- Особенности данной аппаратной платформы для высонагруженных конфигураций
- Многопроцессорные Scale-up серверы и PostgreSQL/Postgres Pro
- Результаты стрессового тестирования оборудования для СУБД PostgreSQL/Postgres Pro.
-
Денис Смирнов КГБУЗ КДЦ Вивея программист
Greenplum: внутреннее устройство MPP PostgreSQL для аналитики
PostgreSQL архитектурно является классической вертикально-масштабируемая СУБД для OLTP нагрузок. Параллельно с PostgreSQL много лет существует его альтернативная горизонтально-масштабируемая MPP версия Greenplum, заточенная под большие данные и OLAP нагрузку. В докладе будет рассказано про внутреннее устройство Greenplum (распределенные транзакции, шардирование данных, секционирование с гибридным хранением во внешних системах, колоночные движки хранения со сжатием и много другое), проведено сравнение с внутренним устройством PostgreSQL и показаны области применения каждого решения.
-
Алексей Лесовский PostgreSQL Consulting LLC Администратор баз данных
Поиск и устранение проблем в Postgres с помощью pgCenter
Время от времени при эксплуатации Postgres'а возникают проблемы, и чем быстрее найдены и устранены источники проблемы, тем благодарнее пользователи. pgCenter это набор CLI утилит которые является мощным средством для выявления и устранения проблем в режиме "здесь и сейчас". В этом докладе я расскажу как эффективно использовать pgCenter для поиска и устранения проблем, в каких направлениях осуществлять поиск и как реагировать на те или иные проблемы, в частности, как:
- проверить, все ли в порядке с Postgres'ом;
- быстро найти плохих клиентов и устранить их;
- выявлять тяжелые запросы;
- и другие полезные приемы с pgCenter.
-
TTatsuro Yamada NTT Comware Ведущий специалист по базам данных
Настройка автопланировщика с использованием цикла обратной связи
При OLAP и пакетной обрабокте данных часто наблюдается ситуация, что чем сложее запрос (содержит много джойнов, фильтров и аггрегативных функций), тем выше вероятность ошибок в оценке количества строк, в результате чего планировщик выбирает неэффективный план исполнения запроса.
Для того, чтобы решить эту проблему, я разработал инструмент под названием pg_plan_advsr - это расширение для PostgreSQL, которое исправляет ошибки оценки путем неоднократного возвращения в планировщик информации, собранной в ходе исполнения запроса.
Расширение содержит три фичи:
- Автоматическая оптимизация плана запроса за счет неоднократного возвращения информации о ходе выполнения запроса в планировщик.
- Сохранение всех выработанных при оптимизации планов запросов в таблицу истории.
- Создание и сохранение хинтов оптимизатора с тем, чтобы иметь возможность воспроизвести выработанные планы исполнения запросов в процессе настройки.
Я верифицировал эффективность pg_plan_advsr путем запуска join order benchmark (JOB) на PG 10.4, в ходе чего наблюдалось сокращение времени исполнения запроса до 50% от первоначального. Таким образом, расширение будет полезно пользователям, который хотят настроить планировщик для OLAP и пакетной обработки данных.
В ходе презентации я расскажу о следующие моментах:
- Принципы построения и архитектура pg_plan_advsr.
- Подробная информация о результатах тестирования JOB.
- Направления улучшений в будущем.
- Совместное использование расширений aqo и pg_plan_advsr together (экспериментальное).
-
Артемий Рябинков Avito Software Engineer
Практики, особенности и нюансы при работе с Postgres в Go
В докладе расскажу о практиках работы с Postgres в сервисах на Go. Поговорим о преимуществах и недостатках основных инструментов, которые принято использовать при работе с Postgres в Go. Конечно, коснёмся нюансов, которые нужно учитывать, когда ваши сервисы работают внутри Kubernetes облака. Также расскажу об опыте Avito в предоставлении базы данных разработчикам продукта. Доклад будет интересен разработчикам, которые хотят избежать проблем при работе с Postgres и полезен DBA, которые хотят узнать с какими трудностями сталкиваются клиенты их базы данных.
-
Максим Вихарев Alytics Технический директор
GreenHouseSQL - масштабируемая система аналитики на postgresql, greenplum и clickhouse
На pgconf’17 я рассказывал про нашу велосипедную систему аналитики на основе PostgreSQL. После этого мы посматривали в сторону хадупов, s3, престо, друидов, вертики, пентахо и прочих страшил. А потом перестали cтрадать и сомневаться и просто добавили к постгресу готовые Greenplum и Clickhouse. Получив в итоге потрясающую скорость, простую миграцию, простое обслуживание, надежность и горизонтальное масштабирование, восстановление после сбоев в две команды, уменьшение костов на инфрастуктуру и широкие функциональные возможности за счет сочетания ANSI SQL, MPP и In-memory. Оставаясь в парадигме Open-source и полноценного SQL. В итоге у нас получилось то, что мы назвали GreenHouseSQL - наша внутренняя платформа данных полного цикла. В докладе вскроем простоту внутренностей решения и рассмотрим компоненты стека под микроскопом, расскажем об их достоинствах и недостатках, фишках начала работы с Greenplum, зачем нам Clickhouse, что осталось PostgreSQL'у и как вообще все это работает.
-
Александр Кукушкин Zalando SE Database Engineer
Типичные ошибки при построении высокодоступных кластеров и как их избежать
Вы только что установили PostgreSQL и запустили ваш первый кластер, создали несколько таблиц, загрузили данные, и даже немного подкрутили конфигурацию Постгреса для улучшения производительности. Теперь вы думаете о том, как сделать ваш кластер высокодоступным. К сожалению, Постгрес не умеет сам выполнять автоматическое переключение при недоступности мастера, но, к счастью для нас, этого можно достичь с помощью сторонних утилит. Задача ясна, и вы начинаете изучать преимущества и недостатки всех утилит, чтобы выбрать лучшую. И... вы уже на неправильном пути, потому что в первую очередь вы должны определиться со значениями SLA, RTO и RPO. В этом докладе я планирую рассказать о ряде ошибок, которые допускают администраторы баз данных при настройке и эксплуатации высокодоступного кластера Постгреса с автоматическим переключением.
-
ААнна Акентьева Postgres Professional младший разработчик
Autovacuum: что можно узнать, если прочитать код, а не документацию
В докладе будут рассмотрены детали реализации автовакуума и практические выводы, следующие из них. Будет также дан краткий обзор патчей для автовакуума, которые рассматриваются сообществом разработчиков на данный момент и возможно будут включены в следующие версии PostgreSQL.