Как стать автором
Обновить
85.12

PostgreSQL *

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

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

Представляем вашему вниманию Artie Transfer

Время на прочтение 6 мин
Количество просмотров 370
Блог компании OTUS PostgreSQL *Хранилища данных *
Обзор
Перевод

Будучи активным пользователем хранилища данных (DWH) на разных ролях, я всегда находил определенные ограничения (и разочарования!) в связи с задержкой данных между нашим DWH и данными, которые находятся в онлайновых транзакционных (OLTP) базах данных. В зависимости от того, где я работал, задержка составляла от нескольких часов до суток (дней), причем более крупные компании, как правило, работали медленнее. 

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

Новости

Аномалии под нагрузкой в PostgreSQL: о чём стоит помнить и с чем надо бороться

Время на прочтение 14 мин
Количество просмотров 12K
Блог компании Postgres Professional Высокая производительность *PostgreSQL *Администрирование баз данных *
Из песочницы

В этой статье мы разберём несколько аномальных случаев высокой нагрузки в СУБД PostgreSQL. Что это такое? Обычно PostgreSQL хорошо показывает себя под нагрузкой и оправдывает ожидания в отношении производительности — она остаётся высокой. Но при определённых профилях нагрузки СУБД может вести себя не так, как мы ожидаем. Это и есть аномалии, на которых мы сосредоточимся в данной статье (для тех, кто предпочитает видео, эта информация доступна в виде записи доклада на HighLoad++).

Наша компания помогает обслуживать мультитерабайтные базы данных в крупных проектах, поэтому мой рассказ об аномалиях основан на реальном опыте промышленной эксплуатации СУБД в Postgres Professional — порой мы сталкиваемся с тем, что СУБД ведёт себя не так, как мы ожидали.

Также в рамках статьи мы рассмотрим следующее:

Читать далее
Всего голосов 60: ↑60 и ↓0 +60
Комментарии 13

Sore query language, или 5 ошибок при первом изучении SQL

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 3.1K
PostgreSQL *SQL *

Эта статья о том, как аналитик изучает основы SQL, какие допускает ошибки и как старается их исправить. В статье будет то, что помогает погрузиться в SQL впервые: схемы и примеры кода, понятия и определения, проблемы и решения. Статья рассчитана на аналитиков-новичков.

Предыстория: аналитик создает отчёты в BI для директора компании «ABC». Аналитик не умеет программировать и подключается к данным по инструкции. Директор требует срочно добавить в отчёт данные из 3 источников: SAP – объем выручки от продаж; HRLink – затраты на персонал; Битрикс – время обработки заявок. 

Аналитик ставит задачу data инженеру на добавление новых данных в BI. Data инженер – единственный специалист по работе с данными в офисе из 400 человек. Он критически оценивает сроки выполнения задачи и объявляет: «Минимум – 2 недели». Такой срок директора не устраивает. Инженер предлагает аналитику альтернативное решение...

И вот какое...
Всего голосов 6: ↑3 и ↓3 0
Комментарии 8

Истории

PostgreSQL под капотом. Часть 4. Цикл бэкэнда

Время на прочтение 21 мин
Количество просмотров 2.1K
Open source *PostgreSQL *Анализ и проектирование систем *C *Реверс-инжиниринг *

Приветствую!

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

Кроме нее будут рассмотрены:

— Модуль для работы с транзакциями.

— Исключения в С и их реализацию.

— Клиент‑серверный протокол.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 1

Расширяем PostgreSQL с помощью Rust

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 2.6K
Блог компании OTUS PostgreSQL *Rust *
Туториал

Свободная система управления базами данных PostgreSQL не только предоставляет высокопроизводительный движок для выполнения запросов, но и может быть расширена с помощью расширений, которые могут добавлять новые типы данных (например, для ГИС‑расширений или астрономических координат), дополнительные типы индекса и возможности поиска (например, полнотекстовый поиск), сбор статистики, поддержку новых языков для встроенных функций и многое другое. Большой список существующих расширений может быть найден по этой ссылке. В этой статье мы рассмотрим один из возможных вариантов по созданию собственного расширения для PostgreSQL с использованием библиотеки pgx.

Читать далее
Всего голосов 24: ↑24 и ↓0 +24
Комментарии 3

«Еще умнее — еще проще для пользователя»: CEO Postgres Pro Олег Бартунов о будущем СУБД, open source и астрономии

Время на прочтение 13 мин
Количество просмотров 4.4K
PostgreSQL *Программирование *Big Data *Интервью IT-компании
Мнение

Большие данные — вещь относительная. Посмотрите на любого блогера: он генерирует кучу данных, в его телефоне десятки, а то и сотни гигабайтов изображений и видео. Если он не может обработать их с помощью подручных средств, их вполне можно считать большими данными.

При этом оцифрованная Библиотека конгресса в США совсем маленькая, хранить ее у себя дома может любой. Телескопы, на которых работают в Америке, могут производить несколько десятков терабайт за одну ночь. А радиотелескоп, размер которого квадратный километр, будет производить петабайты.

Читать далее
Всего голосов 28: ↑27 и ↓1 +26
Комментарии 2

1C (и не только) c PostgreSQL

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 2.4K
PostgreSQL * *
Кейс

Уже несколько лет назад я столкнулся с проблемой производительности 1С на PostgreSQL в некоторых запросах, которые на MS SQL выполнялись относительно быстро. Тогда же выяснилось, что в 99% случаев такие запросы можно оптимизировать так, что они начинают выполняться даже быстрее, чем на MS SQL, всего навсего добавлением нужных индексов во временные таблицы.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 14

Репликация между SQL- и NoSQL-базами данных: туда и обратно

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 2.3K
Блог компании VK Oracle *PostgreSQL *Java *Tarantool *


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

Меня зовут Александр Горякин, я разработчик высоконагруженных систем хранения данных в пресейле Tarantool. Не так давно наша команда столкнулась с необходимостью репликации между SQL- и NoSQL-базами данных и успешно решила эту задачу. Я расскажу, что нам нужно было от репликации, какие механизмы и инструменты мы рассматривали, с какими проблемами столкнулись и что получили в итоге.

Статья написана по моему выступлению на HighLoad++ 2022. Вы можете посмотреть его здесь.
Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 8

SQL HowTo: крупицы золота в реестре

Уровень сложности Сложный
Время на прочтение 7 мин
Количество просмотров 4.7K
Блог компании Тензор Высокая производительность *PostgreSQL *SQL *Алгоритмы *
Туториал

В большинстве учетных систем, типа нашего СБИС, рано или поздно возникает проблема быстрого отображения реестра, в который по просьбам бизнес‑пользователей накручено несколько комбинируемых фильтров с очень редкой выборкой, ну никак не ложащихся в вашу красивую структуру базы данных и индексов базовой таблицы реестра — что‑нибудь типа "список продаж покупателям, чей день рождения выпадает на 29 февраля".

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

Читать далее
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 9

Postgresso 1 за 2023 (50)

Время на прочтение 20 мин
Количество просмотров 2.9K
Блог компании Postgres Professional PostgreSQL *

В этом номере самое интересное за январь начало февраля 2023. В том числе, конечно, о релизах

PostgreSQL 15.2 и Postgres Pro Enterprise 15.1.1

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 2

PostgreSQL 16: Часть 4 или Коммитфест 2023-01

Время на прочтение 17 мин
Количество просмотров 3K
Блог компании Postgres Professional PostgreSQL *SQL *

Продолжаем следить за новинками 16-й версии. В начале февраля завершился четвертый коммитфест. Что нового нас ждет впереди?


Напомню, что самое интересное из первых трех коммитфестов можно прочитать в предыдущих статьях серии: 2022-07, 2022-09, 2022-11.

Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 0

Репликация в PostgreSQL: Write-Ahead Logging (WAL) и Logical Replication

Время на прочтение 7 мин
Количество просмотров 3.1K
Блог компании OTUS Высокая производительность *PostgreSQL *
Туториал

Репликация PostgreSQL с опережающей записью (WAL) — ключевая концепция в высоконагруженных архитектурах, поскольку она позволяет создавать высокодоступные и отказоустойчивые системы баз данных.

Читать далее
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 1

Работаем с PostgreSQL в Go. Опыт Авито

Время на прочтение 8 мин
Количество просмотров 5.8K
Блог компании AvitoTech PostgreSQL *Микросервисы *

Привет! Меня зовут Дима Вагин, я бэкенд-инженер в Авито. Сегодня расскажу, как мы работаем с БД PostgreSQL из Go. Покажу, какие библиотеки и пулеры соединений мы используем для доставки в код параметров подключения и как мы их настраиваем. А ещё расскажу про проблемы, к которым приводит отмена контекста, и о том, как мы с ними справляемся.

Читать далее
Всего голосов 28: ↑26 и ↓2 +24
Комментарии 15

Шаблон backend сервера на Golang — часть 3 (Docker, Docker Compose, Kubernetes (kustomize)

Уровень сложности Сложный
Время на прочтение 27 мин
Количество просмотров 4.3K
Open source *PostgreSQL *API *Go *Kubernetes *
Туториал

Шаблон backend сервера на Golang — часть 3 (Docker, Docker Compose, Kubernetes (kustomize)


Схема развертывания в Kubernetes


Первая часть шаблона посвящена HTTP серверу.


Вторая часть шаблона посвящена прототипированию REST API.


Третья часть посвящена развертыванию шаблона в Docker, Docker Compose, Kubernetes (kustomize).


Четвертая часть будет посвящена развертыванию в Kubernetes с Helm chart и настройке Horizontal Autoscaler.


Пятая часть посвящена оптимизации Worker pool и особенностям его работы в составе микросервиса, развернутого в Kubernetes.


Для корректного развертывания в Kubernetes, в шаблон пришлось внести изменения:


  • способа конфигурирования — YAML, ENV, Kustomize
  • подхода к логированию — переход на zap
  • способа развертывания схемы БД — переход на liquibase
  • добавление метрик prometheus

Ссылка на новый репозиторий.


Шаблон goapp в репозитории полностью готов к развертыванию в Docker, Docker Compose, Kubernetes (kustomize), Kubernetes (helm).


Настоящая статья не содержит детального описание используемых технологий


Содержание


  1. Изменение подхода к конфигурированию
  2. Добавление метрик prometheus
  3. Изменение подхода к логированию
  4. Развертывание схемы БД
  5. Сборка Docker image
  6. Сборка Docker-Compose
  7. Схема развертывания в Kubernetes
  8. Подготовка YAML для Kubernetes
  9. Kustomization YAML для Kubernetes
  10. Тестирование Kubernetes с kustomize
Читать дальше →
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

Как в Северной Америке с дорогами и плотностью застройки? Работаем с 100Гб OSM данных в PostgreSQL

Уровень сложности Средний
Время на прочтение 16 мин
Количество просмотров 2.4K
Высокая производительность *PostgreSQL *OpenStreetMap *Геоинформационные сервисы *

Сегодня открою вам Америку на основе данных OpenStreetMap в PostgreSQL15/PostGIS и моего проекта openstreetmap_h3. Запустим запрос и сравним время его выполнения на колоночном хранилище Citus в PostgreSQL и на стандартном в секционированной по H3 геоиндексу базе данных объемом 100GB.

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

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 2

PostgreSQL: настройка и оптимизация производительности. Часть 2

Время на прочтение 12 мин
Количество просмотров 3.5K
Блог компании Southbridge Системное администрирование *PostgreSQL *IT-инфраструктура *Администрирование баз данных *
Туториал
Перевод

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

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 3

Колоночная база данных в PostgreSQL 15 и факты о территории России по данным OpenStreetMap

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 4K
Высокая производительность *PostgreSQL *OpenStreetMap *Геоинформационные сервисы *

Продолжим тему из публикации «Как поместить весь мир в обычный ноутбук: PostgreSQL и OpenStreetMap».

Сегодня визуализируем 15 мест где в России больше всего зданий. В этом нам поможет мой проект openstreetmap_h3 и PostgreSQL 15. На данный момент OpenStreetMap H3 единственное решение для импорта OSM данных партиционированных по H3 геоиндексу в PostgreSQL и Citus massive parallel processing. Сохраним данные в колоночное хранилище и посмотрим на план запроса для него.

В этой публикации мы будем агрегировать данные в большой таблице где нас интересуют для этих операций лишь два столбца и сможем извлечь пользу от этой модели данных на NVMe накопителе. Раньше я работал с колоночными базами данных AWS Redshift, Dremio, QuestDB и HeavyDB, но не смотря на их производительность, до функционала/протестированности и стабильности PostgreSQL им еще пока еще ох как далеко. Вот и отлично, попробуем получить все плюсы экосистемы PostgreSQL и колоночного хранилища citus. Вперед, к заветной цели на самых свежих версиях программ нашего аналитического стека!

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 0

Матч Postgres vs Redis — как выбрать правильный инструмент для разных задач

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 2.5K
Блог компании CloudMTS Высокая производительность *Тестирование IT-систем *PostgreSQL *Администрирование баз данных *
Обзор
image

PostgreSQL и Redis — распространенные СУБД, которые «обросли» аудиторией. Их популярность варьируется от задачи к задаче, а сами они имеют свои сильные и слабые стороны.

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

Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 2

Delayed durability поможет вашему ORM увеличить производительность на 50% и более, если Вы только будете использовать …

Время на прочтение 10 мин
Количество просмотров 1.7K
Oracle *PostgreSQL *Программирование *Microsoft SQL Server * *
Туториал
Recovery mode

 ORM (Object‑Relational Mapping) используется во многих языках программирования, в том числе и в 1С. Однако реализация высоконагруженных решений, приводит к мысли что разработчики ORM не учитывали ее влияния на производительность СУБД. Такая ситуация и в 1С и ORM на Java, и наверняка в других ORM.  В предыдущих частях показана глубина проблемы

Концепция ORM как двигатель прогресса — выдержит ли ее ваша СУБД? / Хабр (habr.com)

Концепция ORM как двигатель прогресса – выявит слабое место Вашей СУБД / Хабр (habr.com)

В этой части предложено решение со стороны СУБД (MS SQL , Oracle, Postgres)

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 17

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