title

text

Андрей Фефелов
Андрей Фефелов Mastery.pro Технический директор
: декабря
22 мин

Как обфусцировать базу в Postgres для задач нагрузочного тестирования веб-приложений

Postgres - отличная база данных для высоконагруженных веб-приложений. В свою очередь для таких веб-приложений периодически встает задача нагрузочного/стресс тестирования. Кроме очевидных сложностей: эмуляции рабочего окружения близкого к продуктовому и генерации трафика есть задача подготовки базы данных для тестового окружения. В эпоху борьбы за приватность персональных данных (152-ФЗ, GDPR, HIPAA) использование базы с прода выглядит плохой идеей. Выход один - обфусцировать данные.

Существуют различные инструменты для обфускации данных в Postgres. В докладе я расскажу, какие из них мы выбрали и почему, с какими трудностями столкнулись во время использования, насколько удачно решили задачу.

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

Видео

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

  • Daniel Westermann
    Daniel Westermann dbi services Principal Consultant
    45 мин

    Как переносить данные из Oracle в PostgreSQL и обратно

    Использование PostgreSQL стало обычным делом во множестве организаций. В большинстве случаев PostgreSQL устанавливают в дополнение к уже имеющимся СУБД Oracle, и довольно скоро возникает закономерный вопрос: как перебрасывать данные из Oracle в PostgreSQL и наоборот? Давайте перенесёмся в прошлое, в март 2001, когда вышло новое расширение SQL стандарта, определившее общие принципы создания API для управления внешними данными: SQL/MED (ISO/IEC 9075-9:2008). Сообщество PostgreSQL довольно быстро создало фреймворк для использования рекомендаций стандарта в виде так называемых обёрток сторонних данных (foreign data wrappers). Это случилось в 2011 с выходом PostgreSQL 9.1. С тех пор число обёрток сторонних данных постоянно растёт. Сегодня благодаря им PostgreSQL может интегрировать данные почти из любого внешнего источника, будь то обычные файлы, другие реляционные СУБД или даже неструктурированные данные. В рамках этого доклада мы рассмотрим обёртку сторонних данных для Oracle и то, как её можно использовать для получения данных из Oracle в PostgreSQL. Однако обратное тоже верно: данные из PostgreSQL также можно отправить в Oracle, и это может быть важно для соблюдения требований. Обещаю, что в докладе будет две части: слайды и много демонстраций.

  • Kohei KaiGai
    Kohei KaiGai HeteroDB Главный архитектор и генеральный директор
    45 мин

    GPU-версия PostGIS и индекса GiST

    В рамках данного доклада мы представим GPU-версию PostGIS и индекса GiST, которую мы разработали в качестве новой функциональности PG-Strom.

    Сегодня наши устройства (например, мобильные телефоны) динамически генерируют геолокационные данные. Это часто используют для маркетинга на основе местоположения устройства, доставки push-уведомлений, оповещения о чрезвычайных ситуациях, и так далее. Люди часто используют технологию GIS для получения данных о пользователях, находящихся в данный момент в данном месте. Даже если определения географических областей представляют собой сложные многоугольники, функции PostGIS могут генерировать правильные пересечения, однако это часто требует интенсивных вычислительных нагрузок. Графический процессор (GPU) был разработан для массовых параллельных вычислений с тысячами ядер на чип и более. Мы разработали расширение PG-Strom для частичного выполнения SQL-запросов на устройствах GPU. В новом релизе PG-Strom v3.0 будет добавлена поддержка для нескольких функций PostGIS и GiST-индексов для выполнения ресурсоёмких вычислений с обработкой геолокационных данных.

    В рамках этого доклада мы расскажем о создании этой технологии, её использовании, реализации и представим результаты сравнительного тестирования для GPU-версии PostGIS и GiST-индекса.

  • Amit Kapila
    Amit Kapila Fujitsu Senior Director
    45 мин

    Как будет развиваться логическая репликация?

    Логическая репликация в PostgreSQL доступна начиная с версии 10.0, и с каждым новым релизом она улучшается. Мы начнём доклад с обсуждения базовой архитектуры логической репликации в PostgreSQL, а затем перейдём к различным способам её использования.

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

    Мы также остановимся на других крупных разработках в области логической репликации, которые позволят осуществлять потоковую передачу транзакций в заранее заданное время. Это позволит реализовать логическую репликацию без конфликтов. Это также можно будет использовать для масштабирования чтения. Благодаря протоколу 2PC мы сможем убедиться, что реплики получили все данные, закоммиченные на мастере. Теперь мы можем спроектировать систему, где определённые узлы являются владельцами некоторого набора таблиц. Так мы всегда сможем получить данные этих таблиц с этих узлов, а также установить некий внешний процесс для учитывающей это маршрутизации для операций чтения.

    В конце доклада мы перечислим новые улучшения, связанные с логической репликацией и вошедшие в недавние релизы PostgreSQL.

  • Анастасия Лубенникова
    Анастасия Лубенникова Postgres Professional Разработчик
    45 мин

    Встроенное секционирование в PostgreSQL

    В этом докладе мы сравним встроенное декларативное секционирование PostgreSQL со сторонними расширениями pg_pathman и pg_partman, чтобы понять каких возможностей пока не хватает в ядре. Кроме того, я расскажу, над какими фичами в этой области сейчас активно работает сообщество и чего можно ожидать в релизе PostgreSQL14.