Обновить
132.95

PostgreSQL *

Свободная объектно-реляционная СУБД

Сначала показывать
Порог рейтинга
Уровень сложности

Поднимаем кластер PostgreSQL в Docker и Testcontainers

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели42K

Ранее я рассказывал о том, как запустить PostgreSQL в Docker. Тогда речь шла об использовании «ванильных» образов Postgres и поднятии одного хоста. В большинстве случаев этого достаточно как для тестов, так и для экспериментов, но нужно понимать, что в промышленной эксплуатации чаще всего используются высокодоступные (отказоустойчивые, кластеризованные) конфигурации PostgreSQL.

Сегодня я покажу, как запустить уже целый кластер PostgreSQL в Docker, а также в тестах через Testcontainers, и как вручную инициировать смену мастер-хоста.

Читать далее

Высокодоступные кластеры PostgreSQL с Patroni: Ваша очередь протестировать сценарии отказов

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели53K

Пару недель назад (перевод статьи от 2021 г.) мы с Джобином (Jobin) сделали небольшую презентацию в рамках Percona Live Online с названием, подобным теме этой статьи: "PostgreSQL HA с Patroni: Сценарии отказов и способы восстановления кластера после них". Мы развернули 3-узловую среду PostgreSQL на имеющемся у нас оборудовании и решили "ломать" ее различными способами: отключали от интернета и электропитания кабели, “убивали” основные процессы, пытаясь насытить процессоры. Всё это происходило при постоянной записи и чтении данных из PostgreSQL. Идея заключалась в том, чтобы посмотреть, как Patroni справится с отказами и будет управлять кластером, продолжая обеспечивать работу. Это была интересная демонстрация!

Читать далее

Как мы настраивали PostgreSQL для использования в качестве кэша

Уровень сложностиСложный
Время на прочтение10 мин
Охват и читатели14K

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

Читать далее

Postgresso №7 (56)

Время на прочтение12 мин
Охват и читатели3.1K

Конференции, битва за Ибицу

PGConf.СПб 2023

PGConf впервые пройдёт 25 сентября в Санкт-Петербурге. Конференция будет называться PGConf.СПб 2023. Место - Отель «Коринтия», Невский проспект., д.57.

Регистрация открыта и заявки принимаются. Подать заявку можно в личном кабинете. Количество тем не ограничено.

PGConf.Сибирь 2023

Пройдёт на площадке Город ИТ пройдёт 9-го сентября в Томске. Программа еще формируется, но общая канва известна.

PGIbiza 2023: Postgres and Ecosystem

Но с ней не всё просто. Казалось бы, на Ибице есть всё, чтобы поработать и расслабиться последовательно или одновременно (насколько помню, там даже доклады на пляже). Но всплыл старый конфликт между Альваро Эрнандесом (Álvaro Hernández Tortosa) и старейшинами (Core Team) PostgreSQL. Поскольку есть риск многое истолковать неправильно, напомним предысторию. Альваро не рейдер, попытавшийся захватить торговые марки PostgreSQL. Он революцьонэр. История эта началась ещё в 2021-м.

Читать далее

Запускаем Doom внутри PostgreSQL

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели23K

В статье разберём основные этапы создания расширения для PostgreSQL на языке C и как запустить внутри СУБД игру Doom.

Читать далее

Одна из возможных версий переезда с MySQL на PostgreSQL

Уровень сложностиСредний
Время на прочтение22 мин
Охват и читатели11K

В этой статье я расскажу, какие подводные камни ждали команду разработки бэкенда служебных мобильных приложений одного банка, решившей мигрировать с MySQL на PostgreSQL.

Читать далее

pgmig — история разработки инструмента управления изменениями в БД или чего нам не хватило в Liquibase и Flyway

Уровень сложностиСредний
Время на прочтение28 мин
Охват и читатели4.6K

Всем привет! На связи разработчики БД - Юрий Плотников и Андрей Григорьев, в этот раз рассказывать мы будем вдвоем, вернее не совсем вдвоем - об одном "фирменном" решении расскажут коллеги из нашего центра компетенций PostgreSQL.

Пара слов о заглавной картинке и логотипе

Несмотря на то, что история pgmig началась раньше, большое развитие он получил при разработке наших "сказочных" продуктов (youtube).

Поэтому мы решили, что ему также место среди сказочных персонажей - домовенок, приводящий процессы в порядок

Начнем издалека, с очевидных вещей, однако без этого было бы сложнее понять главную идею. Итак, к делу:

Читать далее

PostgreSQL: обходим подводные камни при миграции

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели12K

Привет! Меня зовут Антон Казачков, я специалист вендорской поддержки СУБД Platform V Pangolin. Это реляционная СУБД уровня enterprise, которая разработана в СберТехе на основе PostgreSQL и доработана до корпоративного уровня надёжности и производительности. Сегодня Pangolin — целевая СУБД Сбера, основа для миграции всех существующих приложений и разработки новых.

Расскажу о ситуациях, с которыми сталкиваются команды на последних этапах миграции СУБД и в начале производственного цикла. На Хабре часто обсуждаются нюансы переезда СУБД из разных проприетарных версий на PostgreSQL. А вот информации о том, как вводить базы в эксплуатацию и выявлять производственные «болячки», на мой взгляд, не так много.

Читать далее

Всегда ли хорош Index Only Scan?

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели18K

Среди применяемых в PostgreSQL методов доступа к данным Index Only Scan стоит особняком, считаясь у многих разработчиков "волшебной пилюлей" для ускорения работы запроса - мол, "Index Scan - плохо, Index Only Scan - хорошо, как только получим его в плане - все станет замечательно".

Как минимум, это утверждение неверно. Как максимум, при определенных условиях может вызвать проблемы чуть ли не на ровном месте.

Читать далее

Больше книг о СУБД — для тех, кто хочет погрузиться в работу с PostgreSQL

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели9.1K
image

Недавно мы подготовили подборку литературы для тех специалистов, кто хочет поближе познакомиться с Redis. Сегодня мы продолжаем тему и говорим о настоящей легенде. Шутка ли — PostgreSQL развивают с 1996 года. За это время СУБД успела «обрасти» крупным сообществом и не потеряла актуальности. На рынок до сих пор выходят посвящённые ей книги. Мы собрали наиболее свежие издания — им не более двух лет. Все материалы в подборке получили высокие оценки и рекомендации от резидентов Hacker News и Reddit.

Читать дальше →

Неочевидные проблемы с UUID ключами в PostgreSQL

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели50K

Существует множество причин использования универсального уникального идентификатора (UUID) в качестве первичного ключа таблиц баз данных. Например:

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

Читать далее

Lock записей и шквал «пятисоток»: какие шишки мы набили на миграциях в Django и как вам этого избежать

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели7.4K

Всем привет! Меня зовут Артём. Я бэкенд-разработчик Яндекс Практикума, занимаюсь продуктовой разработкой нашей платформы. Пришёл в команду почти три года назад, когда Практикум только развивался, так что экспериментировать приходилось много.

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

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

Читать далее

Postgresso №6 (55)

Время на прочтение14 мин
Охват и читатели5.1K

PostgreSQL 16 Beta 2

Изменения по сравнению с 1-й бетой коснулись прежде всего правил сортировки (collation): провайдер по умолчанию, которого выбирает initdb, теперь сноваlibc. В 1-й бете решили сделать так: если доступна ICU, то выбирается ICU. Откатили. Временно или нет - не знаю. То же при сборке из исходников.

Поведение при выборе локали C сlibicu - возвращено обратно кlibicu;[??вот это не понял] На ICU 64 и выше локальC не используется, а у ICU есть собственный механизм для выбора локали или генерации ошибки.

Полный список новых и измененных старых возможностей 16-й версии в release notes. Скачать можно здесь.

Обожаемый и желанный:

Читать далее

Ближайшие события

Задачи третьего этапа олимпиады «IT-Планеты» по PostgreSQL

Время на прочтение13 мин
Охват и читатели11K

В шахматы меня когда-то легко обыгрывал восьмибитный компьютер, а действующего чемпиона мира IBM-овский Deep Blue одолел уже в 1997 году. Но игра Го держалась значительно дольше: победить обладателя девятого дана Ли Седоля удалось только в 2016 году компании Гугл с машиной AlphaGo. В Го простые правила, которые, однако, приводят к очень сложным стратегическим построениям. Ровно то, что нужно: простое условие, не дающее намека на то, как справиться с задачей одним SQL-запросом. Тема Го и легла в основу задач финала олимпиады, про которую я уже начал рассказывать в прошлый раз.

Финал проходил в Сочинском государственном университете. Пользуясь случаем, хочу сказать спасибо гостеприимным сотрудникам университета и организаторам, оперативно устранявшим все трудности.

Поговорим про задачи

Шпаргалка по SQL (postgres), которая выручает меня на собесах

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели274K

Привет, Хабр!

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

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

Читать далее

Оптимизация работы с большим объемом данных при помощи партиционирования в SQL

Время на прочтение6 мин
Охват и читатели38K


Автор статьи: Артем Михайлов


Работа с большим объемом данных является неотъемлемой частью профессиональной разработки. Независимо от того, занимаетесь ли вы разработкой веб-приложений, аналитикой данных или созданием сложных систем управления, эффективная обработка больших объемов данных – это фундамент успеха вашего проекта.

Как разработчики, мы часто сталкиваемся с задачами, в которых требуется обрабатывать и анализировать огромные объемы данных. Наша задача – сделать это эффективно и быстро.
Читать дальше →

Подойдет ли PostgreSQL вообще всем проектам или нужны альтернативы

Время на прочтение15 мин
Охват и читатели21K

В интернете только и разговоров, что про PostgreSQL и MySQL, но выбор СУБД много шире. В этом материале мы рассмотрим несколько популярных баз данных, разберемся с их спецификацией и сценариями использования, чтобы выйти за рамки привычных решений.
Читать дальше →

Переезд с Oracle на опенсорсный PostgreSQL: кейс «Магнита»

Время на прочтение9 мин
Охват и читатели8.9K

У нас было 2 ТБ данных на 4 информационных системы, 237 таблиц, 221 хранимая процедура, свыше 30 тысяч строк кода, ванильная версия PostgreSQL и потребность в реализации обратного потока данных в Oracle. Не то чтобы мы были экспертами в создании потоков данных между СУБД, но я знал, что рано или поздно нам придется этим заняться. 

Читать далее

Как сэкономить свои нервы и деньги компании на перестроении структуры больших таблиц без простоя в PostgreSQL

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели8.8K

Привет! Меня зовут Васильев Виктор, я DBA в компании UIS и CoMagic. В этой статье на реальных примерах расскажу, как можно сэкономить время разработчика, администратора баз данных и ресурсы сервера(ов), используя утилиту pg_rebuild_table. Сопровождая большие, высоконагруженные системы, с бо’льшей вероятностью каждый сталкивался с кейсами, о которых будет рассказано дальше. Некоторые технические подробности пройду без детализации, чтобы сильно не усложнять и не делать статью очень громоздкой. Лучше отвечу на вопросы в комментариях.

Читать далее

Задачи второго этапа олимпиады «IT-Планеты» по PostgreSQL

Время на прочтение16 мин
Охват и читатели10K

В этом году наша компания впервые провела конкурс по базам данных в рамках международной олимпиады IT-Планета по информационным технологиям. Раньше на олимпиаде использовалась СУБД Oracle; наш коллега Евгений Бредня в свое время делился таким опытом.

Олимпиада проходила в три этапа. Первым шел заочный теоретический тест, который преодолели примерно двести человек из двух тысяч зарегистрировавшихся.

На втором этапе участникам было предложено подумать над пятью задачами, каждую из которых следовало решить одним SQL-запросом. Этот этап также проводился заочно: на раздумья было дано примерно три недели. Условия всех задач были опубликованы одновременно, но у каждой был свой крайний срок; поэтому первыми шли задачи полегче, чтобы на более сложные осталось больше времени. Задачи проверялись на корректность (автоматическими тестами) и на качество кода (вручную). По результатам мы отобрали двадцать человек для последнего, очного этапа.

Третий этап состоялся 27 мая в Сочи. К сожалению, из двадцати приглашенных приехать смогли только четырнадцать; между ними и состоялось соревнование. Задачи этого этапа также предполагали решение одним запросом, но сами задания были объединены общей темой, навеянной игрой Го, и строились так, что решение одной задачи помогало подступиться к следующей.

Я занимался придумыванием задач для второго и третьего этапов. Хочу поблагодарить участников олимпиады, которым пришлось их решать, организаторов, собравших нас вместе, и своих коллег: Дарью Рисухину, взвалившую на себя все оргвопросы, Евгения Моргунова, предоставившего задания для первого этапа, а также всех помогавших мне с задачами.

Поговорим о втором этапе

Вклад авторов