Пример простого версионирования записей PostgreSQL

Автор: admin от 15-09-2018, 21:40, посмотрело: 368

Когда то видел реализацию «истории записей» — версионирования, на стороне программы, работающей с SQL базой. Перед изменением записи, из базы получалась старая версия, записывалась в XML и полученная строка XML записывалась в отдельную таблицу версий.



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



Для описания реализации одной таблицы версий мало, поэтому придется описать еще несколько таблиц для примера.



Практически во всех базах данных, за редким исключением, есть таблица users – пользователи. Историю изменений — версий пользователя полезно хранить, например, для возможности откатится на старую версию, силами самого пользователя.



Пример таблицы пользователей:



Пример простого версионирования записей PostgreSQL



Последние два поля на картинке, нужны для таблицы версий, также их можно назвать «автор версии» и «дата версии», но, при желании, можно обойтись без них.

Категория: Программирование

 

Разбираемся с partitions в PostgreSQL 9

Автор: admin от 9-09-2018, 21:40, посмотрело: 131

PostgreSQL 10 был выпущен еще в начале октября 2017го, почти год назад.



Одна из наиболее интересных новых “фич” — это безусловно декларативное партиционирование. Но что, если вы не спешите апгрейдится до 10ки? Вот Amazon, к примеру, не торопится, и ввел поддержку PostgreSQL 10 только в последних числах февраля 2018-го.



Тогда на помощь приходит старое-доброе партиционирование через наследование. Я — software architect финансового отдела в компании занимающейся такси, так что все примеры будут так или иначе связаны с поездками (проблемы связанные с деньгами оставим на другой раз).



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



Изначальной причиной написания статьи стало то, что большинство примеров partitioning’а в PostgreSQL с которыми я сталкивался были очень базовыми. Вот таблица, вот одна колонка, на которую мы смотрим, и быть может даже заранее знаем, какие значения в ней лежат. Казалось бы, все просто. Но реальная жизнь вносит свои коррективы.

Категория: Веб-разработка

 

Как ускорили PostgreSQL 10

Автор: admin от 3-04-2018, 14:35, посмотрело: 222

(В статье использованы примеры и пояснения из книги Nouveaulites de PostgreSQL 10. (с) Dalibo, перевод с французского Игоря Лёвшина, редактор Егор Рогов (оригинал). Примеры проверены, иногда изменены для большей наглядности)



Конечно, мы уже ждем не дождемся появления 11-й версии PostgreSQL. Но уже сейчас ясно, что некоторые довольно радикальные улучшения производительности появились уже в версии 10. Определенно есть смысл разобраться сначала с ними.



Производительность "десятки" улучшилась сразу в нескольких направлениях. В этой статье речь пойдет об ускорении за счет:




  • распараллеливания сканирования таблиц и индексов,

  • более эффективного агрегирования,

  • быстрых переходных таблиц,

  • ускорения запросов за счет многоколоночной статистики.



Мы начнем с параллелизма.

Категория: Операционные системы » iOS

 

Дайджест новостей из мира PostgreSQL. Выпуск №4

Автор: admin от 26-03-2018, 22:20, посмотрело: 177

Дайджест новостей из мира PostgreSQL. Выпуск №4


Мы продолжаем знакомить вас с самыми интересными новостями по PostgreSQL.



Релизы



Вышел PostgreSQL 10.3



В этом релизе закрыта дыра безопасности: неконтролируемый путь поиска объектов в схемах БД в pg_dump и других приложениях. Среди других исправлений: теперь логическая репликация не будет пытаться передавать изменения, если таблицы запрещены для публикации. Также вышли обновленные версии 9.x.



Версия Postgres Pro Standard 10.3.1 вышла в тот же день, что и PostgreSQL 10.3, так как необходимо было залатать дыру как можно быстрее. Сейчас доступны уже Postgres Pro Standard 10.3.2 и Postgres Pro Enterprise 10.3.2. В них в том числе добавлена поддержка TOAST для атрибутов INCLUDED в индексах-B-деревьях. Серьезно усовершенствована утилита pg_probackup (теперь это версия 2.0.16).

Категория: Программирование

 

Дайджест новостей из мира PostgreSQL. Выпуск №2

Автор: admin от 30-01-2018, 22:10, посмотрело: 419

Дайджест новостей из мира PostgreSQL. Выпуск №2


Мы продолжаем знакомить вас с самыми интересными новостями по PostgreSQL. Первый выпуск был почти месяц назад. Наш второй выпуск собрал в полтора раза больше материалов, а к существующим разделам добавился новый – книги о Постгресе и технологиях БД.



Релизы и коммиты




  • Cybertec объявил выход pgconfigurator — визуального конфигуратора для редактирования файла postgresql.conf. Можно настраивать:

    • параметры репликации;

    • параметры, связанные с контрольными точками;

    • ввод/вывод, оптимизировать параллельные запросы;

    • конфигурировать память.


  • Devart предлагает dbForge Studio for PostgreSQL — графическую среду для работы с базами данных и объектами PostgreSQL.

  • Вышла версия JDBC 42.2.0

    Новое:

    • поддержка SCRAM-SHA-256 для PostgreSQL 10 в версии JDBC 4.2 (Java 8+),

    • используется библиотека Ongres SCRAM library;

    • Make SELECT INTO и CREATE TABLE AS теперь возвращает клиенту число строк.

    • поддержка Subject Alternative Names для SSL-соединений

    • поддержка isAutoIncrement в метаданных для столбцов идентификации в PostgreSQL 10;

    • поддержка массивов примитивов;

    • появилась поддержка get/setNetworkTimeout() в соединениях;

    • в Make GSS JAAS теперь логин не обязателен; добавлена опция «jaasLogin»






Категория: Операционные системы » Windows

 

Дайджест новостей из мира PostgreSQL

Автор: admin от 28-12-2017, 13:30, посмотрело: 213

Дайджест новостей из мира PostgreSQL


Друзья! Мы решили запустить дайджест свежих новостей, статей, релизов и событий из мира PostgreSQL, который будет выходить раз в две недели. В подборке вы найдете ссылки на наиболее интересные материалы по PostgreSQL, вышедшие за период. Если мы пропустили что-то важное для вас – пишите в комментариях!



Релизы




  • Вышел Postgres Pro Standard 10.1.1. В эту версию перенесены все ключевые доработки и новые возможности СУБД Postgres Pro Standard 9.6, исправлены некоторые найденные ошибки. Также вышла сборка PostgreSQL 10.1 под Windows

  • Вышла версия PgBouncer 1.8.1.. Исправлена ошибка в 1.8.: добавлен недостающий файл, теперь PgBouncer без проблем собирается из тарбола.

  • Появилась версия драйвера psqlODBC 10.01.0000. Некоторые поправки и усовершенствования по сравнению с версией 10.00.0000.





Статьи




  • В статье Jsonb: few more stories about the performance

    Дмитрий Долгов (Zalando) обнародовал производительность PostgreSQL, MySQL и MongoDB на тестах YCSB. Сравнивалась производительность обработки бинарных JSON-ов (JSONB и BSON). Методика тестирования (в облаке) расписана подробно, есть выводы и рекомендации.

    До этого тема обсуждалась на PGConf.eu2017 в Варшаве и на других конференциях. Например, в презентации Олега Бартунова по результатам YCSB-тестирования в Postgres Professional (слайд 81 и далее). В этих тестах на выделенных мощных серверах сравнивались только MongoDB и PostgreSQL, а акцент был сделан на высокую нагрузку (тысячи клиентов одновременно).

Категория: Программирование » Веб-разработка

 

PGHACK. Соревнование в офисе Avito 2 сентября

Автор: admin от 7-08-2017, 13:30, посмотрело: 323

В декабре 2016 мой коллега kevteev сказал, что было бы неплохо замутить митап по постгресу в следующем году на площадке Avito. А незадолго до этого безопасники пригласили меня поучаствовать в нескольких CTF, в том числе одном Attack-Defence. И я ответил ему: “А почему бы не замутить постгресовый хакатон?”. И вот мы подготовили первое в России очное соревнование для специалистов по PostgreSQL, и сегодня я хочу пригласить на него вас.



PGHACK. Соревнование в офисе Avito 2 сентября
->

Категория: Админитстрирование » Системное администрирование

 

Начинаем работать с Ruby on Rails в Docker

Автор: admin от 1-08-2017, 11:45, посмотрело: 254

Начинаем работать с Ruby on Rails в Docker

Docker замечательно справляется с изолированием приложений и их окружений, облегчая распространение и репликацию состояний между различными средами (dev, test, beta, prod и т. д.). Его использование позволяет избавиться от проблемы «на моей машине все работает» и помогает с легкостью масштабировать приложение по мере его роста.



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



В этой статье мы возьмем простое приложение на Rails и подготовим его для использования в Docker-контейнере («докеризуем»).

->

Категория: Системное администрирование, Веб-разработка

 

Как настроить Travis CI для проекта .NET Core + PostgreSQL

Автор: admin от 1-08-2017, 00:55, посмотрело: 527

Я расскажу о том, как настроить автоматический запуск модульных тестов в сервисе Travis CI для .NET Core проекта, в котором используется PostgreSQL.



Можно использовать эту статью как пример для быстрого старта.



Как настроить Travis CI для проекта .NET Core + PostgreSQL ->

Категория: Программирование

 

Докеризация высокодоступного Postgres кластера

Автор: admin от 31-07-2017, 10:55, посмотрело: 836

Докеризация высокодоступного Postgres кластера


Пару месяцев назад мы переехали из Амазон на свои выделенные сервера(Hetzner), одна из причин тому была высокая стоимость RDS. Встала задача настроить и запустить master-slave кластер на выделенных серверах. После гугления и прочтения официальной документации, было принято решение собрать свое собственное решение высокодоступного асинхронного кластера Postgres.


->

Категория: Админитстрирование » Системное администрирование

 
Назад Вперед