Обновить
152.1

PostgreSQL *

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

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

Вместо квестов по поликлиникам: как мы разработали архитектуру информационной системы для пациента

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

Привет, я - Алмаз Мустакимов, ведущий разработчик одного из бизнес-центров в компании «БАРС Груп». Мы более года работаем над мобильным приложением, которое фактически позволяет получить любые услуги здравоохранения в режиме единого окна, без многочасовых квестов по поликлиникам.

Читать далее

Бессерверные платформы для работы с PostgreSQL: что интересного для разработчиков

Время на прочтение3 мин
Охват и читатели6.3K
image

Об оптимизации работы с PostgreSQL уже много рассказывали (в этом году, среди прочего, запустили DBaaS PostgreSQL). Однако тема далеко не исчерпана. Подготовили для вас обзор нового инструмента, который поможет работать с базами данных PostgreSQL, не задумываясь о базовой серверной инфраструктуре.

Бессерверные вычисления приобрели популярность в 2010-х и с тех пор остаются актуальными. В отличие от выделенных серверов, бессерверные модули запускаются при необходимости для каждого события. Технология позволяет не резервировать вычислительные ресурсы заранее и экономить.
Читать дальше →

В поисках СУБД для MarTech? Обратите внимание на GreenPlum

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

Несмотря на общую популярность и тренд, Massive Parallel Processing (MPP) РСУБД всё ещё очень редко используются для целей автоматизации маркетинга (платформы aCRM). Часто быстрее и удобнее использовать классическую РСУБД. Однако рано или поздно организации приходят к тому, что вертикальное масштабирование уже не спасает, а бизнес продолжает расти.

В рамках данной статьи хотим поделиться опытом использования Massive Parallel Processing (MPP) РСУБД на примере GreenPlum в проекте внедрения платформы aCRM для автоматизации маркетинговых процессов в крупном Retail.

Поехали!

«Надо переехать с Oracle на PostgreSQL. Ты только не волнуйся!»

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

С этого сообщения в мессенджере началось мое масштабное расследование вопроса, который давно не дает спать многим айтишникам — можно ли вот так взять и переехать с Oracle на «свободную» СУБД PostgreSQL?

Этот вопрос сначала бередил умы только тех, кто был в курсе стоимости закупок лицензий. В крупных компаниях бюджет на это мог составлять несколько десятков миллионов долларов. А потом каждый год поддержка вендора «съедала» ещё 22% от стоимости лицензий. Теперь та финансовая боль сменилась другой, и у компаний поменялся запрос: а можно ли заменить? И главное, можно ли организовать это в разумные сроки и по адекватной стоимости? 

Скажу сразу, что в этом посте не будет технических аспектов миграции с СУБД Oracle на PostgreSQL. Как это делать и как обходить сложности — разберем в следующий раз. Тут же больше поговорим о целесообразности и возможности миграции. С этим мы разбирались в ходе одного проекта, а заодно развенчали строй существующих иллюзий. 

Красная таблетка

Миграция кода с Oracle на PostgreSQL: особенности и пути обхода, средства конвертации, вспомогательные модули

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

Эта статья завершает цикл о миграции с СУБД Oracle на СУБД PostgreSQL. В первых двух статьях рассматривались проблемы и устоявшиеся способы переноса данных из одной СУБД в другую (часть 1, часть 2). В третьей статье была представлена часть особенностей, которые нужно учесть при переводе хранимого кода с PL/SQL на PL/pgSQL. В сегодняшнем материале рассматривается оставшаяся часть особенностей, адаптация и конвертация кода, включая выбор средств для конвертации.

Глобальные структуры данных уровня пакета

Для таких структур рекомендуется использовать модуль pg_variables. Он позволяет сохранять как скалярные значения, так и множество записей, массивы

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

Пример: у одного клиента процессы Postgres тратили большое количество времени на планирование запросов, поскольку они многократно пытались прочитать данные pg_statistic и pg_class и при этом взять соответствующие блокировки на самые распространённые объекты. Соответственно, от создания и удаления временных таблиц на каждую транзакцию пришлось отказаться.

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

Читать далее

Работа с хранимым кодом приложения при миграции с Oracle на PostgreSQL: особенности, сложности и способы их преодоления

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

В предыдущих статьях о миграции с Oracle на Postgres мы рассматривали перенос данных из одной системы управления базами данных в другую (часть 1, часть 2). Сегодня разговор пойдёт об особенностях работы с кодом приложения при необходимости смены СУБД. В частности, будут рассмотрены следующие вопросы:

Читать далее

Что означает I в ACID и как это можно использовать

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

Пройдя много собеседований, выяснилось, что довольно приличная часть собеседующих, спрашивавших или как-то затрагивавших тему транзакций и их работы, не знают как работают транзакции и что означает для разработчика термин изоляция. Вплоть до архитектора в одной очень большой российской компании, для которого выводы, использованные мною для формулирования решения при прохождении архитектурной секции оказались чем-то вроде бреда. Пока готовится вторая статья (Миллиард абитуриентов МИРЭА 2), можно отвлечься и разобрать тему, продемонстрировать разработчикам что означает для них I в ACID.

Попробовать заблокировать запись

Все, что вам нужно знать об Airflow DAGs, ч.3.1 — Создание шаблонов

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

Все об использовании шаблонов в Airflow с примерами кода. Продолжение серии публикаций astronomer.io

Читать далее

Типы таблиц в PostgreSQL: clustered, foreign, partitioned и inherited tables

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

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

Читать далее

Postgresso #7 (44)

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

ИТ-инфраструктура — это как водопровод, без неё жизнь уже почти невозможна. И мы продолжаем выпускать Postgresso.



Релизы и коммитфесты Postgres


PostgreSQL 15 Beta 3


Третья бета закрывает неожиданно обнаруженную дыру в безопасности. Ситуация объяснена в пресс-релизе и вот в этой статье Дэна Гарсии (Dan Garcia, EDB), но на наш взгляд яснее всего суть изложил Том Лейн (Tom Lane) в рассылке pgsql-committers (перевод с некоторыми вольностями):

Раньше, если скрипт расширения отрабатывал CREATE OR REPLACE, и такой объект уже существовал, но принадлежал расширению, то оно переписывало объект как часть расширения. При этом права на объект не переписывались, а наследовались. Это могло случаться и неумышленно, что тоже плохо, но злостный пользователь мог заранее создать объект с нужным именем, ожидая, что кто-то установит расширение, и тогда у атакующего будут права на переписанный объект, который можно будет модифицировать для атаки. Поэтому следует запретить операции CREATE OR REPLACE с объектами, не принадлежащими расширению. По этой же причине и CREATE IF NOT EXISTS не должна работать, когда уже есть объект с таким именем, не принадлежащий расширению.

Также исправлено ещё 40 багов. Обновлены PostgreSQL 14.5, 13.8, 12.12, 11.17, 10.22. Ветка 10.x скоро будет выведена из оборота. Общедоступная версия (general availability) намечена на конец 3-го квартала. Вся функциональность 15-й версии по сравнению с предыдущими перечислена здесь.

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

Все, что вам нужно знать об Airflow DAGs, ч.3 — Проектирование DAG

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

Поскольку Airflow — это на 100% код, знание основ Python - это все, что нужно, чтобы начать писать DAG. Однако написание эффективных, безопасных и масштабируемых DAG требует учета некоторых моментов, специфичных для Airflow. В этом разделе мы рассмотрим некоторые передовые методы разработки DAG, которые максимально используют возможности Airflow.

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

Читать далее

Миллиард абитуриентов МИРЭА

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

В предыдущей статье, была рассмотрена модель данных, необходимая для хранения информации об абитуриентах. Теперь пришло время показать, как используя реляционные БД можно обрабатывать модифицирующие запросы от миллиарда абитуриентов. А что бы расставить все точки над i, предлагаемая архитектура должна обрабатывать миллион модифицирующий запросов в секунду. Используя реляционные БД, гарантировать, что все возможные комбинации обрабатываются за сутки для миллиарда абитуриентов, каждому из которых предоставляется 20 вариантов! С ростом числа абитуриентов требования по железу должны рости линейно.

Стать абитуриентом МИРЭА

Postgres Pro Enterprise 14.4.1: что нового — статистика, безопасность, анализ работы VACUUM

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

В дни майского HighLoad++ Foundation 2022 наша компания объявила о выпуске Postgres Pro Enterprise 14.2.1. С тех пор вышло несколько обновлений, мы расскажем о наиболее свежем из них - Postgres Pro Enterprise 14.4.1, основанном на PostgreSQL 14.4. Этот выпуск включает все новые возможности, появившиеся в PostgreSQL 14, а также исправления ошибок, вошедшие в недавние корректирующие выпуски PostgreSQL. В данной статье мы рассмотрим ключевые возможности Postgres Pro Enterprise 14.4.1 и «ванильной» СУБД PostgreSQL, также доступные пользователям нашего форка.

Читать далее

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

Приложения 1С как инструмент решения задач бизнеса в новых условиях

Время на прочтение4 мин
Охват и читатели4.6K
image

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

Сегодня мы расскажем, как обстоят дела с внедрением и развитием решений российского вендора в новой реальности.

В #CloudMTS мы развиваем готовое PaaS-решение для размещения 1С в облаке, в рамках которого включены все необходимые сервисы: от администрирования инфраструктуры до обновления информационных баз.

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

Все, что вам нужно знать об Airflow DAGs, ч.2 — Операторы и Датчики

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

Операторы являются основными строительными блоками DAG Airflow. Это классы, которые содержат логику выполнения единичной работы.

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

Чтобы просмотреть и выполнить поиск по всем доступным операторам в Airflow, посетите Astronomer Registry. Ниже приведены примеры операторов, которые часто используются в проектах Airflow.

Читать далее

Типы таблиц в PostgreSQL: logged, unlogged и temporary tables

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

В PostgreSQL существует большое количество разных типов таблиц. Каждая из них предназначена для решения конкретных задач. Самая распространённая и известная — heap table или стандартная таблица. Про её структуру я рассказывал в прошлой статье. Стандартная таблица позволяет хранить строки, обновлять данные, делать OLAP и OLTP-запросы.  

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

Читать далее

Все, что вам нужно знать об Airflow DAGs, ч.1 — Основы и расписания

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

Полное руководство по созданию DAG в Apache Airflow DAG, позволяющих создать конвейер данных из разных источников, запускаемый в определенные периоды времени с заданной логикой. Первая часть. Источник: DAGs: The Definitive Guide от astronomer.io

Добро пожаловать в полное руководство по Apache Airflow DAG, представленное командой Astronomer. Эта электронная книга охватывает все, что вам нужно знать для работы с DAG, от строительных блоков, из которых они состоят, до рекомендаций по их написанию, динамической генерации, тестированию, отладке и многому другому. Это руководство, написанное практикующими для практикующих.

Читать далее

Связь GreenPlum и PostgreSQL

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

GreenPlum — популярное решение для масштабных аналитических систем и в небольших стартапах, и в крупных корпорациях. Оно предлагает понятный пользователям синтаксис ANSI SQL, хорошо ложится на облачный ландшафт, позволяет обучать и применять модели машинного обучения, а ещё поддерживает реляционную СУБД PostgreSQL. В статье поговорим, как связаны GreenPlum и PostgreSQL, разберём их сходства и отличия. 

Читать далее

Мой опыт взаимодействия с SheetsAPI от Google

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

Разбираем интересный кейс использования Google Sheets API и Google Drive API на Python - подписываемся на изменения в Google-таблице и ведем по ним таблицу в СУБД PostgreSQL.

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

Читать далее

PostgreSQL 16: Часть 1 или Коммитфест 2022-07

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

Август в релизном цикле PostgreSQL месяц особенный. Еще не вышла официально 15-я версия, но уже закончился первый коммитфест 16-й версии. И мы можем посмотреть на самые интересные изменения.


Собираем сервер из исходного кода и вперед!


\dconfig server_version

List of configuration parameters
   Parameter    |  Value  
----------------+---------
 server_version | 16devel
Читать дальше →

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