Как стать автором
Обновить
43.32
Рейтинг

PostgreSQL *

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

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

Состояние PostgreSQL 2022: 13 инструментов, отличных от psql

Блог компании OTUS PostgreSQL *
Перевод

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

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

Читать далее
Всего голосов 17: ↑15 и ↓2 +13
Просмотры 5.7K
Комментарии 11

Новости

Как хранить сеть дорог в БД для построения маршрута?

PostgreSQL *Программирование *Java *OpenStreetMap *Геоинформационные сервисы *

Японцы уже в 2018 году научили немецкий GraphHopper строить маршруты по дорогам хранящимся в PostgreSQL.

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

Надо всего лишь...
Всего голосов 29: ↑29 и ↓0 +29
Просмотры 11K
Комментарии 18

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

PostgreSQL *Программирование *Java *Анализ и проектирование систем *

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

Добро пожаловать в АД
Всего голосов 8: ↑4 и ↓4 0
Просмотры 3.2K
Комментарии 0

Как использовать тип JSONB в PostgreSQL с Hibernate

Блог компании OTUS PostgreSQL *Программирование *Java *
Перевод

Многие СУБД, помимо поддержки стандарта SQL, предлагают дополнительную проприетарную функциональность. Одним из таких примеров является тип данных JSONB в PostgreSQL, позволяющий эффективно хранить JSON-документы.

Конечно, хранить JSON-документ можно и в виде простого текста — это входит в стандарт SQL и поддерживается Hibernate и JPA. Но тогда вам не будут доступны возможности PostgreSQL по обработке JSON, такие как валидация JSON и другие интересные функции и операторы. Хотя, вероятно, вы об этом уже знаете, раз читаете этот пост.

Если вы хотите использовать колонку типа JSONB с Hibernate 6, то у меня для вас отличные новости. В Hibernate 6 появился стандартный маппинг атрибутов сущностей на колонки JSON — необходимо только его активировать. К сожалению, Hibernate 4 и 5 не поддерживают JSON-маппинг, поэтому при их использовании придется реализовать UserType. Мы рассмотрим оба варианта.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 4.2K
Комментарии 5

«Сами мы не местные», или Как мы провели миграцию с Oracle на PostgreSQL

Блог компании Инфосистемы Джет Oracle *PostgreSQL *Администрирование баз данных *

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

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 4.8K
Комментарии 11

Обзор операторов PostgreSQL для Kubernetes. Часть 3: CloudNativePG

Блог компании Флант PostgreSQL *Администрирование баз данных *DevOps *Kubernetes *

Статья продолжает наш обзорный цикл о PostgreSQL-операторах для Kubernetes. В первой части мы рассматривали операторы Stolon, Crunchy Data и Zalando. Во второй — KubeDB и StackGres, а также объединили все пять операторов в сравнительную таблицу. В этот раз разбираем решение CloudNativePG, его возможности и особенности, а заодно актуализируем таблицу.

Читать далее
Всего голосов 32: ↑32 и ↓0 +32
Просмотры 2.6K
Комментарии 1

Куда мы катимся? Вторая часть

Open source *PostgreSQL *Администрирование баз данных *
Tutorial

Продолжим наше знакомство с Point in time Recovery.

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

В этот раз мы рассмотрим более сложную ситуацию.

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 5.8K
Комментарии 0

Сколько школ во всем мире? Чтение сотен гигабайт OpenStreetMap данных в JVM из Apache Arrow

Open source *PostgreSQL *Программирование *Java *OpenStreetMap *

JVM основная платформа для Big Data решений, таких как Hadoop, Spark, Presto, NiFi но на производительность значительно влияют копирование/сериализация данных "на каждый чих" с последующей сборкой мусора и отсутствие SIMD оптимизаций при работе с данными.

А можно ли в программе на JVM прочитать сотни гигабайт Parquet файлов без Spark/Hadoop? В этом нам поможет библиотека Apache Arrow - проект, которым объединяются десятки решений для работы с Большими Данными. Но для этого даже не обязателен кластер с тысячами ядер и петабайты хранилища! Обработку данных начнем с "золотого стандарта" для open source: PostgreSQL 14 + PostGIS 3.2.0, а продолжим на OpenJDK 11 + Apache Arrow 9.0.0.

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

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 2.5K
Комментарии 8

Constraints в PostgreSQL, или о том, как попытаться спокойно жить

Блог компании Postgres Professional PostgreSQL *

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

Концепция “тупого хранилища”

В последние годы разработчики ПО всё чаще утверждают, что база в их проекте “всего лишь тупое хранилище, и поэтому никакой логики в ней нет”. Откуда такой подход? Обычно он объясняется сложностями миграции, развёртывания, неудобствами при работе с системами контроля исходного кода. Не стоит списывать со счетов и простую человеческую лень: раз всё и так нормально, зачем связываться с логикой в СУБД? Создали таблицы (или, ещё лучше, пусть ORM их создаст!), и всё отлично.

NoSQL для документов

Случай с NoSQL ещё проще – не надо ничего создавать, контролировать и напрягать мозги, всё уже автоматизировано, оно само работает. Этого вполне достаточно, если из базы нужно просто доставать документы по идентификатору, но если требуется решать задачи посложнее, то всё-таки выбирают SQL СУБД. Их использование, однако, ограничивается созданием таблиц и индексов, логика на стороне СУБД и в этом случае видится избыточной.

СУБД: не только технология, но и бизнес-инструмент

Такой подход является очень распространённым (люди вообще ленивы!). Тем не менее, крайне наивно дистанцироваться от хороших возможностей только из-за нежелания заморачиваться и приобретать новые навыки. СУБД – это очень изощрённая система хранения (чтобы понять это, достаточно почитать про уровни изоляции или процедуры резервного копирования). СУБД помогает синхронизировать бизнес-процессы и избежать реальных убытков, иногда в очень крупном размере.

Читать далее
Всего голосов 33: ↑29 и ↓4 +25
Просмотры 7.7K
Комментарии 51

Куда мы катимся? Первая часть

Open source *PostgreSQL *Администрирование баз данных *
Tutorial

Сегодня я хочу поговорить с вами про такую замечательную вещь как Point in time recovery (PITR) в PostgreSQL.

Механизм восстановления на определенную точку во времени работает таким образом – у нас есть базовый бэкап, созданный при помощи какой-либо утилиты создания бэкапов (например pg_basebackup), а также набор журнальных файлов, постепенно применяя (накатывая) который, мы можем восстановиться до указанной точки.

Звучит это довольно просто, но, как водится, в каждой простой вещи есть какие-то нюансы, вот о них мы сегодня с вами и поговорим.

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 2.9K
Комментарии 4

Поваренная книга миграции данных между БД или как перенести данные из одной БД в другую с минимальной болью V1.1

PostgreSQL *.NET *SQL *C# *
Из песочницы

Одно я могу сказать точно: миграция данных между двумя БД - это одна из, если не самая сложная часть при смене СУБД или схемы базы данных. И что-то мне подсказывает, что Вы не фанат громоздких, чрезвычайно трудно отлаживаемых, SQL конструкций.

Читать далее
Всего голосов 12: ↑7 и ↓5 +2
Просмотры 8.1K
Комментарии 13

Установка PostgreSQL с помощью Docker

Блог компании FirstVDS PostgreSQL *
Перевод

В этом руководстве мы научимся устанавливать PostgreSQL с помощью Docker. Обычно мы запускаем контейнер Docker, используя публичный образ Docker, или берём предварительно настроенные Docker-образы сервера баз данных PostgreSQL из Docker Hub. Здесь же мы продемонстрируем, как PostgreSQL можно установить, настроить и запустить на Docker.

Сначала запустим контейнер Docker с базой данных PostgreSQL, используя публичный образ PostgreSQL. Позже мы создадим пользовательский Dockerfile для установки сервера PostgreSQL в контейнер Docker. Также мы научимся создавать резервные копии и восстанавливать базу данных с помощью контейнера Docker.
Читать дальше →
Всего голосов 25: ↑14 и ↓11 +3
Просмотры 3.7K
Комментарии 12

Миграция Laravel Nova с PostgreSQL на CockroachDB. Наш опыт и решение

Блог компании Совкомбанк Технологии PHP *PostgreSQL *Администрирование баз данных *Laravel *

Часто бывает, при ближайшем рассмотрении некоторая проблема выявляет более глубокую, погружаясь в решение которой находишь для себя много интересного.

О такой ситуации на одном из наших проектов и пойдет речь.

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Просмотры 2.9K
Комментарии 10

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

Блог компании БАРС Груп Open source *PHP *PostgreSQL *IT-компании

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

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 1.9K
Комментарии 7

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

Блог компании CloudMTS Тестирование IT-систем *PostgreSQL *Облачные вычисления *Serverless *
image

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

Бессерверные вычисления приобрели популярность в 2010-х и с тех пор остаются актуальными. В отличие от выделенных серверов, бессерверные модули запускаются при необходимости для каждого события. Технология позволяет не резервировать вычислительные ресурсы заранее и экономить.
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 2.2K
Комментарии 2

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

Блог компании GlowByte PostgreSQL *Администрирование баз данных *

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

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

Поехали!
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 1.4K
Комментарии 2

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

Блог компании Инфосистемы Джет Oracle *PostgreSQL *Администрирование баз данных *

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

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

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

Красная таблетка
Всего голосов 57: ↑56 и ↓1 +55
Просмотры 20K
Комментарии 72

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

Блог компании Postgres Professional PostgreSQL *SQL *

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

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

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

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

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

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

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Просмотры 5.8K
Комментарии 28

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

Блог компании Postgres Professional PostgreSQL *SQL *

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

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 2.8K
Комментарии 4

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

PostgreSQL *Программирование *Java *Микросервисы *

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

Попробовать заблокировать запись
Всего голосов 12: ↑3 и ↓9 -6
Просмотры 4.6K
Комментарии 12

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