title

text

Christopher Travers
Christopher Travers DeliveryHero SE Principle Engineer
10:00 03 февраля
180 мин

Extending PostgreSQL in C: A Tutorial

PostgreSQL is one of the most readily extensible databases in the world. Custom data types, aggregations, functions, and more can be easily and safely written in C.

This hands-on tutorial covers the basics of writing functions, data types, and aggregates in C. It is recommended (though not strictly required) that bring their own laptops and be prepared to actually try the exercises.

Topics covered include: 1. The PostgreSQL type system 2. Creating a simple custom type in C 3. Common errors for non-C programmers 4. Creating a simple aggregate in C

There will be many opportunities for questions and discussion through the tutorial.

Слайды

Видео

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

  • Иван Чувашов
    Иван Чувашов ООО Calltouch DBA
    22 мин

    Миграция данных из Oracle в PostgreSQL с использованием инструмента Pentaho

    При миграции данных из одной СУБД в другую встает вопрос: выбрать сторонний инструмент или написать миграцию самому? Компании, пытаясь вырасти компетенции внутри себя, выбирают второй вариант. И наталкиваются на изобретение собственных "велосипедов". Однако на рынке есть мощные бесплатные инструменты миграции данных. Одним из таких инструментов является Pentaho Data Integration, входящий в пакет Pentaho Community Edition. В докладе будет рассмотрено применение данного пакета для миграции данных между СУБД Oracle и PostgreSQL. Особое внимание будет уделено проблемам, возникающим при использовании данного инструмента, и задачам тестирования на полноту и целостность мигрируемых данных.

    Небольшая видео-иллюстрация:

  • Рустам Абдрахимов
    Рустам Абдрахимов ООО Форс-Телеком Главный эксперт
    Александр Любушкин
    Александр Любушкин ООО "ФОРС Телеком" Технический директор
    90 мин

    Разработка WEB-приложений для Postgres с помощью нового инструмента Live Universal Interface (LUI)

    В ходе мастер-класса будет продемонстрировано следующее:

    1. Преимущества декларативного программирования. Быстрое создание сложной формы LUI с применением только SQL.
    2. Поддержка длинных транзакций и автоматических блокировок. Пример визарда с записью прямо в базу.
    3. Управление раскраской данных в полях и столбцах формы. Типичные примеры.
    4. Живой поиск в полях ввода на примере ввода адресов.
    5. Как настроить LUI на ввод и отображение специфических данных прикладной системы.
    6. Разработка формы Мастер-Деталь с извлечением данных из двух разных БД.
    7. Как конечный пользователь строит сложные запросы к данным без использования SQL.
    8. Как в любом списке группировать данные и строить интерактивные диаграммы (включая 3D) c возможностью “drill down”.

    Слушатели по желанию смогут своими руками изготовить WEB-интерфейс для Postgres на LUI (см. презентацию на https://pgconf.ru/2019/118109)

  • Николай Чадаев
    Николай Чадаев Postgres Professional Старший инженер
    Валерий Попов
    Валерий Попов Postgres Professional Руководитель группы информационной безопасности и сертификации
    45 мин

    Построение защищенных БД с использованием мандатного разграничения доступа в PostgreSQL

    Ролевая модель разграничения доступа (RBAC) является основным механизмом разграничения доступа во многих СУБД, в том числе и в PostgreSQL. Эта модель является разновидностью дискреционного разграничения с присущими ей ограничениями. Во многих ОС в дополнение к традиционному дискреционному разграничению доступа используется мандатное разграничение (MAC) на основе меток безопасности, которое является обязательным для защиты информации высоких классов, а также представляет дополнительный механизм защиты. Естественно, хочется использовать возможности мандатного разграничения доступа к данным в среде СУБД при работе в ОС с включенным мандатным разграничением.
    В нашем докладе мы рассмотрим имеющиеся реализации MAC в СУБД, а также предлагаем свой подход к использованию в PostgreSQL механизмов защиты, которые предоставляет SELinux, расширение sepgsql для PostgreSQL, а также стандартный механизм политики защиты строк (RLS, row level security), который есть в PostgreSQL начиная с версии 9.5.
    Созданный прототип работает в enforced режиме под управлением ОС CentOS 7 с включенным SELinux, системными политиками MLS/MCS (Multi Level Security/Multi Category Security). В дополнение к функциональности модуля sepgsql реализовано мандатное разграничение MLS/MCS на уровне строк таблиц. Обеспечивается сетевое взаимодействие с передачей меток по сети с использованием механизмов IPSEC, CIPSO, что позволяет использовать этот подход в многопользовательской, многоузловой сети. Реализация MLS в СУБД оформлена в виде стандартных расширений PostgreSQL. Одно является оберткой вокруг расширения sepgsql, и обеспечивает легкую инсталляцию расширения sepgsql в БД, а также восстановление контекстов безопасности данных при дампе/восстановлении БД. Второе расширение предоставляет сервисные функции для работы с метками, в том числе в доверенном режиме, позволяющем менять контексты безопасности.
    В качестве демо-примера мы использовали демонстрационную базу данных Авиаперевозки, подготовленную компанией Postgres Professional, на которой мы продемонстрируем защиту чувствительной информации и персональных данных, сравним различные механизмы организации хранилища меток безопасности и производительность решения.

  • Брюс Момжиан
    Брюс Момжиан EnterpriseDB Senior Database Architect
    45 мин

    Unlocking the Postgres Lock Manager

    Locking is critical for providing high concurrency for any database — you cannot fully utilize your hardware if locking is throttling its use. This talk explores all aspects of locking in Postgres by showing queries and their locks; covered lock types include row, table, shared, exclusive, and advisory lock types. The high concurrency provided by Multiversion Concurrency Control (MVCC) is also covered.

    Slides are at https://momjian.us/main/writings/pgsql/locking.pdf