Как стать автором
Поиск
Написать публикацию
Обновить
237.67

Базы данных *

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

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

Мы научились переносить базу данных с Oracle на Postgres Pro со скоростью 41 ТБ/сутки

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

41 ТБ/сутки по маршруту Oracle → Postgres Pro без остановки исходной системы — это не теория, а цифры последних тестов. Мы разложили миграцию на три этапа: быструю начальную загрузку, CDC из redo-логов и валидацию, и собрали их в ProGate. Как устроен конвейер, почему Go и где прячутся узкие места — расскажем в статье.

Читать далее

Новости

Как мы прессовали Redis — и остались в живых

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

Привет! Меня зовут Антон Головенко и я backend-разработчик команды Search-Quality в Авито. Вот уже полтора года я ускоряю производительность поиска и повышаю его надежность, а также участвую в интеграции новых продуктов. В статье расскажу о том, как мы тестировали Redis под нагрузкой, с какими проблемами столкнулись, как их решали и какие выводы сделали. Заголовок звучит кликбейтно — но вы скоро поймёте, что он полностью оправдан.

Читать далее

Почему не стоит заменять пустые значения на 0 в Power BI

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

Если вы когда‑либо занимались построением отчётов в Power BI, то наверняка сталкивались с просьбой «заменить пустые значения на ноль — чтобы было красиво». Кажется, мелочь. Но на самом деле это решение может незаметно убить производительность модели, превратить быстрый отчёт в тормозящий интерфейс, а оптимизатор — в беспомощного наблюдателя. В этой статье — разбор того, что происходит под капотом VertiPaq, как DAX на самом деле обрабатывает BLANK, и почему иногда лучше оставить пустое значение пустым.

Читать далее

Экономический эффект DBaaS за пределами сервера: руководство для топ‑менеджеров

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

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

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

Читать далее

Как мы реализовали георезервирование инфраструктуры для системы видеоконференций: опыт, ошибки, выводы

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

Что общего у систем видеоконференцсвязи (ВКС), финансовых транзакций и авиаперевозок? Все они должны работать всегда, когда нужны людям. Сегодня расскажем, как мы строили георезервирование для инфраструктуры, что пошло не так и какие выводы сделали. Перед вами — true story, как мы помогаем одному из наших заказчиков сопровождать инфраструктуру большого критичного сервиса. 

Привет, Хабр! Это Никита Турцаков и Алексей Кузьмин из К2.

В этой статье расскажем:

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

Готовьтесь: будет много практики и немного боли — потому что как без неё в масштабных и амбициозных задачах.

Читать далее

Как я от нечего делать замедлил Postgres в 42 000 раз

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

Всех постоянно интересует, как сделать Postgres быстрее, эффективнее и всё такое, но никто не задумывался, как её замедлить. Да, большинству этих людей платят за то, чтобы они повышали скорость, но ко мне это не относится. Недавно я писал более полезное руководство, и мне вдруг пришла мысль, что кто-то должен попробовать создать такую конфигурацию Postgres, которая будет настроена на максимально медленную обработку запросов. Зачем? Сложно сказать, но вот такая возникла мысль.

Читать далее

Выжимаем максимум из Postgres на RTABench Q0

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

Время от времени приходится слышать мнение, что Postgres никуда не годится для решения задач аналитики. При при этом, в качестве аргументации приводятся в пример результаты тестирования на TPC‑H или ClickBench. Что ж, когда стоит простая задача перебрать 100 млн строк на диске и посчитать набор агрегатов над ними — формат хранения и распараллеливания действительно сильно ограничивают нас в возможностях оптимизации СУБД. Однако когда запросы высоко селективны, им по факту требуется не так много строк таблицы и фокус внимания смещается на порядок JOINов, кэширование промежуточных результатов и минимизацию операций сортировки. В этом случае Postgres, имеющий весьма широкий выбор различных стратегий выполнения запроса, может получить преимущество...

Читать далее

Shardman и Citus: как масштабировать СУБД Postgres Pro

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

Когда ресурсы сервера уже на пределе, вертикальное масштабирование рано или поздно перестаёт работать — остаётся горизонтальный подход. В этой статье подробно разбираем два способа шардирования в Postgres Pro: Shardman и внешнее расширение Citus. Сравним архитектуры, межузловое взаимодействие, схемы распределения данных и сценарии, в которых каждое решение раскрывается по‑максимуму.

Читать далее

ClickHouse не тормозит, но теряет данные. Часть 1 — дедупликация

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

ClickHouse не тормозит, но теряет данные. Набор простых действий с объяснениями, позволяющий избежать потери данных

Читать далее

Как перестать сомневаться и подать доклад на IT-конференцию

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

Привет, Хабр! За то время, пока существует Онтико, мы подготовили вместе со спикерами тысячи докладов. И точно знаем, что спикер тоже человек и как любой человек он может сомневаться.

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

Читать далее

Оптимизация Redis для высоких нагрузок: полное руководство

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

Привет, Хабр! На связи Александр Горьев, ведущий разработчик в Selectel. Сегодня в фокусе нашего внимания Redis — высокопроизводительное хранилище «ключ-значение», работающее в оперативной памяти. Скорость, простота и богатый набор структур сделали Redis очень популярным.

На старте Redis часто воспринимается как инструмент, который отлично работает «из коробки». Действительно, при небольшом объеме данных и малом числе клиентов он стабильно быстр даже с настройками по умолчанию. Однако с ростом нагрузки и усложнением архитектуры появляются проблемы. Ситуация усугубляется тем, что у каждого сценария свои требования к конфигурации и нет универсального набора параметров.

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

Читать далее

Расширение jsquery для PostgreSQL — точные и быстрые выборки из JSONB

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

Привет, Хабр! Это Антон Дятлов, инженер по защите информации в Selectel. В современных базах данных JSON — де-факто стандарт для хранения полуструктурированных сведений. PostgreSQL предлагает два специализированных типа для работы с ним: json и jsonb. Первый хранит точную текстовую копию документа со всеми пробелами и порядком ключей. Второй применяет оптимизированный бинарный формат. 

Рассказываем про jsquery — расширение, которое предоставляет полноценный язык для формулирования выборок. Появляется возможность писать декларативные, понятные и очень быстрые инструкции для работы с jsonb-полями.

Читать далее

Как мы успешно прошли тест на 30 000 одновременных пользователей в 1C:ERP (и что мы подкрутили в PostgreSQL)

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

Уже давно стали обыденными внедрения решений на платформе 1С:Предприятие на тысячу одновременных пользователей. Есть внедрения и более масштабные. И масштаб внедрений растёт. Поэтому мы решили убедиться, что платформа выдержит нагрузку нашего самого востребованного на крупных внедрениях решения 1C:ERP на 30 000 одновременно работающих пользователях.

Почему именно 30 000 пользователей, как мы измеряли производительность и как добились желаемой производительности — под катом.

Читать далее

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

Как BiHA уведомляет о событиях в кластере

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

В прошлом году мы сделали встроенную поддержку отказоустойчивости в Postgres Pro Enterprise — BiHA. Наше решение позволяет разворачивать отказоустойчивый кластер Postgres, в котором в случае сбоя пишущего узла новый пишущий узел (лидер) будет выбран автоматически.

В новой версии BiHA появилась возможность зарегистрировать пользовательские функции, которые будут вызваны при возникновении таких событий в кластере, как смена лидера, добавление/удаление ноды и других. Этот механизм мы назвали пользовательские колбэки. Разработчик программного обеспечения Postgres Professional Наталия Кокунина расскажет, как реализованы колбэки, и обсудит особенности их использования.

Читать далее

15 лучших библиотек для визуализации данных, о которых должен знать каждый разработчик

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

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

Читать далее

pg_dphyp: учим PostgreSQL соединять таблицы по-другому

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

Большая часть времени планировщика запросов в СУБД тратится на поиск оптимального способа соединения таблиц. В PostgreSQL используется два алгоритма: алгоритм динамического программирования, также называемый DPsize, и генетический — GEQO. В других СУБД реализовано еще множество других алгоритмов. DPhyp — алгоритм соединения на основе гиперграфов — уже используется такими СУБД как MySQL и YDB. Я задался вопросом: можно ли реализовать его в PostgreSQL? Оказывается, можно. Так и зародилось расширение pg_dphyp для PostgreSQL, реализующее альтернативный алгоритм соединения таблиц. В статье я не описываю подробно сам алгоритм, привожу только концептуальное описание его идеи, а рассказываю вот о чем:

-- Какие решения пришлось принять, чтобы добавить алгоритм DPhyp в существующую кодовую базу без изменения ядра;
-- Как GPLv2 помог найти эффективный алгоритм обхода соседей;
-- Как проиндексировали неиндексируемое гиперрёбра;
-- Планирование какого запроса смогли ускорить в 600 раз;
-- Какой изъян в работе существующего планировщика был найден.

Но главный сюжетный поворот — в конце...

Читать далее

Использование метрик для мониторинга облачных баз данных на примере PostgreSQL

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

Если вы работаете с базами данных, то вам определенно стоит иметь понимание о производительности кластера СУБД. Для этого можно использовать базовые метрики. А можно — метрики от DBaaS в сочетании с Grafana. Они позволяют строить кастомные графики, которые могут быть полезны в той или иной ситуации.

Привет! Меня зовут Рамиль Адильбеков, я DevOps-инженер в Selectel. В этой статье покажу, как можно настроить базовый стек Prometheus/Grafana, подключить метрики от кластера облачных баз данных и загрузить дашборд.

Читать далее

Ошибки, которые не случились: C++ и compile‑time проверка SQL-запросов

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

В этой статье мы посмотрим, как можно реализовать полную compile‑time валидацию SQL‑запросов на основе схемы базы данных, встраиваемой прямо в код. Без магии, без рантайма, без сторонних тулов. Только стандартный C++ и ваша структура БД. Валидация таблиц, столбцов, типов аргументов и их количества — всё на compile‑time.

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

Читать далее

Не Pgbouncer, но пулер. Не Odyssey, но с корутинами

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

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

Разработчик программного обеспечения Postgres Professional Тофиг Алиев расскажет, как мы делали Proxima, какие архитектурные решения заложены в расширение, почему мы выбрали именно такой подход. Разберет тонкости реализации, которые позволили нам обрабатывать более 10 тысяч одновременных клиентских сессий. Рассмотрит примеры использования и ответит на вопросы.

Читать далее

Запустили векторный поиск в YDB: рассказываем, как он работает

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

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

Новый релиз СУБД Яндекса делает векторный поиск доступным для всех. Статья под катом написана по мотивам моего доклада на конференции HighLoad++, с которым я выступил 23 июня в Питере. В ней я расскажу про векторный поиск, индекс, RAG и о том, как эти технологии применяются в Алисе.

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