Энциклопедия полнотекстового поиска
Встроенный полнотекстовый поиск в PostgreSQL дает уникальные возможности поиска в базе данных, недоступные внешним поисковым движкам, например, когда документ является чисто виртуальным, результатом выполнения сложного запроса, или когда на результаты поиска надо наложить дополнительные ограничения, например, ограничить поиск согласно уровню доступа пользователя. Я расскажу про эти и другие возможности полнотекстового поиска, про его архитектуру, настройку и индексы, а также какие дополнительные возможности стали доступными в последних версиях постгреса и что ожидается в будущем.
Слайды
Видео
Другие доклады
-
Валерий Попов Postgres Professional Руководитель группы информационной безопасности и сертификацииНиколай Чадаев Postgres Professional Старший инженер
Построение защищенных БД с использованием мандатного разграничения доступа в 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, на которой мы продемонстрируем защиту чувствительной информации и персональных данных, сравним различные механизмы организации хранилища меток безопасности и производительность решения. -
Павел Конотопов inCountry DBA team leadЛеонид Альбрехт InCountry DBA
Строим энтерпрайз инфрастуктуру с PostgreSQL, как основу для системы хранения персональных данных
В своем докладе я расскажу, как мы строили географически распределенную систему хранения персональных данных на основе Open Source ПО и PostgreSQL. Концепция бизнеса «inCountry» состоит в предоставлении клиентам готовой к использованию инфраструктуры для хранения персональных данных. Чтобы пользователи были уверены в том, что персональные данные, которыми они оперируют, попадают в страну их происхождения и хранятся там безопасно, не пересекая границ государства, мы написали API и построили разнообразные сервисы. Наша система соответствуют общепринятым стандартам безопасности (SOC Type 1, Type 2, PCI DSS и т.д.). Мы строили нашу инфраструктуру с помощью Consul, Nomad и Vault, использовали PostgreSQL, ElasticSearch как системы хранения, Nginx, Jenkins, Artifactory, средства для автоматизации управления и развертывания. Собрали команду разработки, команды управления – DevOps, Security, мониторинга и DBA. Мы используем как облачных провайдеров, так и bare-metal сервера, расположенные в разных регионах мира. Разработка архитектуры системы и обеспечение устойчивости инфраструктуры, согласованной и безопасной работы всех ее компонент – главная задача, которая стоит перед нашими командами.
-
Виктор Еремченко Miro Team Lead
Отказоустойчивый кластер PostgreSQL + Patroni
Я расскажу, как мы комплексно подошли к проблеме отказоустойчивости PostgreSQL, какие варианты мы рассматривали и как остановились на Patroni.
Доклад содержит этапы тестирования этого решения, как мы обеспечили быстрое внедрение на production и с какими проблемами мы столкнулись и как их решали.
-
Александр Кварацхелия БАРС Груп Архитектор программного обеспеченияАлександр Чирков Барс Груп Архитектор ПО
Миграция с Oracle на PostgreSQL с использованием автоматического конвертера
В докладе мы хотим рассказать об опыте миграции одной большой системы с Oracle на PostgreSQL. Сама система построена на стеке PHP + Oracle, её отличительной особенностью было то, что вся бизнес-логика была реализована в PL/SQL коде. В СУБД - это более 3000 пакетов с 4-10 функциями (процедурами) в каждом. В PHP - более 10000 форм со вставками анонимных блоков, используемых для получения данных, обработки и сохранения результатов в Oracle.
Для решения этой крайне объемной работы мы взяли ANTLR4 (синтаксический анализатор для чтения, обработки, выполнения или перевода структурированного текста), грамматику PL/SQL и создали автоматический конвертер, который позволяет преобразовать все объекты схемы и нашей системы из Oracle в рабочий код для PostgreSQL.