Доклады
-
Григорий Смолкин Ozon Инженер
Резервное копирование PostgreSQL с помощью pg_probackup: высокая производительность и острая форма паранойи
Как бэкапировать PostgreSQL? Как хранить сделанные бэкапы? Как валидировать бэкап? Как валидировать PostgreSQL и можно ли ему вообще доверять? Можно ли доверять твоему инструменту? Как сделать всю эту паранойю удобной и производительной, если СУБД не помогает в этом деле? На какие компромиссы можно идти и на какие ни в коем случае нельзя? Создавая свой инструмент бэкапирования, мы были вынуждены искать ответы на эти и многие другие вопросы, о чем и хотелось бы рассказать.
-
Olivier Courtin DataPink Owner & DataScientist
Мастер-класс: продвинутый анализ пространственных данных с помощью PostgreSQL, PostGIS и Python
На мастер-классе будут рассмотрены: продвинутый анализ пространственных данных на чистом PostGIS, включая новейшие функции PostGIS; приведение в соответствие разных типов данных в PostgreSQL и Python (массивы в NumPy, таблицы в Pandas); секреты эффективной работы с инструментами и средами обработки данных (Jupyter, dataviz и др.); дальнейшее развитие с помощью GeoDataScience, библиотек и фреймворков Python, сочетаемых с PostgreSQL/PostGIS, включая технологии машинного и глубокого обучения.
-
Иван Панченко Postgres Professional рзаместитель генерального директора
Полнотекстовый поиск: от A до Ω
Мастер-класс о том, как правильно организовать полнотекстовый поиск в Postgres, с учетом последних новинок. Все рецепты для создания готового приложения: конфигурация словарей, индексы, фасетный поиск, многоязыковой поиск, нечеткий поиск, подсказки, ранжирование. Участники мастер-класса получат тестовую базу данных, на которой смогут проделать все нужные упражнения.
-
Иван Фролков Postgres Professional инженер-консультант
Pgpro_scheduler и криптовалютные транзакции
Pgpro_scheduler, помимо основной функции выполнение заданий по расписанию, способен выполнять цепочки связанных транзакций. Это может использоваться в различных сценариях асинхронной обработки данных.
Данный мастер-класс предназначен для демонстрации использования возможностей pgpro_scheduler для обеспечения надежной обработки последовательности транзакций на примере отправки криптовалют.
pgpro_scheduler – расширение, входящее в состав Postgres Pro Enterprise.
-
Брюс Момжиан EnterpriseDB Senior Database Architect
Изучаем CTE и оконные функции
От разработчиков часто требуются результаты, которые трудно получить обычными SQL-запросами. К счастью, стандартом SQL предусмотрены мощные средства - общие табличные выражения (CTE) и оконные функции, который весьма расширяют круг возможного.
SQL является декларативным языком, что означает, что пользователь только формирует запрос, с база данных определяет, как его следует оптимально исполнять. CTE позволяют запросам быть более императивными, дают возможность организовать циклы и обработку иерархических структур, что обычно делается только в императивных языках.
Обычные SQL-запросы возвращают наборы строк, в которых одна строка не зависит от других. Оконные функции позволяют добавлять в запрос поля, значения которых зависят от других строк.
Этот мастер-класс поможет прикладным разработчикам в использовании CTE, что позволит перенести часть логики из приложения в SQL-код, и разъяснит возможности оконных функций и особенности их использования.
Видео
Часть I «Programming the SQL Way with CTE»
Часть II «Postgres Window Magic»
-
Алексей Клюкин Zalando SE Database EngineerАлександр Кукушкин Zalando SE Database Engineer
Мастер-класс: Управление высокодоступными PostgreSQL кластерами с помощью Patroni
Patroni - это Python-приложение для создания высокодоступных PostgreSQL кластеров на основе потоковой репликации. Оно используется такими компаниями как Red Hat, IBM Compose, Zalando и многими другими. С его помощью можно преобразовать систему из ведущего и ведомых узлов (primary - replica) в высокодоступный кластер с поддержкой автоматического контролируемого (switchover) и аварийного (failover) переключения. Patroni позволяет легко добавлять новые реплики в существующий кластер, поддерживает динамическое изменение конфигурации PostgreSQL одновременно на всех узлах кластера и множество других возможностей, таких как синхронная репликация, настраиваемые действия при переключении узлов, REST API, возможность запуска пользовательских команд для создания реплики вместо pg_basebackup, взаимодействие с Kubernetes и т.д.
Слушатели мастер-класса подробно узнают, как работает Patroni, получат практические навыки настройки высокодоступных кластеров на его основе, познакомятся с различными дополнительными возможностями и поучаствуют в диагностике проблем. Будут рассмотрены следующие темы:
- область применения: какие задачи HA успешно решаются Patroni
- обзор архитектуры
- создание тестового кластера
- утилита patronictl
- изменение конфигурации PostgreSQL для кластера, управляемого Patroni
- мониторинг с помощью API
- подходы к переключению клиентов
- дополнительные возможности: ручное переключение, перезагрузка по расписанию, режим паузы
- настройка синхронной репликации
- расширяемость и универсальность
- частые ошибки и их диагностика
Для полного участия в мастер-классе вам понадобится ноутбук с установленным git, vagrant и virtual box.
Vagrant можно загрузить со страницы https://www.vagrantup.com или установить с помощью пакетов в вашем дистрибутиве. Virtualbox: https://www.vagrantup.com
После установки Vagrant и Virtualbox нужно выполнить:
$ git clone https://github.com/alexeyklyukin/patroni-training $ cd patroni-training $ vagrant up
После того, как patroni box поднимется и установит необходимые пакеты к нему можно подключиться с помощью vagrant ssh.
-
Егор Рогов Postgres Professional эксперт
Мастер-класс: Больше индексов, хороших и разных
"Не мог он GIN от SP-GiST-а, как мы ни бились, отличить", говорил классик. А вы можете? Этот мастер-класс посвящен индексам, которые хоть и не так часто используются, как обычное B-дерево, но могут сильно выручить в трудную минуту. Мы посмотрим, как устроены эти индексы и в каких случаях они могут быть успешно применены. Заодно поговорим и об особенностях индексного доступа в PostgreSQL. Чтобы провести время с пользой, от слушателей потребуется некоторое знакомство с PostgreSQL и умение читать планы несложных запросов.
Материалы мастер-класса
Резервную копию БД с демонстрационными данными можно скачать тут:
- Восстановление с помощью pg_restore (338 MB)
-
Иван Панченко Postgres Professional рзаместитель генерального директора
Программирование серверных процедур на языках PL/Perl, PL/Python, PL/v8
Мастер-класс покажет особенности серверного программирования на указанных языках. Будут рассмотрены примеры и произведено сравнение данных языков и их возможностей в серверной среде PostgreSQL для различных практических задач.
-
Олег Бартунов Postgres Professional генеральный директорФедор Сигаев Postgres Professional технический директор, ведущий разработчик PostgreSQLАлександр Коротков Postgres Professional Руководитель разработки
Что нам ждать в PG 11?
10-я версия получилась богатой на новые фичи, но что же нас ожидает в новой 11 версии?
Мы расскажем последние новости из мира разработчиков постгреса, а именно: новые фичи, улучшения и развитие старых, прорывные разработки. Не все из них видны простому пользователю, но мы постараемся представить разработки ядра постгреса в простом и доступном виде.
-
Дорофей Пролесковский Juno GIS Engineer
PostGIS и системы реального времени
PostGIS - расширение для Postgres, приносящее в него пространственные типы данных, методы их быстрой индексации и функции для выполнения геометрических операций над ними.
В типичном сценарии использования PostGIS применяют для выбора из большого массива статичных данных небольшого подмножества. В этом докладе будут рассмотрены проблемы, возникающие при необходимости работы с большими динамическими потоками данных, и подходы к их решению, на реальных примерах, встретившихся при разработке бекенда сервиса заказа такси Juno.
-
Максим Соболевский JetBrains Менеджер по марткеингу
DataGrip: IDE для PostgreSQL от JetBrains
JetBrains 15 лет производит среды разработки для работы со многими языками программирования. Самая популярная из них – IntelliJ IDEA для java, но она поддерживает и базы данных. В какой-то момент мы решили, что эту функциональность и глубокий опыт компании в работе с языками можно привнести и в мир SQL – так появилась среда разработки DataGrip. В докладе я расскажу о том, как DataGrip помогает писать код и работать с данными быстро, как расширить самому функциональность инструмента и постараюсь выяснить, какие проблемы в инструментарии актуальны для российского PostgreSQL сообщества.
-
Марк Локшин Мэйл Ру Старший программист
Опыт миграции высоконагруженных игровых проектов с MySQL на PostgreSQL
В докладе будет рассказано о том, как мы переносили два высоконагруженных игровых проекта, изначально разработанных для работы с MySQL на Postgres. Какие проблемы мы видели изначально при миграции на Postgres, с какими очевидными и не очень сложностями столкнулись во время миграции и как их решали. Какие проблемы выявились в процессе эксплуатации. Какие фичи Postgres нам оказались очень полезными, а чего нам не хватало при переносе.
-
Olivier Courtin DataPink Owner & DataScientist
Продвинутый анализ пространственных данных с помощью PostgreSQL, PostGIS и Python
PostGIS на протяжении двух десятилетий завовевал известность как лучшее опенсорсное решение для анализа пространственных данных. В докладе я остановлюсь на продвинутом анализе пространственных данных с помощью PostGIS, расскажу о дальнейшем развитии с помощью GeoDataScience, библиотек и фреймворков Python, сочетаемых с PostgreSQL/PostGIS, включая технологии машинного и глубокого обучения.
-
Алексей Лесовский Data Egret PostgreSQL DBA
Давайте отключим vacuum?!
Такой призыв часто возникает, когда в PostgreSQL возникают проблемы, и главным подозреваемым оказывается vacuum. По опыту, многие наступают на эти грабли, и мне с коллегам по Data Egret нередко приходится разгребать последствия, так как потом всё становится ещё хуже. Но если обратить внимание на сам vacuum, то, пожалуй, нет такого человека, который бы использовал Postgres, и при этом ничего не знал про вакуум. Ведь история вакуума начинается относительно давно, и в интернете можно найти массу как старых, так и новых постов про вакуум, объемные дискуссии в списках рассылки. Несмотря на то, что тема вакуума подробно описана в официальной документации к PostgreSQL, новые посты и новые дискуссии будут появляться и дальше. Возможно, поэтому с вакуумом связано очень много мифов, баек, страшилок и заблуждений. Между тем, вакуум является одним из важнейших компонентов PostgreSQL, и его работа напрямую сказывается на производительности. В одном докладе невозможно рассказать про вакуум абсолютно всё, но я бы хотел раскрыть ключевые моменты, связанные с вакуумом, такие как его внутреннее устройство, основные подходы к его настройке, наблюдение за производительностью, мониторинг, и что делать в случае, когда вакуум - главный подозреваемый во всех бедах. Ну и, конечно же, хочется развеять распространенные мифы и заблуждения, связанные с вакуумом.
-
Андрей Хитрин RedSys Системный архитекторАлександр Федоров dbeaver.com Директор по развитию
DBeaver - IDE для Postgres с открытым исходным кодом
DBeaver - это универсальный графический клиент для работы с базами данных. Мы создаем DBeaver по модели Open Source Software. Особенное внимание уделяем СУБД PotgreSQL из-за её возможностей, её популярности и открытости. Мы расскажем как развивается DBeaver, покажем внутреннее устройство, продемонстрируем основную функциональность. Отдельно остановимся на трудностях, которые возникают при создании клиента для PostgreSQL. Обсудим модель управления требованиями и способы взаимодействия с сообществом PostgreSQL. Детально рассмотрим интерактивную отладку хранимых процедур PL/pgSQL. Представим новые возможности ближайшего релиза, поделимся планами на будущее.
-
Антон Дорошкевич Инфософт Руководитель отдела ИТ
1С-Батл. PostgreSQL vs MS SQL
Сравнение возможностей PostgreSQL и MS SQL для работы с 1С. Что даёт pg_restore для 1С-ника. Результаты нагрузочного тестирования "Восстановления последовательности партионного учёта" на базе 1С размером более 1 ТБ. 2 года, 500+ баз 1С, 4ТБ данных, Каскадная репликация - История одного Production 1C
-
Вадим Яценко Tantor Lab Генеральный директорСергей Ким Ingram Micro Cloud Software Architect
PostgreSQL High Availability кластер для Enterprise
В последнее время PostgreSQL все чаще используется для Enterprise. Наша компания Ingram Micro Cloud была одной из первых, кто сделал это. Мы уже много лет используем PostgreSQL в качестве основной СУБД для наших продуктов. В докладе мы хотим рассказать об эволюции нашего High Availability (HA) кластера PostgreSQL: как мы в сжатые сроки внедряли решение на pgpool-II, писали failover сценарии, тестировали Postgres-XL и придумывали необычные конфигурации Stolon. Немного поговорим о проблемах балансировки нагрузки, пуллинга соединений и бекапировании.
-
Андрей Николаенко Скала-Р архитекторБорис Нейман MellanoxАртур Закиров Postgres Professional Разработчик
Сетевые ускорения в комплексе Скала-СР / Postgres Pro: настоящее и будущее
В прошлом году мы представили кластерную машину баз данных Скала-СР / Postgres Pro, основной особенностью которой стала аппаратная и программная поддержка прямого доступа к оперативной памяти удалённого узла (RDMA). Первые комплексы уже установлены у заказчиков и уже с первой реализацией стали возможны конструкции, неосуществимые без RDMA и функции разгрузки CPU, доступной на сетевом оборудовании Mellanox. Тем не менее, возможности, которые даёт это оборудование, гораздо шире, и данный доклад посвящён текущим работам и перспективным направлениям развития.
-
Christopher Travers DeliveryHero SE Principle Engineer
PostgreSQL на 20TB и выше
В последние шесть месяцев я работал с массивным OLAP окружением, охватывающим порядка 400TB данных. Приходите и узнайте, как мы заставили это все работать, с какими трудностями сталкивались и какие навыки нам потребовались.
Этот доклад будет иметь мало общего с докладом про 10TB и выше, так как среды данных значительно отличаются. Мы рассмотрим эффективность аналитики, выравнивание данных, причины для разработки расширений на С, перемещение данных между серверами в нескольких центрах обработки данных.
-
Дмитрий Кремер МИА "Россия Сегодня" Администратор баз данных
Особенности мониторинга и траблшутинга высоконагруженной БД PostgreSQL
База данных - один из ключевых компонентов в любой информационной системе, требующий мониторинга множества метрик. В докладе освещены примеры и подходы мониторинга и анализа производительности PostgreSQL, которые позволяют минимизировать нагрузку на сервер баз данных со стороны системы мониторинга и сбора данных для последующего анализа проблемных ситуаций:
- Квантовые эффекты или как наблюдатель влияет на наблюдаемую систему
- Особенности сбора метрик при мониторинге БД с помощю Zabbix
- Сбор данных для аналитики и визуализации запросов PostgreSQL с помощью rsyslog + kafka + clickhouse + grafana.
- Инструменты оперативного анализа лог-файлов БД
-
Сергей Стариков Кнопка Системный администраторКонстантин Хомяков Кнопка Системный администратор
Как перестать бояться стереотипов при выборе СУБД для 1С
Кнопка, крупнейший аутсорсинг бухгалтерии, расскажет о своем опыте перевода 500Gb баз 1С Fresh на PostgreSQL. В докладе затронуты темы выбора СУБД и борьбу со стереотипами, с чего мы начали и как развивали использование PostgreSQL, подходы к резервированию и восстановлению ИБ, наши текущие показатели работы СУБД и 1С, взгляд в будущее. Поделимся, почему мы считаем, что 1С+PostgreSQL это просто, надежно и быстро.
-
Валерий Косарев - начальник отдела
Подключаемое хранилище для больших объектов
Хранение бинарных данных в таблицах базы данных иногда является хорошим решением для конкретного проекта. Но иногда, в силу изменения условий или недостаточной проработки решения, такое хранение становится настоящей головной болью. И даже если есть понимание, как и где нужно разместить такие данные, переход к новым решениям зачастую очень не прост, часто требуется доработка в прикладном коде и останов системы для миграции. В докладе представляется частное решение подобной проблемы. Разработанный extension позволяет освободить базу от таких данных, перекладывая бинарные данные в хранилище Ceph и не только. Причем прозрачно для приложений.
-
Андрей Сальников Data Egret DBA
Практика обновления версий PostgreSQL
В большинстве своем, системные администраторы и ДБА бояться как огня делать мажорные обновления версий баз данных (RDBMS), особенно если эта база данных в эксплуатации и имеет достаточно высокую нагрузку. Главной причиной тому некоторый даунтайм базы данных, который всегда подразумевается при планировании таких работ.
На практике, такого рода upgrade занимает довольно длительное время и зачастую администраторам с малым опытом подобных операций приходится откатываться на старую версию баз данных из-за достаточно банальных ошибок, которые можно было бы избежать еще на этапе подготовки.
В Data Egret мы накопили огромный опыт проведения мажорных апгрейдов PostgreSQL в проектах, где нет права на ошибку. Я поделюсь своим опытом и расскажу о следующих шагах процесса: как правильно подготовиться к upgrade-у PostgreSQL? что необходимо сделать на этапе подготовки? как запланировать последовательность действий на сам upgrade? как провести процедуру upgrade-а успешно, без возврата на предыдущую версию бд? как минимизировать или вообще избежать простоя всей системы во время upgrade-а? какие действия необходимо выполнить после успешного upgrade-а PostgreSQL? Я также расскажу про две наиболее популярные процедуры апгрейда PostgreSQL - pg_upgrade и pg_dump/pg_restore, плюсы и минусы каждого из методов и расскажу про все типичные проблемы на всех этапах этой процедуры, и как их избежать.
Доклад будет интересен как новичкам так и тем ДБА которые уже давно работают с PostgreSQL, но хотят побольше узнать о том как правильно планировать и проводить upgrade максимально безболезненно.
-
Константин Евтеев X5 FoodTech Главный архитекторМихаил Тюрин ИТ предприниматель предприниматель
Кейсы использования логической репликации для восстановления данных в PostgreSQL 10
В Avito объявления хранятся в базах данных PostgreSQL. При этом уже на протяжении многих лет активно применяется логическая репликация. С помощью неё успешно решаются вопросы роста объема данных и количества запросов к ним, масштабирования и распределения нагрузки, доставки данных в DWH и поисковые подсистемы, межбазные и межсервисные синхронизации данных и пр.
Но ничего не бывает "бесплатно" - на выходе мы имеем сложную распределенную систему. Отказы оборудования - это норма, к ним нужно быть готовым. Можно найти много примеров конфигурации логической репликации и success stories ее использования, при этом практических примеров по восстановлению после аварий почти нет, не говоря уже про готовые инструменты. За годы эксплуатации репликации PgQ мы наработали обширный опыт, многое переосмыслили, реализовали собственные надстройки и расширения для восстановления и согласования данных после аварий в распределенных системах обработки данных.
В докладе мы покажем, как наш опыт можно переложить на новую подсистему логической репликации в 10-ке. В текущей реализации это нетривиальные решения – остается ряд вопросов для комьюнити, сводящихся к реализации простых механизмов восстановления - таких же простых как и настройка репликации в 10-ке.
-
Анатолий Солдатов Компания - ЗАО ЛАНИТ Старший разработчик баз данных
Как деплоить в 5 раз быстрее или рассказ о нашей реализации параллельного выполнения миграций в Liquibase
Liquibase - очень удобный инструмент последовательных миграций баз данных, используемый как на наших проектах, так и в большом числе других проектов и фреймворков. Он позволяет держать код базы вместе с кодом приложения в VSC, отслеживать попытки повторных миграций и много-много чего еще. Но рано или поздно проект вырастает, данные занимают терабайты, а liquibase все еще накатывает миграции последовательно.
Мы не смогли позволить себе деплоиться по 100 часов и придумали тулзу (фреймворк) для liquibase, которая расширяет его возможности и позволяет выполнять паралллельно целый ряд скриптов или разбивать одну большую миграцию на маленькие партиции и параллельно мигрировать их.
-
Андрей Бородин Яндекс Разработчик
Разработка дельта-копий в WAL-G
WAL-G - простой и эффективный инструмент для резервного копирования PostgreSQL в облака. По своей основной функциональности он является наследником популярного инструмента WAL-E, но переписанным на Go. Но в WAL-G есть одна важная новая особенность - дельта-копии. Дельта-копии WAL-G (где это возможно) хранят страницы файлов, изменившиеся с предыдущей версии резервной копии. В этом докладе я расскажу о том, как эту особенность разрабатывал.
Наиболее важным и сложным, как ни странно, являлся вопрос интерфейса: WAL-E - простой и понятный, это свойство хотелось сохранить в первую очередь. Технические детали реализации также готовили несколько неожиданных открытий. Кроме того, хотелось бы обсудить перспективы развития технологии и поговорить о взаимодействии и координации со стороны разработчиков инструментов резервного копирования.
-
Михаил Балаян Acronis Chief Database Architect
MVCC в картинках и когда длинные транзакции - это проблема
Многие из нас знают о том, что именно MVCC обеспечивает многопользовательский доступ к данным во многих реляционных базах данных, которые гарантируют согласованность и изолированность транзакций. Но именно глубокое понимание реализации этого механизма в PostgreSQL позволяет нам лучше понимать процессы, происходящие в базе, проектировать логику работы приложений и структуры таблицы, чтобы быть наиболее эффективными в мире высоких нагрузок. На примере одного из процессов в нашем продукте мы разберемся в том, как реализована MVCC в PostgreSQL и раскопаем одну из особенностей, когда казалось бы, несвязанные активности могут влиять друг на друга.
-
Александр Коротков Postgres Professional Руководитель разработки
Подключаемые хранилища
Тема подключаемых хранилищ для PostgreSQL стала уже притчей во языцех. Период споров о том, нужны ли подключаемые хранилища, или нет закончился. Позиции скептиков, говорящих, что подключаемые хранилища не нужны, поскольку являются источником неконсистентного поведения СУБД, заметно ослабли после критики реализации MVCC в PostgreSQL со стороны Uber'а. Стало понятно, что подключаемые хранилища нужны как-минимум для альтернативной реализации MVCC через undo-лог, и это стало одним из ориентиров для проектирования интерфейса.
На текущий момент работа над подключаемыми хранилищами перешла в практическую плоскость: ведётся тред, в котором несколько человек разрабатывают набор патчей, и ещё больше делают ревью.
В данном докладе будут рассмотрены следующие вопросы:
- обзор получившегося интерфейса для подключаемых хранилищ;
- изменения в ядре PostgreSQL, которые потребовались для реализации данного интерфейса;
- текущие и потенциальные применения данного интерфейса, включая heap с undo-логом и in-memory OLTP движок;
- текущее состояние патчей и перспектива их принятия в ядро;
- дальнейшее развитие интерфейса с целю расширения возможностей подключаемых хранилищ (columnar, index-organized, LSM и т.д.).
-
Дмитрий Павлов Arenadata Big Data solutions Senior Consultant
Дрессируем Greenplum
С необходимостью завести в корпоративном IT-ландшафте аналитическую СУБД сталкивается большинство компаний, чей бизнес так или иначе затрагивает информационные технологии. В докладе я расскажу о самых главных нюансах развёртывания и эксплуатации распределённой аналитической open-source СУБД, основанной на PostgreSQL - Greenplum, разберу типичные ошибки при её использовании, приведу best practices и обращу внимание на тонкие места.
-
Камиль Исламов Stickeroid Ai CTO
PostgreSQL и MQTT в качестве системы обработки IoT данных
MQTT - это эффективный протокол обмена данными для IoT устройств. Построенная с помощью доработанного EMQTT плагина, архитектура IoT проекта использует PostgreSQL в качестве центра обработки и хранения данных, поступающих от сенсоров в реальном времени. В докладе будет представлен пример решения программно-аппаратной платформы IoT, реализованного на базе протокола MQTT, где PostgreSQL выполняет ключевые функции, обеспечивая оперативный учёт, сбор и хранение данных от распределённой сети IoT устройств.
-
Андрей Литуненко 2ГИС Программист
Как мы распрощались с MongoDB и перешли на PostgreSQL
В своем докладе я поделюсь опытом переноса, конвертацией NoSQL-данных в реляционный вид и расскажу, как нам удалось ускорить приложение в 2 раза.
Изначально для хранения данных мы использовали PosgtgreSQL и MongoDB. На практике мы выяснили, что такое разделение крайне неудобно. Мы тратили уйму времени и внимания.
Расскажу, как с помощью mosql мы перенесли данные из MongoDB в PostgreSQL. Теперь все данные могут быть получены одним запросом, а схема таблиц обеспечивает консистентность данных.
-
Иван Картышов Postgres Professional Разработчик ядраДмитрий Иванов Postgres Professional Developer
Басня про тестирование и postgres
Однажды вот Питон и Слон
Вести тестирование взялись.
И вместе все в него впряглись!В нашей компании (Postges Professional) разрабатываются разные проекты: multimaster, pg_probackup, pg_pathman, pg_shardman, RUM, и другие. Совладать со всей этой оравой весьма непросто, поэтому нам необходим инструмент, который способен облегчить и ускорить написание всевозможных тестов.
В данном докладе мы расскажем о фреймворке testgres, написанном на Python, который уже позволил решить множество проблем и протестировать функциональность, которую нельзя так просто покрыть прямолинейными регрессионными тестами.
Вы узнаете, как при помощи нескольких строчек кода запускать узлы PostgreSQL, настраивать всевозможную репликацию и создавать бекапы, меняя параметры на лету, и про многое другое. Также мы расскажем, как эти возможности позволяют нам проверять "самые труднодоступные места" и улучшать качество наших продуктов.
Мы стремимся сделать testgres фреймворком для проведения функциональных тестов пользовательских запросов, хранимых процедур и прочей серверной логики, привнося практику TDD на уровнь разработки БД.
-
WWiktor Brodło Adjust GmbH Системный администратор
Bagger: как мы мигрировали 1 PB данных с Elasticsearch на PostgreSQL
В своем выступлении я расскажу о том, как группа сисадминов набила шишки, пытаясь реанимировать петабайтный кластер баз данных Elasticsearch, и в конце концов решила заменить его проверенными технологиями: PostgreSQL, Kafka, немного Redis, много клея, и типичное сисадминское упрямство. Результатом стал Bagger - ответ сисадмина на вызов больших данных. Быстрое, надежное, устойчивое к отказам хранилище, используемое в основном для логирования временных событий. Bagger получил свое имя по названию серии ковшовых экскаваторов, одних из крупнейших наземных транспортных средств, когда-либо производимых человеком. Как эти экскаваторы прокапывают тонны материала, так и наш Bagger способен прокопаться через тонны данных.
-
Виктор Егоров Data Egret DBA
Сравнительный обзор архитектуры PostgreSQL и ORACLE
Доклад рассмотрит следующие компоненты СУБД PostgreSQL, сравнивая архитектурные решения с СУБД ORACLE:
- Что представляет из себя экземпляр работающей базы, какие процессы присутствуют и за что они отвечают?
- Какими структурами оперирует база?
- Механизм отказоустойчивости.
- MVCC механизм и возможности восстановления базы.
- Хранение базы на физических носителях.
Каждое из рассматриваемых решений будет оценено с точки зрения накопленного опыта работы в выбранных СУБД, удобства администрирования и доступных способов развития в будущем.
Доклад будет интересен:
- пользователям PostgreSQL, т.к. позволит взглянуть на другую СУБД и её особенности;
- администраторам PostgreSQL, т.к. ORACLE предлагает большие административные возможности, которые могли бы быть реализованы и в Postgres;
- разработчикам PostgreSQL, т.к. Postgres активно развивается и этот доклад может задать новые направления развития;
- желающим перейти с ORACLE (или другой СУБД) на проекты с открытым исходным кодом, т.к. доклад продемонстрирует возможности открытой СУБД Postgres в сравнении с коммерческим продуктом, в котором Postgres выглядит очень достойно!
-
David Fetter PostgreSQL Global Development Group Contributor and Advocate
Переходные таблицы (Transition tables)!
Переходные таблицы (Transition tables, transition relations) – новая функция в PostgreSQL 10, открывающая широкие возможности, в том числе новые способы поддержания материализованных представлений. По итогам доклада Вы увидите, как можно использовать эту фичу, и приобретете для себя еще один инструмент.
-
ННиколай Ларин Microsoft Program Manager
Azure Database for PostgreSQL – как мы сделали глобальный масштабируемый сервис
Azure Database for PostgreSQL - управляемый сервис баз данных на основе PostgreSQL Community Edition. Мы расскажем об архитектуре сервиса и реализации ключевых преимущств PostgreSQL сервиса в Azure, таких как высокий уровень доступности, масштабирование сервиса, встроенная защита и автоматическое резервное копирование. Включает демонстрацию возможностей сервиса с облачными приложениями и интеграцию с другими сервисами Azure.
-
Иван Фролков Postgres Professional инженер-консультант
Управление потоками заданий в PostgresPro Enterprise
Нередко требуется выполнить асинхронно не одну транзакцию, а несколько в строго определенной последовательности. Для реализации подобного рода задач существует несколько решений, и одной из них - модуль pgpro_scheduler.
-
Брюс Момжиан EnterpriseDB Senior Database Architect
Защита PostgreSQL от внешних атак
Доклад раскроет все известные способы, которыми не имеющие авторизованного доступа к базе данных злоумышленники могут выкрасть пароли Postgres, просмотреть совершенные тразакции и даже вмешаться в работу сессии, возвращая фальсифицированные данные.
Postgres обладает встроенными средствами защиты для предотвращения этих угроз, однако администраторы баз данных должны понимать уязвимости для лучшей защиты от них.
-
Дмитрий Сарафанников Яндекс Разработчик
Как сохранить статистику при мажорном обновлении, и что за это бывает
Ни для кого не секрет, что статистика не переносится при мажорном обновлении. Для небольших и не сильно нагруженных баз это не проблема, можно быстро собрать новую статистику. Но у нас есть базы объемом порядка 5ТБ и нагрузкой порядка 100k rps, для которых это стало большой проблемой: взлетая без статистики, реплики даже не могли накатывать WAL. В своем докладе расскажу, на какие хитрости мы пошли, чтобы произвести обновление этих баз в условиях требований 100% доступности read only, о том, какие ошибки допустили, и о том как эти ошибки мучительно исправляли. Результатом этих ошибок стало расширение pg_dirty_hands, в котором мы будем собирать различные хаки, которые можно назвать «фол последней надежды».
-
Eren Basak Citus Data Software Development Engineer
Использование PITR в распределенных cистемах на базе PostgreSQL
В Postgres есть возможность восстановления данных на момент времени (PITR), которая позволяет нам "отправляться" в прошлое. В этом докладе мы обсудим, какие существуют основные сценарии использования этой функциональности, как подготовить базу данных к восстановлению на момент времени, настроив хорошую систему бэкапов и транcляции WAL-файлов, а также рассмотрим конкретные примеры. Мы подробнее остановимся на том, как применять PITR на распределенных системах и кластерах с шардингом, затронув типичные проблемы подобных конфигураций, такие как разница во времени, и предложим возможные способы их решения - например, двухфазный коммит и pg_create_restore_point.
-
Кирилл Боровиков ООО "Компания "Тензор" Технический директор
explain.sbis.ru - массовая оптимизация запросов
Как оптимизировать производительность запросов в PostgreSQL? Как это делать, если серверов - сотни, а баз - тысячи? В "Тензоре" мы разработали для этого отдельный инструмент - explain.sbis.ru: - для синхронного сбора и анализа запросов - для визуализации планов выполнения - для мониторинга ошибок в БД
-
Александр Погодин Корпорация ПАРУС, МГОТУ руководитель отделаААлександр Панкратов НПЦ Парус Генеральный директор
Технология миграции тиражных клиент-серверных приложений с СУБД Oracle в СУБД PostgreSQL: Принципы, подходы и особенности
В докладе рассматриваются подходы и варианты реализации миграции клиент-серверного приложения Парус-Бюджет 8 с платформы Oracle Database на платформу PostgreSQL без изменения клиентского приложения для Desctop и Web. Предлагаемое решение позволяет осуществить прозрачный переход существующих пользовательских рабочих мест.
-
Олег Бартунов Postgres Professional генеральный директорНикита Глухов Postgres Professional Разработчик
"Умное" индексирование jsonb
PostgreSQL имеет репутацию универсальной СУБД,то есть базы данных, с которой можно стартовать практически любой проект, так как она имеет богатую функциональность,отличную репутацию и большое сообщество. Ее расширяемость позволяет добавлять недостающие функции силами прикладных программистов без остановки системы.
Я расскажу про то, как мы в Postgres Professional улучшили работу с индексами, а именно, добавили возможность использования параметров для их создания. В качестве примера, я расскажу про "умное" индексирование jsonb с помощью нашего расширения jsquery. "Умное" индексирование означает, что можно задавать подмножество jsonb для индексирование с помощью jspath,нового типа данных jsquery, который можно будет указывать в качестве параметра при создании индекса. Таким образом, индекс будет меньше,что положительно скажется на производительности запросов и лучшей конкурентности. Кроме того, параметры к оп классам позволят гибче работать с уже существующими индексами, а также помогут при индекскации jsonb с помощью jsonpath из ожидаемого SQL/JSON.
-
Álvaro Hernández OnGres Founder
Modern PostgreSQL High Availability
It’s 3am. Your phone rings. PostgreSQL is down, you need to promote a replica to master. Why the h**l isn’t this automatic?
If you thought of this before, you want automatic High Availability (HA). Don’t miss this talk! We will enter the world of Modern PostgreSQL HA.
Good news, there are several new, “modern” solutions for PostgreSQL HA. However, there are several solutions and it's not easy to pick one. Most require non-trivial setups, and there are many small caveats about HA like how to provide entry points to the application, HA correctness, HA vs. read scaling, external dependencies, interaction with cloud environments, and so forth.
Join this talk to master PostgreSQL HA and how to deploy it on current times.
-
Константин Книжник Postgres Professional Ведущий разработчик
VOPS: Векторное расширение Постгреса
СУБД Постгрес успешно используется во многих OLTP приложениях, выполняющих большое число простых запросов. Но для аналитики, требующей обработки большого количества данных, Постгрес на порядки отстаёт от специализированных СУБД, оптимизированных для массовой обработки данных. Скорость работы Постгреса для OLAP запросов сдерживается следующими факторами:
- Большие накладные расходы на распаковку записей.
- Затраты на интерпретацию запроса (Постгрес интерпретирует план выполнения запроса)
- Поддержка работы с абстрактными типами
- Недостатки PULL модели выполнения запроса
- Издержки MVCC
Все эти проблемы могут быть в большой степени решены за счёт использования векторного исполнителя запросов, который за одну операцию в состоянии обработать целый блок (вектор) значений. В этом докладе описывается способ добавления векторных операций в Посгрес, с помощью стандартного механизма расширения Посгреса, без внесения изменений в ядро. Такие механизмы Посгреса как UDT (определяемые пользователем типы), FDW (абстракция внешнего поставщика данных), расширения исполнителя запросов позволяют реализовать в Постгресе вертикальный таблицы, с которыми можно работать как с обычными таблицами. Но на порядки быстрее благодаря использованию векторных операций.
-
Игорь Успенский Rambler&Co Системный администратор
PostgreSQL SaaS в Rambler&Co
Rambler&Co - это множество изданий, сервисов и проектов. Появляются новые и растут существующие. Такой среде нужна надежная, отказоустойчивая, масштабируемая, автоматизированная система.
Расскажу об устройстве нашего PostgreSQL SaaS, какие инструменты и технологии мы используем. Кворум из 3 Дата-центров. Единая точка входа для клиентов на основе динамической маршрутизации. Аварийное переключение мастера. Прозрачное масштабирование на чтение. Создание реплики без нагрузки на кластер. Прозрачный перенос PostgreSQL cluster на другие серверы. Актуализация dev окружения из prod для разработки. Резервное копирование с компрессией и использованием нескольких CPU на стороне database, восстановление одной БД из basebackup. Мониторинг sql запросов.
-
Александр Коротков Postgres Professional Руководитель разработки
Credereum – Postgres с поддержкой блокчейн
Соединяем доказуемость и неизменяемость блокчейна с производительностью и эффективностью традиционных СУБД.
Технология блокчейн имеет ряд уникальных свойств, среди которых есть доказуемость и неизменямость. Каждая транзакция в блокчейне имеет цифровую подпись своего автора, которая может быть проверена любым участником сети. Кроме этого, однажды попавшие в блокчейн данные уже не могут быть изменены в дальнейшем. Тем не менее, для большинства современных информационных систем запись всех данных в публиный блокчейн оказалась бы слишком дорогой.
Credereum – это платформа, которая позволяет создавать и поддерживать базы данных, содержимое и история которых доказуемы и неизменяемы, без принесения в жертву производительности и эффективности традиционных СУБД. Благодаря Credereum владелец базы данных может доказывать корректность результатов запроса, а пользователи могут их проверять. Владельцу базы данных не обязательно раскрывать всё содержимое базы данных или всю историю транзакций для того, чтобы доказывать корректность результатов отдельного запроса к базе данных. Таким образом, база данных Credereum подходит и для хранения приватной информации. Credereum использует передовые технологии, такие как децентрализованное облако и блокчейн с шардингом. Credereum – это зарождающаяся тенология приватных и доверенных баз данных.
Мы объясним, почему PostgreSQL является подходящей основной для проекта Credereum, а также расскажем, что потребовалось доработать в постгресе для поддержки цифровых подписей и криптографического хранилища данных.
-
Максим Милютин Wildberries Разработчик/DBAДмитрий Иванов Postgres Professional Developer
Встроенное партицирование в постгресе и сторонние решения
В 10-й версии постгреса появилось встроенное партицирование таблиц. Однако ставить точку на развитии этого функционала, начало работы над которым ведётся с августа 2015 года, пока рано. В новом 11-ом релизе ведутся несколько параллельных работ по преодолению ограничений встроенного партицирования (update ключа партицирования, вставка в foreign партиции, локальные и глобальные индексы) и внедрение оптимизаций (runtime partition pruning, parallel append нода и partition-wise aggregation/grouping), которые восполнят многолетний пробел в этой области.
Помимо этого получили развитие сторонние решения для партицирования таблиц - pg_pathman и timescaledb, каждый из которых предоставляет свои дополнительные возможности, отсутствующие в ваниле.
В своём доклады мы постараемся рассказать про возможности каждого из решений, обрисовать нишу, сделав упор на разрабатываемые фичи в ванильном постгресе.
-
Андрей Зубков ООО "Пармалогика" Администратор баз данных
Инструмент анализа исторической нагрузки или "AWR для Postgres"
Администратор баз данных регулярно сталкивается с необходимостью поиска проблемных запросов в своих базах данных. Для оперативного поиска хорошо подходит PGCenter, но что делать если проблемы производительности наблюдались в прошлом? В этом докладе я хочу поделиться своим опытом разработки и применения инструментария, позволяющего производить ретроспективный анализ нагрузки запросов в базах данных PostgreSQL - pg_profile
-
Николай Рыжиков Health Samurai CTO
Использование PostgreSQL и Сlojure для разработки приложений, ориентированных на работу с базами данных
Если честно взглянуть на большинство наших бизнес-приложений, то они через провод собирают данные в базу и раздают их в обратном направлении. Что, если не пытаться воздвигать стену абстракций между приложением и базой данных (ORM), а постараться использовать их симбиоз - сильные стороны и индивидуальные особенности.
Я расскажу как мы используем postgresql и clojure для создания data intensive приложений для медицины.
- functional relational programming
- jsonb для моделирования сложной предметной области
- функциональные индексы и расширение json-knife для поиска в jsonb
- реализация graphql на postgres
- logical replication для построения реактивных интеграций
- асинхронный JDBC-free коннектор к postgresql на netty
-
Дмитрий Белявский ТЦИ Ведущий специалист
Криптографические параметры настройки PostgreSQL
При настройке PostgreSQL можно указать ряд криптографических параметров, относящихся как к соединению между клиентами и базой, так и к механизму авторизации. Доклад рассказывает, что они означают.
-
Алексей Лустин SilverBulleters, LLC CTO
Docker, PostgreSQL, Продуктив ....
Я бы хотел поделиться наработками в части использования PostgreSQL в докерезированных средах, рассказать, с какими особенностями вам придется столкнуться и какие дополнительные инструменты для этого понадобятся.
- Какие проблемы решает Docker для PostgreSQL, например PostgreSQLPro.9.6
-
Как работать команде ИТ в условиях использования Docker на разработческих, приемочных и продуктивных контурах
- Использование хранилища образов и серверов сборок для тестирования самого образа
- С чем придется столкнуться в продуктиве
- В части сетевой активности
- Организации персистентных хранилищ для Docker
- Дополнительных служб и сервисов
- В части балансировки и отказоустойчивости
- Как запустить у себя приложения, использующие PostgreSQL, такие как:
- SonarQube
- Gitlab
- База 1С
-
Александр Алексеев Postgres Professional Software Developer
PostgreSQL и пожатые документы
Одно из преимущество документо-ориентированных баз данных, таких как MongoDB и Cochbase, перед РСУБД заключается в возможности изменять схему данных легко, быстро и часто. Традиционный подход мира РСУБД заключается в использовании дорогостоящего ALTER TABLE, медленной миграции существующих данных, и подобных вещей. Этот подход часто слишком медлен и неудобен для разработчиков приложений.
Для решения описанной проблемы PostgreSQL предоставляет типы JSON и JSONB. Также существуют расширения zson, pg_protobuf и другие. Из этого доклада вы узнаете, как пользоваться описанными решениями, каковы их сильные и слабые стороны, и т.д. Также вы узнаете о связанных работах, которые сейчас находятся в процессе.
-
Дмитрий Шитов ООО "ЦТП" специалист
Хроники 1Сников: миграция с Windows+1С+PostgreSQL на Linux+1C+PostgreSQL
Во что может вылиться желание не платить за винду 1С-нику? Есть ли жизнь без COM-а (консоли сервера 1С нет, но есть RAS; ODBC из 1С как вызывать)? Гарем постгресов, адресация и нюансы. i9-7900x и Linux, жизнь без turboboost 3. Планирование дисковых ресурсов. Как побороли падения OC CentOS.