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
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 | Другие наши каналы
Создание анонимного чата в Telegram: Бот с MiniApp интерфейсом. Часть 1 — Бэкенд на FastAPI, Aiogram, Redis и Centrifugo

Это первая статья из цикла, посвященного разработке телеграм-бота с MiniApp для случайных чатов. В этой части мы сосредоточимся на создании бэкенда, используя современные технологии: FastAPI для разработки API, Redis для хранения данных в реальном времени и Centrifugo для обеспечения мгновенного взаимодействия между пользователями. Сегодня мы подробно разберем архитектуру проекта, настройку серверов и реализацию логики бота.

В следующей статье мы переключимся на фронтенд и займемся разработкой MiniApp с использованием фреймворка Vue.js. Это позволит создать интуитивно понятный интерфейс для пользователей, где они смогут настраивать параметры поиска собеседника и общаться в режиме реального времени (Real time).


Читать: https://habr.com/ru/companies/amvera/articles/890976/

#ru

@database_design | Другие наши каналы
Вертим кеш на GPU

Идут значит: Redis, Docker и Postgres.
R: Как вы собираетесь надругаться над нами сегодня?
D: Я буду вертеть вас на GPU!
P: Ого, прямо на GPU?
D: Да, ресурсов - не жалею!

В данной статье мы:

1. Cравним Redis и Postgres (в качестве системы кеширования).
2. Запустим их на GPU.
3. Оценим их быстродействие.
Давайте разбираться...

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

#ru

@database_design | Другие наши каналы
Вертим кеш на GPU

Идут значит: Redis, Docker и Postgres.
R: Как вы собираетесь надругаться над нами сегодня?
D: Я буду вертеть вас на GPU!
P: Ого, прямо на GPU?
D: Да, ресурсов - не жалею!

В данной статье мы:

1. Cравним Redis и Postgres (в качестве системы кеширования).
2. Запустим их на GPU.
3. Оценим их быстродействие.
Давайте разбираться...

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

#ru

@database_design | Другие наши каналы
Повышение эффективности аналитических баз данных: кейс «Комус» и Arenadata

Хабр, привет! Современные высоконагруженные системы требуют точной настройки и регулярного мониторинга, чтобы обеспечить стабильную производительность в условиях постоянно растущих объёмов данных. Когда речь идёт о крупной аналитической базе данных, развёрнутой в облачной среде, оптимизация её работы становится критически важной задачей. В прошлой статье мы уже рассказывали о типичных ошибках при работе с Arenadata DB (ADB), о том, как их избежать и значительно повысить производительность кластера. Сегодня же поделимся реальным опытом на примере компании «Комус» — лидера в области B2B-ритейла, которая обратилась к Arenadata за проведением комплексного аудита своего кластера ADB.

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

Читать: https://habr.com/ru/companies/arenadata/articles/887792/

#ru

@database_design | Другие наши каналы
OpenSearch как сервис: обзор и тривиальный пример использования на Python

Привет, Хабр! Проблема традиционных реляционных баз данных в том, что они не всегда справляются с обработкой огромных объемов информации. Вот вам нужно быстро найти, проиндексировать и проанализировать логи, события или метрики, но вы упираетесь в ограничения масштабируемости, автошардирования и скорости обработки запросов специфического профиля нагрузки. Знакомо?

Меня зовут Гришин Александр, я продакт-менеджер в Selectel и отвечаю за развитие объектного хранилища и облачных баз данных. В этой статье расскажу, как описанные проблемы решает OpenSearch, как развернуть кластеры этой платформы за несколько минут и начать с ней работать в Python.

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

#ru

@database_design | Другие наши каналы
OpenSearch как сервис: обзор и тривиальный пример использования на Python

Привет, Хабр! Проблема традиционных реляционных баз данных в том, что они не всегда справляются с обработкой огромных объемов информации. Вот вам нужно быстро найти, проиндексировать и проанализировать логи, события или метрики, но вы упираетесь в ограничения масштабируемости, автошардирования и скорости обработки запросов специфического профиля нагрузки. Знакомо?

Меня зовут Гришин Александр, я продакт-менеджер в Selectel и отвечаю за развитие объектного хранилища и облачных баз данных. В этой статье расскажу, как описанные проблемы решает OpenSearch, как развернуть кластеры этой платформы за несколько минут и начать с ней работать в Python.

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

#ru

@database_design | Другие наши каналы
Переход на MongoDB: модернизация телеком-систем

Телеком-компании сталкиваются с вызовами старых систем, таких как сложность и низкая масштабируемость. MongoDB предлагает решение, позволяющее эффективно обрабатывать большие объемы данных и повышать безопасность, адаптивность и производительность современных приложений. Открытие ORiGAMi для машинного обучения с MongoDB

ORiGAMi — новая open-source платформа для машинного обучения с неструктурированными документами в MongoDB. Она позволяет обучать модели без упрощения данных, сохраняя их структуру и контекст. Платформа обновляет предсказания на основе изменения поведения пользователя и доступна на GitHub. Присоединяйтесь к развитию технологии!

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

#en

@database_design | Другие наши каналы
"IFG Life открывает потенциал данных с MongoDB"

IFG Life, дочерняя компания Indonesia Finance Group, модернизирует свои системы с помощью MongoDB Atlas. Старые архитектуры данных тормозили развитие, но переход на облачные технологии и использование MongoDB позволили создать единую платформу управления клиентами, улучшив понимание и обслуживание клиентов. MongoDB поддержал компанию, предоставив необходимые ресурсы и технологии. Почему MongoDB — лучший выбор для модернизации телеком-систем

Телеком-компании, такие как Nokia и Vodafone, уже успешно обновили свои системы с помощью MongoDB. Благодаря гибкой модели данных и встроенным сервисам, MongoDB упрощает переход на новые технологии и повышает эффективность. Узнайте, как MongoDB помогает в модернизации телеком-индустрии.

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

#en

@database_design | Другие наши каналы
Процедура обнаружения взаимоблокировок в PostgreSQL

РostgreSQL автоматически обнаруживает взаимоблокировки. В статье рассматривается процедура обнаружения взаимоблокировок, трудоёмкость процедуры обнаружения, причины, по которым параметр конфигурации log_lock_waits зависит от параметра deadlock_timeout и что влияет на выбор его значения.

Обычно, приводятся примеры взаимоблокировки двух процессов, но заблокироваться может и более двух процессов. Параметр конфигурации deadlock_timeout устанавливает время ожидания получения блокировки, по истечении которого будет выполняться проверка на наличие взаимоблокировки. Параметр log_lock_waits типа boolean (по умолчанию false) позволяет получить в логе кластера сообщение о том, что сессия ждёт получения блокировки дольше, чем значение deadlock_timeout.

Процедура обнаружения взаимоблокировок

Если процесс не может получить блокировку, то он засыпает и устанавливает себе таймер, чтобы проснуться через время, заданное параметром конфигурации deadlock_timeout (по умолчанию 1 секунда). Процесс проснётся до истечения таймаута, если блокировка ему будет предоставлена. По завершению таймаута процесс начинает процедуру обнаружения взаимоблокировки.

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

Если взаимоблокировки нет, то процесс снова заснёт и больше не будет проверять, есть ли взаимоблокировка до получения блокировки или прерывания транзакции в соответствии с параметрами transaction_timeout и аналогичными параметрами. Почему процесс не будет дальше поверять ситуацию возникновения взаимоблокировки с частотой deadlock_timeout?


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

#ru

@database_design | Другие наши каналы
Тестирование БД в легаси-проекте: повышение качества кода и стабильности системы в «Цифровой карте магазина»

В этой статье я хотел бы поделиться с вами моим опытом написания юнит-тестов для базы данных (БД) в рамках легаси-проекта. Я выбрал формат ретроспективы, чтобы показать, как все начиналось, к чему мы пришли и какой путь был пройден в разработке юнит-тестов для проекта «Цифровая карта магазина». Возможно, статья будет полезна начинающим разработчикам баз данных или тем, кто хочет начать писать юнит-тесты для Oracle, но не знает, с чего начать.


Читать: https://habr.com/ru/companies/sportmaster_lab/articles/888110/

#ru

@database_design | Другие наши каналы
SQL vs Excel: когда таблицы уже не справляются

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

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


Читать: https://habr.com/ru/companies/netologyru/articles/891236/

#ru

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