News & Blog back

Subscribe

PostgreSQL – от теории к практике

Нас часто спрашивают: “С чего начать изучать PostgreSQL? Что позволит стать грамотным и востребованным специалистом?”

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

С какой книги начать изучение PostgreSQL? На какой блог подписаться? Куда обратиться за помощью, если столкнулся с нестандартной проблемой?

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

Официальная документация PostgreSQL.

Казалось бы, элементарно – начинай с основ, но по какой-то причине этот многостраничный труд некоторые надеются обойти стороной.

Тем не менее наши DBA, в первую очередь, советуют начинать знакомство с СУБД с изучения официальной документации PostgreSQL. Собранные здесь инструкции написаны DBA, разработчиками PostgreSQL, другими членами сообщества, которые сами регулярно пользуются документацией, а значит, язык, на котором она написана, будет понятен как новичкам, так и продвинутым администраторам.

Книги, статьи.

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

Для начинающих DBA:

Прекрасное современное учебное пособие для изучения конкретно PostgreSQL;

Отличный учебник, в котором основы изложены четко и понятно;

Хорошая книга про администрированию БД. Помимо перечисления новых фич PostgreSQL 12, книга рассматривает логическую репликацию, кластеризацию, мониторинг, оптимизацию производительности, конфигурацию системы и оптимизацию запросов и представляет собой комплексный справочник по работе с СУБД в целом. Кроме того, он дает представление о процессе перехода с Oracle на PostgreSQL; 

Несмотря на то, что книга не самая свежая – 2015 года издания – это отличное компактное практическое руководство по пониманию методов решения проблем, с которыми вы можете столкнуться при работе с PostgreSQL. 

Для тех, у кого уже есть опыт работы с БД:

Фундаментальная классика в изучении БД. Его книги будут интересны тем, у кого уже есть опыт работы с базами данных и не хватает более широкой картины и системных знаний. В них есть достаточно глубокое погружение в computer science, разбор реляционной теории и т.д. Для новичка они могут быть избыточны, так как в повседневной работе с БД такие знания не обязательны. Если вам все же интересна теория, но не хотелось бы этому посвящать слишком много времени, то Настройка приложений баз данных Б.А.Новикова, Г.Р.Домбровской будет прекрасным компромиссом;

Классика в изучении БД на русском, которая точно пригодится на старте работы с любыми БД. 

Книги, которые помогут углубить ваши знания о работе СУБД:

Здесь приведены как фундаментальные знания по теории транзакций, так и практические примеры, которыми можно воспользоваться в работе с СУБД;

Отличное объяснение про распределенные базы данных.

Развивающимся разработчикам, копающим глубже, пригодятся эти пособия:

Книга фокусируется на прикладных методах обеспечения высокой доступности и производительности БД. Полезна как для разработчиков, так и для начинающих ДБА;

Достаточно обширный труд,  который поможет в разработке сложных решений для БД. Книга содержит интервью с лидирующими в комьюнити разработчиками и предлагает решения для разработчиков, релевантные вне зависимости от языка – будь то PHP, Java или Python.

Для DBA, желающих изучить тему глубже, рекомендуем: 

Книга детально разбирает внутренние механизмы работы БД, такие как кластеризация и таблицы, работа с запросами, FDW,  VACUUM, WAL, логическая репликация и прочее. Не все пригодится на практике, но к ней можно прибегнуть для поиска специфических решений. Отметим отдельно, если вам нужно понять какие-то конкретные внутренние механизмы работы PostgreSQL, не бойтесь заглянуть в исходники, ведь там вы найдете много полезной информации в readme файлах и в комментариях, и при этом не обязательно читать и разбираться в коде;

Хорошая книга для системных инженеров и DBA по траблшутингу;

Книга для тех, кто хочет получить базовые знания о принципах построения компьютерных сетей, способах создания и управления ими. Ее стоит использовать скорее как справочник, чем читать от корки до корки. Актуальное издание можно найти здесь;

К сожалению, это единственная книга про ядро Linux и местами она достаточно устарела. При этом более актуального пособия пока нет, потому она остается хорошей отправной точкой для тех, кто хочет понять, как работает Linux. Для того, чтобы получить более полноценную и  актуальную картину, советуем дополнительно почитать ресурс lwn.net.

Конечно, мы не могли пропустить одну из главных книг о языке C, на котором, помимо PostgreSQL, написаны и другие серьезные БД: 

Конференции.

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

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

Наши ДБА регулярно выступают в качестве спикеров в России и за рубежом. Записи их докладов можно найти на нашем YouTube-канале.

Изучить типичные ошибки разработчиков при работе с PostgreSQL, например, можно по этим выступлениям:

Множество хороших тем рассматривается докладчиками на таких конференциях, как HighLoad++, PGConf.Russia, PGDay Russia, PGConf.EU, а если хотите пообщаться с разработчиками и core team PostgreSQL, рекомендуем PGCon.

Online-митапы, подкасты.

Среди множества онлайн-митапов наши DBA выделяют встречи RuPostgres, которые проходят в прямом эфире по вторникам. Ведущие – Николай Самохвалов (Postgres.ai) и Илья Космодемьянский (Data Egret) – вместе с гостями обсуждают вопросы, связанные с разработкой PostgreSQL, существующими фичами, обновлениями, тематическими мероприятиями. Зрители могут задать вопрос в прямом эфире или предложить тему для будущих встреч

Кроме того, существует пара подкастов, которые регулярно приглашают профессионалов сообщества PostgreSQL: Цинковый прод и SDCast

Вот несколько примеров с участием наших DBA:

Форумы, блоги, чаты.

Случается, перелопатишь кучу источников, но ответа на свой вопрос не находишь. К счастью, мы работаем с open-source и сообщество PostgreSQL очень открытое, а его участники готовы помочь советом в сложных вопросах.

Пообщаться с другими пользователями PostgreSQL, поделиться опытом можно на форумах, в чатах и блогах специалистов, к примеру:

https://www.postgresql.org/community/irc/ (англ.)

https://www.sql.ru/forum/postgresql  (руc.)

https://use-the-index-luke.com (англ.) – регулярно обновляемый ресурс от Маркуса Винанда,

Postgresteam.slack.com (англ.)

https://www.facebook.com/groups/postgresql/ (рус.)

https://dataegret.com/blog/ (руc./англ.)

https://t.me/pg_sql (англ.)

https://t.me/pgsql (руc.)

https://t.me/dba_ru (руc.)

https://www.depesz.com/ (англ.)

Также существуют тематические мейлинг листы сообщества, в которых можно задать любой вопрос, связанный с функционалом СУБД, и зачастую получить фидбек от самого Тома Лейна или других членов Core Team PostgreSQL. 

Помимо этого, есть ряд блогов опытных разработчиков и DBA, в которых они делятся опытом, кейсами, обсуждают фичи и обновления СУБД: 

Planet postgresql (англ.) – официальный агрегатор блогов по PostgreSQL.

https://habr.com/ru/hub/postgresql/ (руc.)

Утилиты.

Существует ряд утилит для работы с PostgreSQL, которые могут значительно облегчить вашу жизнь. Среди них те, которыми пользуются наши DBA: 

  • pgCenter – инструмент администрирования командной строки для работы с PostgreSQL статистикой;
  • PgBouncer – программа, управляющая пулом соединений PostgreSQL.
  • pgBackRest – инструмент для резервного копирования и восстановления для базы данных PostgreSQL;
  • WAL-G – еще один инструмент для создания резервных копий базы и восстановления из них;
  • Patroni – шаблон для создания собственного индивидуального решения с высокой доступностью с использованием Python и распределенного хранилища конфигураций;
  • pgcompacttableинструмент для устранения bloat в таблицах и индексах с целью освобождения места на диске без долгих блокировок;
  • pg_repack – еще один инструмент для устранения bloat с минимальными блокировками, работающий несколько другим способом;
  • pg-utils – набор полезных утилит для работы DBA с PostgreSQL.

Стоит отметить, что даже самый полноценный список книг, форумов и утилит не заменит практического применения знаний. Поэтому найдите или придумайте задачу: поставьте  базу и начните играть с настройками, а затем использовать ее. Уверяем, это станет для вас бесценным опытом.

Разумеется, в этом посте представлен далеко не самый исчерпывающий список источников, полезных при работе с PostgreSQL. Да, не все подойдет в вашем конкретном случае и станет актуальным для вашей работы, но мы надеемся, что среди этих источников вы найдете подходящие и интересные вам ресурсы. 

А наши рекомендации позволят вам сэкономить время на поиске полезного материала и сразу перейти к изучению. Познавательного погружения в PostgreSQL!

You may also like: