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
Синхронизация файлов при запуске экземпляра 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 | Другие наши каналы
Меньше кода, больше результата: применяем sqlc для работы с БД

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


Читать: https://habr.com/ru/companies/oleg-bunin/articles/890654/

#ru

@database_design | Другие наши каналы
TATLIN и Basis Dynamix: интеграция нашей платформы виртуализации с отечественной СХД

Работать с YADRO мы начали еще несколько лет назад, главной задачей нашего сотрудничества было и остается обеспечение совместимости между СХД TATLIN и нашей платформой управления динамической инфраструктурой Basis Dynamix Enterprise. Наша платформа и раньше умела работать с различными СХД — Hitachi, Huawei и других. Однако где-то были реализованы не все возможности, где-то не хватало веб-интерфейса и приходилось работать через консоль, где-то страдало быстродействие. Тесное сотрудничество с YADRO позволяло подходить к решению этих проблем с обеих сторон, плюс, многие наши заказчики регулярно интересовались развитием поддержки TATLIN.UNIFIED в наших продуктах. И вот на этой неделе мы объявили о более глубокой интеграции между TATLIN.UNIFIED Gen 2 и Basis Dynamix Enterprise, включающей поддержку репликации и мгновенных снимков через интерфейс платформы. О чем и хотим рассказать подробнее.


Читать: https://habr.com/ru/companies/basis/articles/890950/

#ru

@database_design | Другие наши каналы
Маскировка объектов схем в подпрограммах SECURITY DEFINER в PostgreSQL

Подпрограммы (функции и процедуры) со свойством SECURITY DEFINER выполняются с правами владельца. Это даёт возможность непривилегированному пользователю выполнить маскировку объектов, к которым относятся не только таблицы, но и подпрограммы и выполнить команду с правами владельца подпрограммы. Если владелец является суперпользователем, то можно выполнить любую команду с правами суперпользователя. В статье рассматривается, как выполнить маскировку функции и как создавать безопасные подпрограммы.


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

#ru

@database_design | Другие наши каналы
Новинки MariaDB: Connector/C++ 1.1.6 и 1.0.5

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

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

#en

@database_design | Другие наши каналы
Как DORA повышает безопасность ИКТ

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

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

#en

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