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

PostgreSQL *

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

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

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

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 1.6K
PostgreSQL *Администрирование баз данных *Big Data *
Из песочницы

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

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

Новости

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

Время на прочтение 16 мин
Количество просмотров 967
Блог компании Postgres Professional Ненормальное программирование *PostgreSQL *SQL *

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

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

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

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

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

Поговорим о втором этапе
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 0

Apache Kafka. Пишем простой producer и consumer и тестируем их

Уровень сложности Простой
Время на прочтение 15 мин
Количество просмотров 4.9K
Тестирование IT-систем *PostgreSQL *Java *Микросервисы *
Обзор

В данной статье будет описано, как создать простой kafka producer и kafka consumer, а затем протестировать их.

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

Полнотекстовый поиск в PostgreSQL с SQLAlchemy

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 1.5K
Блог компании beeline cloud Python *PostgreSQL *Программирование *

Привет, Хабр! В прошлой статье я  писал о том, как реализовать end-to-end тестирование telegram-бота. А сегодня расскажу о том, как реализовать полнотекстовый поиск в Postgres посредством SQLAlchemy и как его проиндексировать. 

Меня зовут Михаил Выборный, я python-разработчик, backend-developer в облачном провайдере beeline cloud. Вы узнаете, как подготовить файл миграции для alembic. В конце статьи я приведу ссылку на небольшой репозиторий, где реализовал сервис-класс для удобной интеграции поиска в свой проект. 

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

Истории

Как и когда пора начинать коммитить в OSS

Уровень сложности Сложный
Время на прочтение 5 мин
Количество просмотров 1.2K
Open source *MySQL *PostgreSQL *Elixir/Phoenix *
Кейс

По долгу службы, мы много работаем с деньгами. Складываем, вычитаем, считаем проценты. Любому школьнику известно, что для этих расчетов не подходят обычные встроенные в язык типы: флоаты не сойдутся у финансовых аудиторов, большие целые принесут кучу проблем при конвертации (например, йены обходятся без дробных единиц, а в одном оманском риале — 1000 баиз, а не сто, как у всяких плебейских долларов и евро), и так далее. Существуют целые комитеты, определяющие стандарты (ISO 4217 — коды валют и ISO 24165 — идентификаторы цифровых токенов). Во всех более-менее современных языках есть библиотеки для работы с денежными суммами, реализующие стандарты и скрывающие от нас адовую арифметику без потерь точности.

В мире эликсира, почти всем, что связано с имплементацией комитетских стандартов, занимается Кип Коул. Удобной работе с деньгами мы обязаны тоже его библиотекам: ex_money — для собственно арифметики и money_sql для персистенса.

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

Как эффективно настроить autovacuum в Postgres для 1С

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 3.8K
Высокая производительность *PostgreSQL *Администрирование баз данных * *
Туториал

Кто не любит убирать мусор? Думаю практически все, а вот в Postgres это обязательный ритуал для эффективной работы. Как эффективно настроить уборку за 1С в Postgres можно прочитать в этой статье и еще раз задуматься о бесплатности Postgres.

Навести порядок
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 5

Кто мощнее в базах данных? Сравниваем производительность БД на серверах с ARM- и x86-процессорами

Уровень сложности Средний
Время на прочтение 15 мин
Количество просмотров 9.4K
Блог компании Selectel MySQL *PostgreSQL *IT-инфраструктура *Администрирование баз данных *
Аналитика

Всем привет! Ранее я разобрал и протестировал сервер с процессором ARM, который попал к нам в Selectel Lab. Сервер показал хорошие результаты по производительности в ряде классических тестов, но в этот раз захотелось проверить его в боевой задаче — в работе с базами данных. Быть может, архитектура ARM-процессора сделает всех конкурентов на этой территории?

Чтобы ответить на этот вопрос, протестировал ARM вместе с семеркой серверов разных конфигураций с процессорами Intel и AMD. В качестве баз данных для нашего эксперимента выбрал самые популярные — PostgreSQL и MySQL. Результаты тестов с графиками и комментариями — под катом. Надеюсь, они будут полезны вам при выборе сервера под БД.
Читать дальше →
Всего голосов 56: ↑54 и ↓2 +52
Комментарии 45

Spring Data JPA: замена нескольких запросов одним и почему это очень важно

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 3.4K
Высокая производительность *PostgreSQL *Java *SQL *
Кейс

Spring Data JPA: замена нескольких запросов одним и почему это очень важно.

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

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

Тензор: PRO своих

Время на прочтение 2 мин
Количество просмотров 1.4K
Блог компании Тензор PostgreSQL *SQL *Интервью
Интервью

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

Дальше - больше :)
Всего голосов 15: ↑13 и ↓2 +11
Комментарии 5

Postgresso №5 (54)

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

Beta!

Это Beta 1 - PostgreSQL 16 Beta 1. После неё будут ещё беты, число которых заранее не известно - по обстоятельствам. После появится релиз-кандидат, скорее всего тоже не один. Официальный релиз запланирован на конец 2023-го. Можно заглянуть в Beta Testing в случае заинтересованности.

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

Как мы разрабатывали сервис расчета стоимости доставки для ритейлера

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 1.2K
PostgreSQL *Symfony *Разработка под e-commerce *ReactJS *
Из песочницы

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

Меня зовут Артём Кияшко, я руковожу группой аналитиков в крупной ИТ-компании. В этой статье расскажу о том, как мы разработали и внедрили сервис расчёта стоимости доставки. 

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

Бигдата, ты ли это?

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 3.4K
PostgreSQL *Big Data *
Кейс
💼 Сезон Big Data

Возможно ли не замечать «лишних» 30 Tb данных на SSD при живом настроенном мониторинге и героически их обслуживать? Запросто, а ответы на вопросы кто же эти наблюдательные люди, как им это удалось и причем здесь PostgreSQL — ниже.

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

Как мы распиливаем монолит без даунтайма

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 2K
Блог компании CloudMTS PostgreSQL *Администрирование баз данных *Apache *Микросервисы *
Кейс
image

Всем привет!

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

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

Наши причины перехода были следующими:

  1. В монолите концентрировалось большое количество бизнес-процессов, которые охватывали сразу несколько потребителей: пользователей облачной платформы, сейлз-менеджеров (через CRM-систему), администраторов, обработчиков метрик. Получилась такая одна большая точка отказа сразу для 4 групп бизнес-процессов.
  2. Каждый бизнес-процесс потребляет свой объем ресурсов. Например, для обработки метрик нужно 5 подов (чтобы запараллелить и ускорить обработку), для администрирования хватит и одного. Так как у нас все в одном сервисе, при масштабировании монолита мы будем ориентироваться на самый «прожорливый» бизнес-процесс. Часть ресурсов будет просто простаивать.
  3. Хотелось добиться гранулярности, чтобы независимо писать и деплоить код для каждого бизнес-процесса. И не переживать, что какие-то изменения в одном бизнес-процессе неожиданно отрикошетят в соседний.

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

Используем Vault в связке с HAProxy и HA Zabbix

Время на прочтение 5 мин
Количество просмотров 2.6K
Блог компании Инфосистемы Джет PostgreSQL *IT-инфраструктура *

Недавно на одном из проектов для телекоммуникационной компании нам пришлось дополнительно (не без помощи коллег из ИБ J) проработать вопрос безопасного использования паролей для подключении к базе данных PostgreSQL кластера Zabbix.

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

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

— во-первых, Zabbix отлично интегрируется с решениями от HashiCorp;

— во-вторых, у нас есть опыт работы с HashiCorp Vault.

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

Итак, в этом посте пройдемся по нескольким шагам:

1. Рассмотрим нашу схему работы HA Zabbix и дадим краткую характеристику данному стеку.

2. Рассмотрим предполагаемый вариант использования Vault в связке с HA Zabbix.

3. Предложим конфигурацию для данного решения.

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

SQL миграции в Postgres. Часть 2

Уровень сложности Средний
Время на прочтение 17 мин
Количество просмотров 4.9K
PostgreSQL *SQL *Администрирование баз данных *
FAQ

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

Эта статья посвящена двум более сложным миграциям:

- обновление большой таблицы
- разделение таблицы на две

Рассмотрим подходы, которые позволяют провести миграции с минимальным простоем для приложения.

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

PostgreSQL под капотом. Часть 6. Сложный SELECT запрос

Уровень сложности Средний
Время на прочтение 57 мин
Количество просмотров 3.1K
Open source *PostgreSQL *Программирование *Анализ и проектирование систем *C *

Продолжим погружение в код PostgreSQL. Сейчас посмотрим, что происходит, когда вы хотите выполнить запрос сложнее, чем в прошлый раз: добавим WHERE, GROUP BY, HAVING, ORDER BY, LIMIT.

Плюс:

Системный кэш

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

Предсказание количества возвращаемых кортежей

Работа с простыми типами

Маркировка столбцов при использовании FOR UPDATE

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

Как перевезти интернет-магазин на Spree и RoR в облако и улучшить стабильность сайта в 4 раза?

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 1.7K
Блог компании ITSumma Системное администрирование *PostgreSQL *Облачные сервисы *Kubernetes *
Кейс

Всем привет! Меня зовут Сергей Спорышев, я директор направления DevOps-продуктов в ITSumma. В этом тексте я хочу рассказать, как задача по переносу в облако простого на первый взгляд проекта оказалась не такой уж простой и превратилась в целый квест.

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

Как мы продукт на PostgreSQL переводили

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 6.4K
Блог компании HFLabs Oracle *PostgreSQL *
Кейс

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

В статье поделюсь нашими наработками. Будет полезно тем, кто только собирается пойти по такому пути. Если тема интересна, можете посмотреть и выступление моего коллеги Вадима Зайцева на CDI Tech Conf.

Итак, поехали!
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 7

Миграция базы данных с Oracle на PostgreSQL в системе с микросервисной архитектурой

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 2.5K
Блог компании Axenix (ex-Accenture) PostgreSQL *Анализ и проектирование систем *
Кейс


Привет! Эта статья рассказывает о моем опыте миграции СУБД с Oracle на PostgreSQL в системе с микросервисной архитектурой и является продолжением моего доклада на PGConf.Russia 2023. Я постарался выделить и описать в ней самые интересные и важные, на мой взгляд, моменты на пути по поиску и внедрению альтернативы Oracle, тестированию Greenplum и, в конечном итоге, переходу на несколько связанных баз данных PostgreSQL. Надеюсь, что данная информация будет полезна и интересна всем, кто уже столкнулся с похожей задачей, неизбежно к ней движется или просто интересуется данной темой.
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 4

Пишем простой docker-compose.yml для контейнеризации приложения (React, Spring Boot, PostgreSQL, pgAdmin)

Уровень сложности Простой
Время на прочтение 21 мин
Количество просмотров 7.6K
PostgreSQL *Java *ReactJS *DevOps *
Туториал

В данной статье описан простой пример написания docker-compose.yml файла на примере контейнеризации приложения с использованием Spring Boot на бэкенде, React на фронте, PostgreSQL в качестве базы данных и pgAdmin - для просмотра данных в базе.

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

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