DATABASE DESIGN – Telegram
DATABASE DESIGN
1.41K subscribers
2.09K photos
3 videos
5.35K links
Лучшие материалы по работе с хранилищами данных на русском и английском языке

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Другие наши проекты: https://tprg.ru/media
Download Telegram
Новый диск в облаке Selectel — настройте IOPS под свои задачи

Если вы работаете с облачными ресурсами и управляете инфраструктурой, то наверняка знаете, как важно правильно настроить дисковую подсистему. В Selectel появилась новая возможность: теперь в облаке можно самостоятельно регулировать производительность дисков, не привязываясь к фиксированным конфигурациям.

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

Читать: https://habr.com/ru/companies/selectel/articles/890120/

#ru

@database_design | Другие наши каналы
Жизненный цикл данных под контролем: знакомство с ILM на примере расширения для Postgres Pro Enterprise 17

Если данные в БД растут как на дрожжах, а вместе с ними и расходы на хранение, то пора познакомиться с концепцией управления жизненным циклом информации (ILM). Мы уже внедрили в Postgres Pro Enterprise 17 возможность для внедрения автоматического переноса редко используемых данных в более дешёвые хранилища. Подробности в статье.


Читать: https://habr.com/ru/companies/postgrespro/articles/890238/

#ru

@database_design | Другие наши каналы
Жизненный цикл данных под контролем: знакомство с ILM на примере расширения для Postgres Pro Enterprise 17

Если данные в БД растут как на дрожжах, а вместе с ними и расходы на хранение, то пора познакомиться с концепцией управления жизненным циклом информации (ILM). Мы уже внедрили в Postgres Pro Enterprise 17 возможность для внедрения автоматического переноса редко используемых данных в более дешёвые хранилища. Подробности в статье.


Читать: https://habr.com/ru/companies/postgrespro/articles/890238/

#ru

@database_design | Другие наши каналы
Сжатые структуры данных



Введение

Несколько месяцев назад в поисках идей по ускорению кода я изучал множество научных статей по computer science. Не буду притворяться, что хорошо их понимал, но меня не пугает непонятное, и я готов признать своё невежество1. Я обнаружил статью, написанную пятнадцать лет назад2, в которой было множество новых для меня концепций. Мне никак не удавалось в них разобраться.

Что же делать дальше? Можно искать другие статьи, чтобы они заполнили мои пробелы. Это рискованное предприятие, потому что они могут запутать ещё больше, но избежать этого нельзя. Я нашёл статью с нужной структурой данных, в которой упоминался исходный код с веб-сайта. Код был написан на C++, а я работаю на Rust, но решил, что всё равно стоит на него взглянуть. Однако зайдя на сайт, я не обнаружил там ресурс, поэтому я написал владельцу веб-сайта, который оказался преподавателем computer science.

Этот преподаватель (Гонсало Наварро) очень тепло меня принял и сразу же ответил мне3 4. И только в процессе общения с ним я осознал, что видел его фамилию на множестве статей в этой области. Оказалось, я познакомился с одним из специалистов мирового уровня в области сжатых структур данных (succinct data structure). Невежество может завести очень далеко.

Что же такое сжатые структуры данных? Если вы изучали в последние десятилетия computer science, то могли сталкиваться с ними, но мне не доводилось встречаться с ними в процессе работы программистом, а если и доводилось, то я сразу же о них забыл. Но я считаю, что эти структуры данных обладают потрясающими свойствами.

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

Я решил, что стоит немного о них рассказать.

Читать: https://habr.com/ru/companies/ruvds/articles/890232/

#ru

@database_design | Другие наши каналы
MongoDB: усиление ИИ-возможностей через партнёрства

В феврале MongoDB объявила о покупке Voyage AI, что улучшит качество извлечения данных для ИИ-приложений. Вместе с новыми партнёрами, такими как CopilotKit и Varonis, MongoDB стремится интегрировать передовые технологии, обеспечивая высокую точность и безопасность в работе с данными. Революция в ML: представляем ORiGAMi

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

Читать подробнее

#en

@database_design | Другие наши каналы
Синхронизация файлов при запуске экземпляра PostgreSQL

Если экземпляр PostgreSQL был некорректно остановлен, то перед восстановлением файлов выполняется синхронизаций всех файлов кластера. Способ синхронизации определяется параметром конфигурации recovery_init_sync_method. В статье рассматривается, как ускорить запуск экземпляра и резервирование, если в директории PGDATA имеется много файлов.


Читать: https://habr.com/ru/articles/890354/

#ru

@database_design | Другие наши каналы
Уменьшаем базу данных в 2000 раз при помощи Rust

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

Обычный день нарушений на ratpstatus.fr.

В репозитории GitHub сайта ratpstatus.fr содержатся все файлы JSON, запрашиваемые из open-data API каждые две минуты. Данные сохраняются там уже почти год. Репозиторий с 188 тысячами коммитов и более чем 10 ГБ собранных данных всего лишь в одном последнем коммите (измерено при помощи git clone --depth=1) — это определённо интересный выбор для реализации базы данных! Уточню, что в этом посте я не собираюсь критиковать эту систему. Веб-сайт статуса сети RATP — превосходный веб-сайт, мгновенно и стабильно предоставляющий полезную информацию без обычного сегодня раздувания веб-сайтов. [И нет, сайт не написан на Rust. Веб-сайт на PHP тоже может быть невероятно быстрым!]

Тем не менее, размер базы данных (10 ГБ) заставил меня призадуматься: а можно ли сжать её лучше, потратив на это приемлемое количество времени (скажем выходные)? В этом подробном посте я расскажу, как использовал шаблон проектирования interning в Rust, чтобы сжать этот датасет в две тысячи раз! Мы посмотрим, как лучше структурировать сам интернер, как настроить схему данных для оптимальной работы с ним и как сделать так, чтобы сериализация использовала interning наилучшим образом.

Если у вас в хранилище накопилось множество файлов JSON, то вам стоит прочитать эту статью!


Читать: https://habr.com/ru/articles/889874/

#ru

@database_design | Другие наши каналы
Уменьшаем базу данных в 2000 раз при помощи Rust

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

Обычный день нарушений на ratpstatus.fr.

В репозитории GitHub сайта ratpstatus.fr содержатся все файлы JSON, запрашиваемые из open-data API каждые две минуты. Данные сохраняются там уже почти год. Репозиторий с 188 тысячами коммитов и более чем 10 ГБ собранных данных всего лишь в одном последнем коммите (измерено при помощи git clone --depth=1) — это определённо интересный выбор для реализации базы данных! Уточню, что в этом посте я не собираюсь критиковать эту систему. Веб-сайт статуса сети RATP — превосходный веб-сайт, мгновенно и стабильно предоставляющий полезную информацию без обычного сегодня раздувания веб-сайтов. [И нет, сайт не написан на Rust. Веб-сайт на PHP тоже может быть невероятно быстрым!]

Тем не менее, размер базы данных (10 ГБ) заставил меня призадуматься: а можно ли сжать её лучше, потратив на это приемлемое количество времени (скажем выходные)? В этом подробном посте я расскажу, как использовал шаблон проектирования interning в Rust, чтобы сжать этот датасет в две тысячи раз! Мы посмотрим, как лучше структурировать сам интернер, как настроить схему данных для оптимальной работы с ним и как сделать так, чтобы сериализация использовала interning наилучшим образом.

Если у вас в хранилище накопилось множество файлов JSON, то вам стоит прочитать эту статью!


Читать: https://habr.com/ru/articles/889874/

#ru

@database_design | Другие наши каналы
ETL-потоки «VACUUM FULL», или Как учесть особенности жизненного цикла данных в условиях высоконагруженных хранилищ

Привет, Хабр! Наша команда работает в Сбере и отвечает за развитие аналитического хранилища данных (АХД), а также обеспечение финансово‑аналитической информацией ключевых подразделений. В нашем технологическом стеке используются Greenplum на основе PostgreSQL и Hadoop, что позволяет эффективно обрабатывать большие объёмы данных, гарантируя их надёжное хранение и своевременную доступность для потребителей.

В этой статье мы расскажем об использовании ETL-потоков AUTOVACUUM в наших СУБД.


Читать: https://habr.com/ru/companies/sberbank/articles/890496/

#ru

@database_design | Другие наши каналы
Лучшие SATA SSD-накопители 2025: полное сравнение моделей и характеристик

Несмотря на активное развитие интерфейса NVMe и появление SSD PCIe Gen 5, твердотельные накопители 2,5” по-прежнему остаются востребованным решением для широкого спектра задач. Ограничение пропускной способности интерфейса SATA III компенсируется высокой совместимостью, стабильностью работы и невысокой стоимостью хранения данных в пересчете на гигабайт. Поэтому не стоит списывать их со счетов. Особенно, когда рабочие сценарии не предполагают сверхвысоких скоростей чтения и записи  SSD.


Читать: https://habr.com/ru/companies/x-com/articles/890566/

#ru

@database_design | Другие наши каналы
Obsidian: все что нужно знать о Callout

В этой статье я подробно расскажу о возможностях использования Callout в Obsidian, покажу существующие решения, а также объясню, как создавать свои собственные, индивидуальные типы Callout-блоков.

Рассмотрим при чем здесь цитаты (Blackquotes).

Дополнительно поделюсь полезными надстройками и шаблонами


Читать: https://habr.com/ru/articles/890598/

#ru

@database_design | Другие наши каналы
Как удалось сделать флешку в Linux-е с UEFI и UniversalAMDFormBrowser

Наверняка Вы знакомы с загрузочными флэшками usb. Тех самых, с которых устанавливали Windows, или же запускали UniversalAMDFormBrowser. Речь пойдет как раз о usb с типом EFI. Эти флэшки вставляются в выключенный компьютер. При включении, они загружаются через Boot Menu. На ноутбуках это меню может быть доступно по кнопкам "F12" ИЛИ "F10".
В Windows же есть программа Rufus для форматирования таких флэшек, а что насчёт Linux-а? Для Linux-а же, как всегда, придётся читать дольше, чтобы найти что-то стоящее. Хотите узнать, что же это? Вам сюда.
Мануал

Читать: https://habr.com/ru/articles/890632/

#ru

@database_design | Другие наши каналы
Использование JSONB-полей вместо EAV в PostgreSQL

На одной из конференций PGConf мы обнаружили, что комьюнити с большой опаской относится к использованию JSONB-полей в своих системах. Интернет при этом не столь радикален. Наша же команда в это время вовсю использует JSONB у себя в проекте. Мы решили поделиться нашим вполне успешным кейсом в реальной нагруженной системе с сотнями миллионов строк в таблицах, где эти поля используются.


Читать: https://habr.com/ru/companies/sigma/articles/890668/

#ru

@database_design | Другие наши каналы
Использование JSONB-полей вместо EAV в PostgreSQL

На одной из конференций PGConf мы обнаружили, что комьюнити с большой опаской относится к использованию JSONB-полей в своих системах. Интернет при этом не столь радикален. Наша же команда в это время вовсю использует JSONB у себя в проекте. Мы решили поделиться нашим вполне успешным кейсом в реальной нагруженной системе с сотнями миллионов строк в таблицах, где эти поля используются.


Читать: https://habr.com/ru/companies/sigma/articles/890668/

#ru

@database_design | Другие наши каналы
DATABASE DESIGN
Photo
Высокодоступная база данных с MariaDB на AWS: Как это работает

Хотите надежную и масштабируемую базу данных на AWS? Статья рассматривает развёртывание кластера MariaDB Galera и MaxScale для обеспечения высокой доступности. Узнайте, как избежать медленных переключений и обеспечить автоматическое распределение нагрузки с помощью AWS EC2. Подключение и настройка MariaDB MaxScale

В статье рассказывают, как установить и настроить MariaDB MaxScale для управления серверным кластером базы данных. Пошагово показывается создание пользователей и настройка приоритетов серверов. Также объясняется, как реализовать отказоустойчивость с помощью второй копии MaxScale и проверяются подключения через новый маршрутизатор. Преимущества MariaDB на EC2 перед AWS RDS

Переход на MariaDB на EC2 вместо AWS RDS может обеспечить лучшую доступность и не увеличивает расходы. Решение с использованием MariaDB Galera Cluster и MaxScale дает масштабируемость и быструю переключаемость в случае сбоев. Это минимальная настройка, которую вы можете оптимизировать для повышения производительности.

Читать подробнее

#en

@database_design | Другие наши каналы
5 основополагающих советов по управлению базами данных Greenplum

Greenplum — это массивно‑параллельная (MPP) база данных с открытым исходным кодом, предназначенная для организации хранилищ данных и высокопроизводительной аналитики. Как и в случае с другими MPP‑СУБД, она требует регулярной оптимизации запросов, корректировки распределения ресурсов и защиты данных. В этой статье мы рассмотрим пять рекомендаций, обязательных для эффективного управления Greenplum.


Читать: https://habr.com/ru/companies/otus/articles/890706/

#ru

@database_design | Другие наши каналы
Уменьшаем базу данных в 2000 раз при помощи Rust (завершение)

Сериализация

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

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


Читать: https://habr.com/ru/articles/890250/

#ru

@database_design | Другие наши каналы
👍1
Уменьшаем базу данных в 2000 раз при помощи Rust (завершение)

Сериализация

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

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


Читать: https://habr.com/ru/articles/890250/

#ru

@database_design | Другие наши каналы
Хакеры взломали Минфин США с помощью Unicode. Как это вообще стало возможным?

Китайские хакеры взломали Минфин США через уязвимость PostgreSQL, связанную с Unicode. SQL-инъекция оставалась незамеченной 9 лет и позволила атакующим захватить контроль над сервером

Читать: «Хакеры взломали Минфин США с помощью Unicode. Как это вообще стало возможным?»

#ru

@database_design | Другие наши каналы
Меньше кода, больше результата: применяем sqlc для работы с БД

Привет, Хабр! Инструмент, который генерирует производительный и безопасный код для работы с базой данных — миф или реальность? В этой статье обсудим, что такое sqlc, откуда он появился и какие идеи в него заложены. Разберём его возможности и ограничения, а также кейсы, когда он подходит лучше всего.


Читать: https://habr.com/ru/companies/uzum/articles/890654/

#ru

@database_design | Другие наши каналы