Обновить
183.77

Базы данных *

Все об администрировании БД

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

Patroni и логическая реплика в PostgreSQL: как не потерять данные при failover’е

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели7.3K

Если вы используете nofailover: true (а многие так и делают), Patroni не синхронизирует слоты логической репликации — и при переходе на реплику часть данных может исчезнуть навсегда. Рассказываем, почему и как фиксить.

Читать далее

Новости

Система мониторинга ML-моделей: превращаем данные в полезный инструмент

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

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

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

Читать далее

Охота за недостающим типом данных: история о графах

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

(Ориентированный) граф — это набор узлов, соединённых стрелками (рёбрами). В узлах и рёбрах могут содержаться данные. Вот примеры графов:

Читать далее

Более глубокий взгляд на старый UUIDv4 и новый UUIDv7 в PostgreSQL 18

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели7.8K

UUIDv4 как первичный ключ в PostgreSQL обычно ругают за «случайность» — но за этим словом прячется конкретная физика: сплиты страниц B-дерева, рыхлый листовой уровень, фрагментация и лишний случайный I/O при чтении. В PostgreSQL 18 появился UUIDv7 — и это хороший повод посмотреть на проблему не на уровне вкусов, а на уровне того, как реально устроены индекс и heap: от корреляции и ctid до статистики страниц и плотности листьев.

Читать далее

Анализ 400k вакансий hh.ru: как мы строили пайплайн и какие тренды нашли

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

Какие навыки реально нужны в IT? Разбор рынка по данным hh.ru. Мы обработали 393 000 вакансий за 2025 год и делимся результатами: универсальный стек технологий, медианные зарплаты по специальностям и доля удаленки. А еще — техническая реализация нашего open-source проекта для сбора данных.

Читать далее

Почему ночных загрузок стало недостаточно: опыт внедрения CDC в М2

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

Всем привет, меня зовут Игорь Горбенко, и я системный аналитик в компании М2.
Отчёты, которые обновляются раз в сутки, хорошо подходят для стратегической аналитики. Но в какой-то момент бизнесу становится важно понимать, что происходит в течение дня, а не только по итогам ночной загрузки.

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

В этой статье я расскажу, как мы внедряли Change Data Capture (CDC) с использованием Apache Flink, какие задачи это помогло решить, с какими ограничениями мы столкнулись и почему CDC — полезный, но не универсальный инструмент.


CDC и Apache Flink: кратко о технологии и нашем подходе

Давайте начнем разбираться. Некоторые из вас наверняка знакомы с понятием CDC, Change Data Capture — техника захвата изменений в базах данных.

Для контекста стоит отметить Apache Flink — движок для загрузки и обработки батчей и стриминговых данных в реальном времени. В статье речь пойдет про Flink CDC —   фреймворк с открытым исходным кодом для отслеживания изменений данных в базах данных в реальном времени.

В проектах нашего отдела в М2 основной метод загрузки — это ежедневное ночное
копирование продуктовых баз данных (PostgreSQL, MongoDB) в аналитическое хранилище на базе Apache Iceberg и последующая их обработка с помощью движка Trino.

Читать далее

Проверяем популярные движки вычислений на задаче BI-доступа с помощью теста ClickBench

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

В сегодняшней публикации мы попробуем разобраться в производительности популярных MPP-движков в специализированной задаче ХД – предоставлении доступа к денормализованной витрине данных. Также ответим на вопрос: нужен ли ClickHouse в аналитическом ландшафте, спроектированном по принципу Lakehouse-платформ? Для этого будем использовать бенчмарк ClickBench.

ClickBench появился не так давно, в 2022 году. Методика создана и поддерживается командой ClickHouse. Авторы позиционируют его следующим образом -  «Этот бенчмарк представляет типичную рабочую нагрузку в следующих областях: анализ потоков кликов и трафика, веб-аналитика, машинно-генерируемые данные, структурированные журналы и данные о событиях. Он охватывает типичные запросы в ad-hoc аналитике и дашбордах реального времени». Последний сценарий вызывает у нас особый интерес, ведь редко встретишь архитектурный дизайн аналитического ландшафта, где не было бы решения на базе ClickHouse именно для этой цели, на вершине пирамиды тракта данных от источника до потребителя.

Читать далее

Когда бизнесу нужно заключать соглашения о поручении обработки персональных данных

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

ПД — персональные данные.

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

Пример: обучающий центр хранит данные работников и учащихся в CRM.

Другой пример: флористическая студия пользуется услугами курьерской компании (или самозанятого курьера) для доставки букетов.

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

Разобраться, с кем заключать соглашения

Ключи в базах данных: больше чем просто идентификатор

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели7.5K

Начиная с первых курсов университета, первой ассоциацией у студентов ИТ специальностей со словом «ключ» в базах данных является идентификатор. В принципе это верно, однако следует это понятие расширить – связать его с целостностью данных и производительностью. Рассмотрим эволюцию подходов к работе с ключами на примере роста выдуманной компании NeoCat.

Читать далее

Кастомные свойства объектов БД PostgreSQL без патчей в ядро

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

В статье речь пойдёт о методике разработки в Postgres, которую можно использовать для лучшей интеграции вашего расширения с базой данных. А конкретно - о том, как реализовать кастомные свойства объектов БД (или custom reloptions), которые можно было бы назначать разным типам объектов БД и таким образом управлять поведением расширения.

Читать далее

Большой разворот: как изменился стек технологий в российском IT после 2022 года

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

Если оглянуться на последние три года в российской IT-индустрии, становится ясно: мы пережили полноценную трансформацию. Процесс, который в обычных условиях занял бы лет пять-семь, сжался в 2-3 раза. Для многих это был болезненный, но продуктивный стресс-тест для всей экосистемы.

В этой статье я постараюсь глубже раскрыть тему, не буду останавливаться на банальных «было-стало». Сразу хочу попросить написать в комментариях: с какими трудностями вы столкнулись? Что было сложнее всего? Что далось проще? Какие неожиданные проблемы выскакивали и как вы с ними боролись? Думаю всем будет интересно почитать о вашем опыте.

Итак, начнём!

Читать далее

Как я распилил 1,1 ТБ default-партиции и не уронил прод

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

Мы забыли вовремя создать партиции, и все новые данные полетели в events_default_partition. Default дорос до ~1.1 ТБ, а простое «ATTACH PARTITION» требовало часов сканирования и долгой блокировки. В статье — почему «быстрые» рецепты оказываются медленными, как я перенёс данные в нужные диапазоны, и как мы уложили критическую блокировку в 44 с.

Default-партиция — это не озеро Байкал. Если туда всё сливать, экосистема потом мстит.

44 секунды блокировки: план операции

Как ИИ помогает проектировать базы данных

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

Искусственный интеллект резко ворвался в нашу жизнь. Для кого-то это возможность смотреть или генерировать прикольные и не очень картинки и видео, которые многим уже надоели.

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

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

Читать далее

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

Дайджест для тех, кто занимается бэкендом: чему учиться в декабре и январе

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

Привет, Хабр. Это дайджест для тех, кто занимается бэкендом: от продакшен-Docker, CI/CD и Kubernetes до баз данных, мониторинга и архитектуры сервисов. Мы собрали открытые уроки и курсы, которые фокусируются не на абстрактной теории, а на реальных задачах — масштабировании, отказоустойчивости, наблюдаемости и поддержке сложных систем в проде. Если вы развиваете бэкенд-сервисы, отвечаете за их стабильность или хотите системно расти от уровня к уровню, здесь можно точечно закрыть пробелы и выстроить понятную траекторию обучения.

Перейти к дайджесту

Как установить Digital Q.DataBase на Astra Linux 1.8 и бесплатно работать с MS SQL, PostgreSQL и Oracle

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

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

Мы много работаем с компаниями, которым необходимо использовать отечественное ПО для баз данных. В таких проектах часто уже есть инфраструктура на MS SQL Server, PostgreSQL или Oracle Database. Основной конфликт — требования регуляторов и высокая стоимость миграции логики приложений на другую СУБД.

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

Читать далее

Оптимизации функционала Apache Iceberg в задачах real-time загрузки и обработки данных

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.3K

Привет, Хабр! На связи — технические лидеры направления разработки Apache Spark в составе платформы Data Ocean Андрей Первушин и Дмитрий Паршин из Data Sapience. Мы занимаемся решением нетривиальных задач в области Spark-вычислений, некоторые из которых становятся частью конечного продукта.

Сегодня мы расскажем, с какими проблемами можно столкнуться при реализации Upsert Streaming в Iceberg, что такое equality delete, почему они создают нагрузку при чтении таблиц в Apache Iceberg и как мы оптимизировали Apache Spark, чтобы снизить потребление памяти и ускорить чтение данных.

Читать далее

Как в 2026 году снизить стоимость разработки интеграций

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

На связи Сергей Скирдин, технический директор ИТ-интегратора «Белый код». Чаще всего в интеграциях мы сталкиваемся с настройкой обмена для баз 1С. Предположим, у нас 8 конфигураций 1С, связанных между собой, и нужно навести порядок. В статье расскажу, как мы придумали снизить стоимость разработки, а также значительно сократить время на рутинные задачи.

Читать далее

Как мы запускали «марсоход» на PostgreSQL: автоматизация кластеров в изолированной среде крупной компании

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели7.2K

Мы создали комплексную систему автоматического развертывания кластеров PostgreSQL, протестировали ее более 150 раз, внедрили у заказчика в изолированной инфраструктуре, и все заработало.

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

Читать далее

Как мы чуть не похоронили CRM клиента и зачем вам свой регламент безопасности

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

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

Я Антон Карцев, генеральный директор и основатель Флайск. И сейчас расскажу историю из практики интегратора, с реальными последствиями, о которых, обычно, не говорят.

Читать далее

Ускорение планирования JOIN’ов — до 16 раз быстрее

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

Привет, Хабр! Делимся переводом статьи о патче, сделанном разработчиком «Тантор Лабс» для 19 версии PostgreSQL — по сути, частичкой вклада нашей компании. Благодаря коммиту Ильи Евдокимова, в PostgreSQL 19 планирование JOIN’ов станет до 16 раз быстрее. Если раньше алгоритм сравнения частых значений (MCV) работал за O(N²), и при target=10k само планирование запроса могло занимать десятки миллисекунд, то теперь вместо квадратичного перебора будет использоваться хеш-таблица, а это снижает сложность до O(N). Изменение особенно оценят те, кто работает с неравномерными данными и поднимает default_statistics_target выше 1000.

Подробный разбор с тестами и графиками — в переводе статьи о нашем патче.

Читать далее
1
23 ...