Обновить
256K+

Базы данных *

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

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

Гибридный поиск в Manticore Search

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

Поиск редко сводится к одному универсальному сценарию. Пользователь, вводящий "cheap running shoes", хочет точных совпадений по ключевым словам, а пользователь, задающий "comfortable footwear for jogging", выражает то же намерение другими словами. Традиционный полнотекстовый поиск хорошо справляется с первым случаем. Векторный поиск решает второй. Гибридный поиск объединяет оба в одном запросе, так что вам не приходится выбирать.

В современных поисковых системах это часто описывается как комбинирование лексического (разреженного) поиска с семантическим (плотным) поиском. Разные термины, одна идея: точное совпадение плюс смысл.

Читать далее

Новости

Оптимизация запросов в Spring Data JDBC

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

Я думаю многие согласятся, что Spring Data JDBC — это ORM, который занимает конкретную нишу: он предоставляет более легковесный репозиторный слой доступа к данным поверх реляционной БД без persistence context, без lazy loading, без dirty checking и т.д.

Иными словами, Spring Data JDBC реализует принцип "what you see is what you get" — каждое обращение к репозиторию означает конкретный SQL-запрос в БД, который просто достаёт дерево Aggregate. Это и преимущество, и, тем не менее, иногда это источник потенциальных проблем с производительностью.

В этой статье я разберу ключевые подходы к оптимизации запросов в Spring Data JDBC: от дизайна агрегатов и Single Query Loading, до Stream в качестве возвращаемого значения и @Modifying запросов. Разберём всё с кодом и на примерах.

Только один момент - в этой статье я не затрагиваю Spring Data открытые/закрытые Projection-ы и т.п, так как я предполагаю, что пользователи Spring Data знают, что это и в каких ситуациях их стоит использовать. Эти вещи не специфичны для Spring Data JDBC, я же буду говорить про вещи более специфичные для Spring Data JDBC.

Читать далее

Продвинутый RBAC: роли, статусы, теги без боли и страданий

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

Сегодня детально расскажу про сердце JMatrixPlatform - статусно-ролевой доступ к данным. Это основа платформы, доступная сразу "из коробки", которая реализует продвинутый RBAC с привязкой прав к статусам объектов. Вы не найдёте в общем доступе внятного и современного описания такой методологии, тем более с примерами реализации "из коробки", а это означает, что сегодня очередной эпизод погружения в Области тьмы ИТ, куда не заглядывают модные фреймворки.

Читать далее

Гайд системного аналитика по корректировкам витрин

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

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

Сегодня хотим рассказать вам о рабочих буднях аналитика DWH, точнее об одной из частей этих будней. Надеемся, данное знание пригодится вам для того, чтобы быстро и без нервов освоиться на том проекте, на котором вы будете работать.

Информацию описываем вам из нашей практики работы нашего аналитика хранилищ данных.

Работу аналитика хранилищ данных можно разделить на две части:

1. Организация интеграции данных от какого‑либо источника к какому‑либо приемнику;

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

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

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

В статье речь пойдет об ETL-процессе, когда с источника данных «протянут» информационный поток со своей логикой преобразований, который «кладет» некорректные данные в приемник.

Читать далее

Геораспределенное резервирование Postgres при помощи Debezium

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

Всем привет, меня зовут Николай Голубев, я — техлид из компании HFLabs. Эта статья написана по мотивам моего выступления на конференции Saint HighLoad++.

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

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

Читать далее

Мониторинг SQL Server Always On в Zabbix

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

Если у вас стоит Always On Availability Groups, вы наверняка бывали в такой ситуации: в SSMS всё зелёное, дашборд показывает «Synchronized», а пользователи звонят с жалобами на тормоза. Смотришь на secondary — а там redo_queue_size 600 МБ, реплика отстаёт на полчаса. Ни одного алерта.

У нас это случилось на продуктивном кластере с 1С: secondary молча отвалился в SYNCHRONIZING, а мы узнали только при плановом переключении. Полтора часа redo queue. Стало понятно, что встроенный дашборд SSMS — это не мониторинг. Дальше — как мы это закрыли Zabbix'ом за вечер.

Читать далее

Парсинг тарифов интернета и ТВ. Selenium + BeautifulSoup: трудности динамического контента и защиты от ботов

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

На этапе тестирования я отобрал 6 городов (Москва, Санкт-Петербург, Новосибирск, Екатеринбург, Казань, Красноярск) и двух крупнейших провайдеров России - Ростелеком и Дом.ру. В планах масштабирование на большее количество городов и операторов.

Для парсинга тарифов у провайдеров применял связку Python + Selenium + BeautifulSoup, через хранимую процедуру складывал полученные данные в базу PostgreSQL.

Читать далее

От Google таблиц к DataLens + PostgreSQL: как мы делали BI-систему для WB и Ozon

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

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

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

В этой статье я хочу рассказать как мы от потребности в нормальной аналитике WB и OZON прошли путь до создания своего SaaS - продукта на Datalens + PostgreSQL с оптимизацией JOIN’ов, историей себестоимости, автоматизацией процессов и классными решениями.

Читать далее

Записки оптимизатора 1С (ч.16). Риски падения Postgres: потребление и высвобождение памяти процессами postgres

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

Статья родилась в ходе наблюдения за одной из систем на Postgres, что у нас на поддержке. Результаты наблюдения несколько удивили, поэтому делюсь, ибо причинно-следственные связи далеко не очевидны.

Триггером к изучению, можно сказать, даже к расследованию, послужило событие, когда однажды утром сервер PG завалился, потому что процессы postgres заняли всю память.

Читать далее

Если ваш админ — самурай или «обнять и плакать»

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

В статье дан обзор одного из докладов конференции PgConf, которая прошла 23-24 марта 2026 года, Андрея Билле, главного инженера компании Postgres Professional. Название доклада: «Если ваш админ самурай или история о восстановлении очень нужных данных».

Читать далее

Как мы сломали индекс обитаемости экзопланет: Парадокс ESI, Physics-Informed ML и 9600 фейковых «Земель»

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

В прошлой нашей статье мы рассказывали, как написали программу ExoLogica AI для анализа экзопланет. В комментариях Senior Data Scientist'ы справедливо разнесли нас за то, что наша нейросеть ничего не знала об уравнении состояния вещества (не хватало inductive bias).

Мы признали критику, ушли переписывать архитектуру и внедрили полноценный Physics-Informed ML. Но когда мы запустили гибридную модель v2.0, мы обнаружили нечто пугающее. Оказалось, что главный астрономический Индекс Подобия Земле (ESI) систематически лжет.

Рассказываем, как мы открыли «Парадокс ESI», ввели собственный индекс физической реализуемости (PRI) и математически доказали, что 71% так называемых «вторых Земель» — это просто куски раскаленного чугуна. И о том, как пара строк кода на Python сократила каталог из 9600 планет до 37 реальных миров, утерев нос популярным спискам обсерваторий.

Читать далее

Health Score для PostgreSQL: один показатель вместо 150 метрик

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

Мониторинг PostgreSQL сломан: 150 метрик в pg_stat_*, и ни одна не отвечает на вопрос «база здорова?». В статье — как устроен Health Score: единое число от 0 до 100, которое агрегирует состояние базы и заменяет 30 дашбордов Grafana.

Читать далее

Книга «PostgreSQL 16. Оптимизация запросов»: учимся читать мысли планировщика

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

Медленный запрос — это не приговор, это задача со своим решением. Но найти его невозможно, пока планировщик PostgreSQL остаётся для вас чёрным ящиком. Книга Павла Толмачёва «PostgreSQL 16. Оптимизация запросов» даёт то, чего не хватает большинству разработчиков и администраторов: системное понимание того, как планировщик принимает решения, — и практические инструменты, чтобы направить его в нужную сторону.

Читать далее

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

CPU 80%. Как найти проблемный запрос в ClickHouse?

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

Clickhouse. CPU под нагрузкой, память на пределе, диск нагружен. Запросы тормозят. Расчёты не завершаются. Сервер на грани. Что же делать?

Читать далее

RAG вместо GPT: как мы сделали внутреннего ассистента для корпоративных данных

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

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

Мы построили внутренний RAG-ассистент в закрытом контуре: изоляция данных, контроль доступа, бенчмарки качества и долгая  работа с вендором. В статье — архитектура, переговоры  с вендором, ошибки, компромиссы и выводы для тех, кто думает о корпоративном ИИ всерьёз.

Конечно, до внедрения RAG компания нормально работала — это не история про «без ИИ ничего не функционирует». Это история про оптимизацию: сократить время на рутинный поиск и навигацию в массивах информации.

Читать далее

Temporal Tables в MS SQL Server: история изменений

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

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

Temporal tables позволяют следить за историями изменений уровне движка. SQL Server сам хранит полную историю изменений каждой строки — без триггеров, без дополнительного кода и без самописного аудита. Фича появилась в SQL Server 2016 и к сегодняшнему дню обросла возможностями. Разберём, как все устроено и как использовать.

Читать далее

Практический тренажёр по SQL

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

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

Читать далее

Книга: «Грокаем проектирование реляционных баз данных»

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

Привет, Хаброжители! Реляционные базы данных используются практически в каждой компании. И разбираться в том, как они работают, приходится и разработчикам, и аналитикам, создающим дашборды и отчеты, и специалистам, которым просто нужна актуальная информация. Это увлекательное руководство по миру баз данных и SQL написано в доступной и юмористической манере. Авторы, опытные преподаватели из Университета Торонто, превращают сложные концепции в простые и понятные объяснения с помощью ярких примеров, забавных иллюстраций и практических заданий.

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

Читать далее

Миллиард записей и 8 Марта: как YDB спас праздник

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

Чем покупка букета на 8 Марта через Яндекс Еду отличается от покупки, собственно, еды? С точки зрения пользователя — ничем. Выбрал, оплатил, доставили. А вот с точки зрения разработчика бэкенда заказ уникальных букетов превращается в нетривиальную инженерную задачу синхронизации складских запасов. Задержка синхронизации хотя бы в 10 минут трансформируется в звонок и сборщиков заказов, сообщающих о том, что именно такого букета на складе больше нет. 

Меня зовут Виталий Московкин, я занимаюсь ритейлом в Яндекс Еде. В статье я расскажу, как мы синхронизировали состояние складов с 18 миллионами уникальных товаров: сначала с помощью PostgreSQL, а затем с помощью YDB. Такое количество товаров превращается на бэкенде в 4 миллиарда записей о ценах и стоках, которые нельзя просто так кешировать. Но и замена монолитной СУБД на распределённую тоже задача не на десять минут. Подробности — под катом.

Читать далее

Реализация MCP в Open WebUI. Часть 2 — Агентское поведение

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

Это вторая часть нашей реализации MCP на Open WebUI, которая строится для целей портфельной аналитики. В прошлой части мы разобрали интеграционную часть нашего решения: как мы пришли к Open WebUI, как использовали статусы в запросах пользователя, как отображаем результаты (чтобы не словить ошибки о слишком больших чанках), как строим графики в интерфейсе и как работаем с запросами пользователей.

Данная часть будет посвящена реализации самого агента: его общению с инструментами, вызову этих самых инструментов и планированию шагов по их вызовам. В этой статье будет рассмотрен наш путь по реализации данного агента: от наивного агента, которому просто дали пул инструментов и отправили в релиз до разделения агента на планировщик и исполнителя (спойлер: вторая версия стала куда лучше справляться с различными задачами). Отдельно будет затронута возможность различных моделей использовать chain-of-thoughts.

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