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

PostgreSQL *

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

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

CDC на примитивах

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров724

CDC вам не "Centers for Disease Control and Prevention" а "Change data capture". В статье рассказано какие есть виды CDC и как реализовать один из CDC при помощи Debezium.

Читать далее
Всего голосов 1: ↑1.5 и ↓-0.5+2
Комментарии2

Новости

«IT-Планета 2024»: задачи второго этапа по PostgreSQL

Время на прочтение32 мин
Количество просмотров787

Вдохновившись прошлогодним опытом, мы продолжили начинание и снова проводим конкурс по SQL на международной олимпиаде «IT-Планета».

Конкурс состоит из трех этапов. Заочный теоретический тест собрал почти 3000 человек, из которых на следующий этап мы отобрали примерно 200. Вопросы для этого этапа были подготовлены моим коллегой, Евгением Давыдовым.

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

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

Поскольку все вводные слова про мотивацию я уже сказал в прошлый раз, сразу приступим к делу.

Приступить к делу
Всего голосов 13: ↑15.5 и ↓-2.5+18
Комментарии1

PostgreSQL 16. Организация данных. Часть 1

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров4.2K

PostgreSQL очень популярная СУБД.

Её используют во многих проектах, как новички, так и профессионалы. Однако не все понимают, как именно работает данная система и какое у неё внутренне устройство.

Давайте разберемся вместе на основе книги "PostgreSQL 16 изнутри" и официальной документации!

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

Древовидные структуры в SQL в одну таблицу

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров10K

Как реализовать хранение и работу каталога папок в PostgreSQL? Есть большое количество вариантов. Но хочется, чтобы реализация выглядела лаконично, не нарушала прозрачность выполняемых операций, не вызывала блокировок, не требовала большого вовлечения клиента в специфику работы и т.д. Потому сегодня попробуем реализовать хранение древовидных структур и работу с ними без использования триггеров, блокировок, дополнительных таблиц (представлений) и внешних инструментов в SQL.

Читать далее
Всего голосов 44: ↑47.5 и ↓-3.5+51
Комментарии29

Истории

Как аналитик учился java log читать. Часть первая: логи бывают разные

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров1.7K

Когда я пришёл работать в компанию GreenData шесть лет назад, мои задачи были достаточно стандартными для аналитика, который работает с low-code решениями. Работа с объектной моделью, написание алгоритмов, настройка визуалов - всё что обычно выполняет начинающий специалист в данной области. Однако в процессе моей работы и роста иногда я сталкивался с необходимостью разбираться в тонкостях работы Java, а именно с ошибками, которые возникали в процессе её исполнения.

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

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

Цикл статей о Greenplum. Часть 1. GP под капотом

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.7K

Всем привет!

Как вы знаете, многие поставщики ПО ушли с российского рынка ввиду введённых санкций и многие компании столкнулись с необходимость заняться импортозамещением в кратчайшие сроки. Не стал исключением и наш заказчик. Целевой системой, на которое было принято решение мигрировать старое хранилище, стал Greenplum (далее GP) от компании Arenadata.

Этой статьей мы запускаем цикл материалов посвященных Greenplum. В рамках цикла мы разберем, как вообще устроен GP и как выглядит его архитектура. Постараемся выделить must have практики при работе с данным продуктом, а также обсудим, как можно спроектировать хранилище на GP, осуществлять мониторинг эффективности работы и многое другое. Данный цикл статей будет полезен как разработчикам БД, так и аналитикам.

Читать далее
Всего голосов 18: ↑18.5 и ↓-0.5+19
Комментарии2

Большая иерархия в SQL запросе + PostgreSQL

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров7K

Сначала запрос адаптирован для работы в PostgreSQL 15.6.

Затем работа запроса проверена на достаточно объемной иерархии - в качестве источника данных использована структура архива jdk-master.zip из OpenJDK 22

Читать далее
Всего голосов 14: ↑15.5 и ↓-1.5+17
Комментарии6

Асимметричные и симметричные ключи в PostgreSQL

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров5K

Привет, Хабр!

Как мы знаем, защита конфиденциальной информации — это неотъемлемая часть любого проекта. В статье поговорим про шифрование данных в PostgreSQL, а именно про шифрование с использованием как асимметричных, так и симметричных ключей.

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

PGConf.Russia #10 (2024)

Время на прочтение13 мин
Количество просмотров1.6K

Юбилейная - 10-я - конференция PGConf.Russia опередила юбилей компании (Postgres Professional исполнилось 9 лет). А самая первая - PGConf.Russia 2015 - даже опередила саму компанию: конференция прошла в феврале, а официальный день рождения Postgres Professional 1 апреля 2015.

Читать далее
Всего голосов 14: ↑16 и ↓-2+18
Комментарии2

Распознавание, хранение и поиск лиц в базе данных

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

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

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

Пишем поиск семантически похожих текстов (или товаров) за полчаса на Go и Postgres (pgVector)

Время на прочтение5 мин
Количество просмотров6.4K


Казалось бы, в посгресе и так есть неплохой полнотекстовый поиск (tsvector/tsquery), и вы из коробки можете проиндексировать ваши тексты, а потом поискать по ним. Но на самом деле это не совсем то, что нужно — такой поиск работает лишь по чётким совпадениям слов. Т.е. postgres не догадается, что "кошка гонится за мышью" — это довольно близко к "котёнок охотится на грызуна". Как же победить такую проблему?


TLDR:


  1. Преобразовываем наши тексты в наборы чисел (векторы) при помощи API openAI.
  2. Сохраняем векторы в базе с помощью pgvector.
  3. Легко ищем близкие друг к другу векторы или ищем их по вектору-запросу.
  4. Ускоряем индексами.
Читать дальше →
Всего голосов 21: ↑22.5 и ↓-1.5+24
Комментарии8

Неожиданные последствия запуска PostgreSQL в Docker: замедление запросов в 100 раз

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров39K

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

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

Эффективное использование журнала регистрации и технологического журнала 1С в решении вопросов производительности

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.8K

Эта статья носит своей целью продемонстрировать другой подход в анализе проблем производительности в системах 1С:Предприятие с применением журнала регистрации (ЖР) и технологического журнала (ТЖ).

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

При проведении расследований мы сами часто сталкиваемся с проблемой длительной обработки и сопоставления данных журналов 1С с остальными метриками. И вот наконец руки дошли до парсинга журналов. С точки зрения анализа производительности все данные журналов нам не нужны. А какие нужны?

Вот! В этом как раз вся «соль» идеи.

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

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

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Поиск по коду — это сложно

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6.6K

Функциональность поиска на Val Town не очень впечатляет. Сейчас в её основе лежит механизм ILIKE Postgres, работающий на основе алгоритма поиска подстроки: если искомое выражение в коде есть, оно выводится в результатах. Этот процесс не включает никакого ранжирования и очень слабо поддерживает запросы из нескольких слов. Более эффективный поиск является одной из самых желанных для нас возможностей.
Читать дальше →
Всего голосов 36: ↑39.5 и ↓-3.5+43
Комментарии3

HyperLogLog в PostgreSQL

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.9K

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

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

В этой статье рассмотрим, как реализован HLL в PostgreSQL.

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

Безопасный Continuous Deployment БД по принципам DB-First

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров3.3K

В статье рассматривается Continuous Deployment для БД с бесшовными релизами за счёт обратно-совместимых обновлений и автоматизации проверок совместимости с помощью подхода DB-First.

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

Потенциальные проблемы с автоинкрементным ключом. MySQL <8.0, PostgreSQL

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров5.2K

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

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

Создание реактивных сервисов Micronaut и Kotlin

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров2K

В данной статье обсудим создание REST-сервиса в “реактивном” исполнении. Приведу примеры кода на Kotlin в двух вариантах: Reactor и coroutines

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

Выжимаем максимум из PostgreSQL

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров16K

Привет, Хабр! Меня зовут Максим, я работаю тестировщиком оборудования в Selectel Lab. В лаборатории мы занимаемся тестированием нового оборудования для дата-центров. О том, как мы измеряли производительность PostgreSQL на разных конфигурациях — под катом!
Читать дальше →
Всего голосов 57: ↑61.5 и ↓-4.5+66
Комментарии22

Реализация взаимодействия с БД через Middleware в Telegram-ботах

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3.9K

Когда я начинал писать своих первых ботов с использованием базы данных, их код был очень плохим: он расходовал лишние ресурсы, а также была плохая архитектура проекта. Поэтому я хочу поделиться с вами своими знаниями, чтобы вы не наступали на те грабли, на которые наступал я. В проекте бота, который будет использован в качестве примера в данной статье, я использовал такие технологии, как aiogram, SQLAlchemy, alembic и Docker. В качестве СУБД выступает PostgreSQL. Приятного чтения!

Читать далее
Всего голосов 9: ↑8 и ↓1+7
Комментарии7
1
23 ...

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