Обновить
256K+

Базы данных *

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

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

ClickHouse не тормозит, но не умеет джойнить. Убиваем миф

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

Есть один миф про ClickHouse - он плохо джойнит. Подавляющее большинство не знает, с чем это утверждение связано, и просто верят на слово. А дальше срабатывает эффект сарафанного радио. В итоге в IT-сообществе есть твердое убеждение, что ClickHouse плохо джойнит. Но для меня апогеем стала статья от школы обучения программированию, в которой написано, что ClickHouse вообще не умеет джойнить:

Читать далее

Почему российский бизнес проигрывает битву за информацию и как это исправить. Введение и Часть 1

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

Российский бизнес переживает эпоху «Великого перехода». Санкционное давление и уход западных вендоров заставили компании в спешке мигрировать на отечественное ПО. Но гонка за новыми платформами обнажила старую как мир проблему: наши системы полны «мусора».

На многочисленных проектах по миграции с SAP и западных CRM на российские решения наблюдается одна и та же картина: бизнес ждет «магии» от новой системы, а получает перенос хаоса. Аналитики и ИТ-специалисты приходят к выводу: битва за качество данных проигрывается не из-за отсутствия талантливых разработчиков, а потому что бизнес-анализ как дисциплина в России до сих пор не воспринимает данные как стратегический актив.

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

Читать далее

Почему `SUM() OVER (ORDER BY ...)` иногда считает «неправильно»: разбираем оконные фреймы в SQL

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

Почему SUM() OVER (ORDER BY ...) иногда даёт неожиданный результат, даже когда запрос синтаксически правильный? В статье на практических примерах разбираю, как работают оконные фреймы в SQL, чем отличаются ROWS, RANGE и GROUPS, где чаще всего возникает путаница и как писать накопительные итоги и скользящие метрики без сюрпризов. Если используете оконные функции в аналитике, этот разбор поможет сделать их поведение предсказуемым и управляемым.

Читать далее

Как мы оперативно на PostgreSQL переезжали, или Новые грани применения Dapper

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

Всем привет! Я Игорь Эльяс — бэкенд-разработчик, сейчас работаю в МТС Веб Сервисы. Однажды мне досталась задача «перенести приложение в другую БД, за XX времени», где ХХ — короткий интервал с точки зрения потенциального объема работ при подходе «переделываем все по-нормальному — на Entity Framework» :-)

Проект на C#, изначальная БД — MS SQL + мы использовали самодельный ORM. Возможно, вы сейчас подумали — «очередное легаси!». И да и нет. Проект родился еще во времена Framework 2.0, но регулярно обновлялся и сейчас работает на .NET8. Он пережил десятки циклов рефакторинга, поэтому не безнадежен для доработок.

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

Читать далее

Отсечь змейке хвост: останавливаем разнос базы данных, когда времени на это нет

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

Привет, Хабр! Меня зовут Кирилл Абрамов, я backend-инженер в сервисе Автотека Авито. В этой статье я расскажу, как остановил постоянное увеличение объёма базы данных PostgreSQL и что надо делать, если времени на остановку не остаётся.

Читать далее

Как Нейроюрист ищет по миллионам юридических документов с помощью векторного поиска YDB

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

Привет, Хабр! Меня зовут Александр Зевайкин, и мы с командой делаем YDB (СУБД Яндекса). В конце прошлого года Яндекс представил специализированного ИИ‑помощника — Нейроюриста, для которого обучил языковую модель на основе Alice AI LLM. Сервис работает на базе RAG, под капотом у которого находится YDB c миллионами различных юридических документов.

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

Читать далее

Как построить отказоустойчивый PostgreSQL-кластер и не промахнуться

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

В исходниках PostgreSQL встречаются ироничные комментарии, а самый веселый, на мой взгляд, находится в строке прямо перед запуском сервера. Судя по логам Git, это комментарий Тома Лейна, который сообщает: "We are ready to rock and roll", а следующей строкой идёт запуск сервера СУБД. Действительно, когда пытаешься запустить кластер PostgreSQL, порой не покидает ощущение "rock and roll", а потом вдруг кластер не стартует или внезапно переключается на другой узел из-за отступов в YAML-конфиге :).

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

Читать далее

Как C#‑строки и Dapper тихо убивают индексы Microsoft SQL Server

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

Недавно я посвятил время проблеме производительности на продакшене. Приложение работало в горячке — загрузка процессора в среднем превышала 50% и периодически подскакивала до 90%. Мы сделали диагностический снапшот и начали работать с топом запросов по процессорному времени.

Нарушитель номер один? Простой запрос Dapper. Незамысловатое условие WHERE по проиндексированному столбцу. Должно было быть молниеносным, но в среднем потребляло тысячи миллисекунд процессора при сотнях тысяч выполнений в день.

Несоответствие типов на пару символов, совсем невидимое в C#‑коде. Я очень долго глазел на запрос, прежде чем понял происходящее.

Читать далее

Advisory locks в PostgreSQL: распределённая блокировка без Redis, которая у вас уже есть

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

В PostgreSQL есть фича, про которую знают далеко не все, хотя она существует с незапамятных времён. Advisory locks — пользовательские блокировки, которыми управляет не БД, а ваше приложение. PostgreSQL только хранит их состояние и разруливает конкуренцию. А вы решаете, что именно заблокировать и когда отпустить.

Зачем это нужно? Вы строите распределённую систему, несколько инстансов приложения работают с одной базой, и вам нужно гарантировать, что определённую операцию выполняет только один инстанс одновременно. Классический ответ — Redis с SETNX или Consul/ZooKeeper. Но если у вас уже есть PostgreSQL — зачем тащить ещё одну зависимость?

Читать далее

Как мы перевели корпоративную 1С с MS SQL на Digital Q.DataBase без переписывания кода

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

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

Меня зовут Андрей Жуйков, и в этой статье я хочу рассказать вам историю абсолютно практического содержания. Без теоретических рассуждений и без лозунгов про импортозамещение. Это реальный кейс о том, как мы перевели несколько наших корпоративных 1С с Microsoft SQL Server на Digital Q.DataBase.

Читать далее

База данных литературы в Obsidian. Bases vs DB Folder

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

Obsidian давно перестал быть просто «заметочником» — для многих это полноценная рабочая среда, где живут задачи, проекты, люди и знания. Но как только дело доходит до структурированных данных — книг, контактов, курсов — пользователи неизбежно упираются в вопрос: чем это организовать? Долгое время единственным вменяемым ответом был плагин DB Folder. Затем Obsidian выкатил встроенный Bases — и сообщество разделилось. В этой статье я разберу оба инструмента на конкретном примере: создам базу данных книг в каждом из них, сравню возможности и расскажу, какой из них и для кого подойдёт лучше. Если тема управления знаниями в Obsidian вам близка — заглядывайте в мой тг-канал, там я разбираю подобные вещи регулярно.

Читать далее

Интеграция SAP с ИИ: пишем умный редактор промптов для инвентаризации на ABAP

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

Привет, Хабр! Меня зовут Виктория Мохирева, я консультант SAP MM. Сегодня расскажу о том, как мы с командой решили колоссальную задачу инвентаризации — пересортицу товаров — с помощью интеграции SAP с большой языковой моделью (ИИ).

Вот как бывает в обыденности магазина: пришёл товар, на учете кружка, а на полке по факту тарелка. Начинается танец с бубном из таблиц, сверка номенклатур и постоянные акты. Чтобы автоматизировать подбор правильных групп для пересортицы, мы написали инструмент, который позволяет общаться с ИИ напрямую из SAP GUI. Решение получилось достаточно компактным и элегантным. А под капотом у нас — архитектура, ключевые куски кода и логика, которые помогли нам превратить «регулярный ручной труд» в интеллектуальный диалог с машиной, и теперь у нас не разрозненная масса товаров, а сформированные по определенным параметрам логичные группы.

Читать далее

Контракт вместо настроек: чего я жду от OLTP-БД

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

После первой статьи в комментариях несколько раз прозвучало примерно одно и то же:
"Всё правильно, но это же про любую зрелую СУБД — что с этим делать?"

Я думал над этим вопросом несколько недель. И в итоге решил не искать ответ в виде
"возьмите правильный инструмент X" — а попробовать честно сформулировать:
какими свойствами OLTP-БД должна обладать сама по себе, независимо от того,
насколько хорош ваш оператор, консультант или runbook.

Что такое "контракт" — и почему это не маркетинг

Попробую объяснить не через определение, а через ощущение.

Когда вы покупаете автомобиль, вы не читаете инструкцию к тормозам каждое утро.
Вы просто знаете: нажал педаль — машина тормозит. Это контракт. Он не зависит от того,
правильно ли вы настроили тормозную жидкость этим утром или не забыли включить
"режим торможения" в меню.

Читать далее

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

Виды моделирования данных. Полный гайд

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

Спроси любого уважаемого аналитика или инженера данных о том, какие бывают способы моделирования данных, тебе ответят: звезда, 3NF и DataVault. Спроси ИИ, получишь примерно такой же ответ. Придешь на какой-нибудь проект в компанию, также скорее всего встретишь там кого-нибудь из этих друзей. В 90% материалах про методологии моделирования освещаются только эти трое. Как будто других методологий не существует.

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

Читать далее

Инструментарий аналитика данных: что реально нужно освоить в 2026 году

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

Аналитик данных сегодня –это не человек, который умеет просто выгружать данные и знает SQL и этого достаточно, сейчас это человек-оркестр, который умеет выбирать правильный инструмент под задачу, конечно, где-то может быть и достаточно Excel, а для каких-то задач уже нужен сложный запрос с оконными функциями, а где-то нужно собрать быстрый дашборд в Power BI, чтобы заказчик сам мог смотреть цифры.

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

Читать далее

Обновления GigaIDE за февраль 2026

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

Вот и закончился февраль, за который в GigaIDE появилось ещё больше полезного. Ниже — краткий обзор обновлений PRO-функциональности GigaIDE, которую можно найти в нашем маркетплейсе. Обзор инкремента за январь доступен по ссылке.

Читать далее

Exadata на Postgres, или старые архитектурные проблемы и их решение в МБД Tantor XData Gen3

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

СУБД PostgreSQL давно закрепилась в топе благодаря открытости, надёжности и расширяемости, однако ее архитектурный консерватизм порождает ряд нерешённых проблем: отсутствие горизонтального масштабирования, деградация при тысячах соединений, узкое место WAL при высоком commit rate, невозможность полноценной HTAP-обработки и другие.

В статье рассказываем как в новом, третьем поколении машин баз данных Tantor XData Gen3 эти ограничения преодолеваются через глубокую переработку архитектуры — от полного разделения Compute и Storage с протоколом RDMA и распределённой файловой системой PFS до внедрения механизмов CSN для MVCC без блокировок, конвейерной обработки WAL и встроенного MPP‑движка, превращающего PostgreSQL в систему, способную конкурировать с Oracle Exadata уже по‑настоящему. И все это — со 100% сохранением совместимости с «обычным» PostgreSQL.

Читать далее

Переход MultiXactOffset на 64 бита в Postgres

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

Ещё в 1987 году Майкл Стоунбрейкер в основополагающем документе «The Design of POSTGRES» написал, что транзакции должны быть 64-битными. Прошло почти 40 лет — и Postgres до сих пор живёт в мире 32-битных счётчиков. Но в декабре 2025 года в кодовую базу тихо вошёл мой коммит, который стал первым реальным шагом к тому, о чём думал Стоунбрейкер. Расскажу, что именно изменилось и почему это важнее, чем кажется.

Читать далее

Где в postgresql хранится default-значение созданной колонки?

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

Странный вопрос, в column_default таблицы information_schema.columns.

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

Как известно, начиная с 11 версии postgresql, при добавлении новой not null колонки со значением по умолчанию, физически не меняет данные в таблицы. Просто в момент чтения старых данных возвращает указанное значение. Но что произойдёт если удалить дефолт?

Я тоже удивился тому, что not null колонка может возвращаться null и провёл небольшой эксперимент

Читать далее

Научил ИИ-агента помнить важное и забывать лишнее в SQLite

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

Я делаю локально работающего ИИ-агента и столкнулся с тем, что стандартный подход «закинуть текст в векторную базу, достать по косинусу» для долгоживущего агента не работает: контекст замусоривается, факты конфликтуют, ничего не забывается. Вместо этого реализовал графовую когнитивную память поверх одного файла SQLite: эпизодические и семантические узлы, типизированные рёбра, именованные сущности, гибридный поиск (FTS5 + vector + graph) с Reciprocal Rank Fusion, кривую забывания Эббингауза и фоновую LLM-консолидацию. В статье — полная архитектура с кодом, SQL-схемой и формулами. Код и минимальный пример — в репозитории.

Дальше long-read