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

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

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

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

Другие наши проекты: https://tprg.ru/media
Download Telegram
Мониторинг истории активных сессий в базах данных

Сегодня проверим Dimension-UI на задаче мониторинга истории активных сессий в базах данных Oracle, PostgreSQL, ClickHouse и MS SQL Server в режиме реального времени.

История активных сессий (Active Session History, ASH) - очень удобный способ получения информации о работе БД в кратком виде. Когда важно максимально быстро отследить, что происходит с системой в настоящее время, оценить развитие текущей ситуации - это рабочая активность или начало каких-либо проблем - в том числе, через быстрый просмотр baselines в недавнем прошлом системы и сравнить их с текущими данными.

Изначально, данный подход был разработан и применен в СУБД Oracle начиная с 10g версии. Архитектурно в Oracle это выглядит как плоская таблица в памяти V$ACTIVE_SESSION_HISTORY, в которую с определенным интервалом (стандартно 1 секунда, но его значение можно изменять) записывается состояние каждой активной сессии: идентификатор сессии, SQL-запроса, процесса операционной системы, текущий статус сессии - в работе или ожидании получения доступа к ресурсу, статистики потребления памяти и проч.. Периодически информация из таблицы в памяти сбрасывается на диск в таблицу DBA_HIST_ACTIVE_SESS_HISTORY репозитория рабочей нагрузки AWR.
(трафик 29 Мб)

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

#ru

@database_design | Другие наши каналы
Книга: «Грокаем структуры данных»

Каждый разработчик знает, насколько важны структуры данных. Без них не обходится ни один серьезный проект, будь то оптимизация запросов, работа с Big Data или просто написание чистого и эффективного кода. Не зря же на собеседованиях постоянно спрашивают про деревья, хеш-таблицы и сложность алгоритмов!

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

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

Если вы хотите не просто использовать структуры данных, а понимать их и применять осознанно — эта книга для вас.


Читать: https://habr.com/ru/companies/piter/articles/954670/

#ru

@database_design | Другие наши каналы
Забудь про облачные подписки! Полный переход с Google Photos на Immich. Мой личный опыт

Привет! Сегодня вам расскажу, как я полностью отказался от Google Photos и настроил своё собственное хранилище фотографий на базе Immich с кучей функций, не уступающих тем, что есть у популярных представителей данных сервисов.
Это не обзор ради обзора, а мой реальный кейс. У меня дома стоит свой собственный домашний сервер, который я собрал не так давно, куда я уже перенес все свои фотографии и видео.


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

#ru

@database_design | Другие наши каналы
Парсить XML при помощи регулярных выражений нельзя… но давайте попробуем

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

Существует знаменитый ответ на Stack Overflow о том, почему этого ни в коем случае не следует делать. На самом деле, этот ответ стал настолько популярным, что в определённых кругах используется, как копипаста. Каждый раз, когда я натыкаюсь на него, то думаю что он во многом справедлив... но в то же время, не могу согласиться с ним полностью...


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

#ru

@database_design | Другие наши каналы
Динамическое маскирование в СУБД: принципы, сценарии и реализация

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

На связи Артемий Новожилов, архитектор систем ИБ и автор ТГ-канала Data Security и Дмитрий Ларин, руководитель продуктового направления по защите баз данных, группа компаний «Гарда». С нами вы могли познакомиться по таким статьям как маскирование и Apache Kafka. И сегодня мы хотим продолжить тему маскирования данных.

Современные компании обрабатывают огромные объемы конфиденциальных данных: персональные данные (как сотрудников, так и партнеров и клиентов), информацию о клиентах и их заказах, финансовые и бухгалтерские сведения, данные, относящиеся к коммерческой тайне и интеллектуальной собственности, а также технические настройки и доступы. В связи с этим возникают повышенные риски утечки данных, сложности с соблюдением требований законодательства (например, ФЗ-152 и GDPR), угроза инсайдерских атак, а для тестов или аналитики приходится создавать отдельные копии баз данных (БД).

Один из эффективных способов защиты данных – динамическое маскирование (Dynamic Data Masking, DDM).
Узнать все о динамическом маскировании

Читать: https://habr.com/ru/companies/garda/articles/954932/

#ru

@database_design | Другие наши каналы
Как мигрировать приложение с базой данных Oracle в Postgres без лишних хлопот

Статья описывает методику миграции приложения, содержащего множество SQL запросов из базы данных Oracle в Postgres. Будет интересна всем, кто собирается мигрировать или уже мигрировал приложение из Oracle в Postgres.


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

#ru

@database_design | Другие наши каналы
Данные WhatsApp и Telegram для ML-моделей: тренд или серый рынок?

В этой статье я расскажу про новый тип данных для российского рынка - данные Whatsapp и Telegram: насколько они ценны и насколько легальны.


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

#ru

@database_design | Другие наши каналы
Данные WhatsApp и Telegram для ML-моделей: тренд или серый рынок?

В этой статье я расскажу про новый тип данных для российского рынка - данные Whatsapp и Telegram: насколько они ценны и насколько легальны.


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

#ru

@database_design | Другие наши каналы
Как динамическая схема и zstd ускорили MongoDB
В статье описан переход на динамическую схему: квартальные бакеты (≈3× меньше документов), объединение агрегаций и смена snappy на zstd (−43% Storage). Результат — меньше данных, лучшая латентность и throughput; приведены метрики и кейсы.

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

#en

@database_design | Другие наши каналы
DBT Proplum: Расширяем возможности DBT для работы с Greenplum и Clickhouse

В современных реалиях всё чаще встаёт вопрос о переходе с вендорских продуктов на open-source. Компании активно рассматривают DBT как стандарт для управления трансформациями данных, но сталкиваются с проблемами: существующие алгоритмы загрузки оказываются недостаточными, а адаптеры для СУБД - устаревшими.

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

Читать: https://habr.com/ru/companies/sapiens_solutions/articles/955122/

#ru

@database_design | Другие наши каналы
Forwarded from Типичный программист
This media is not supported in your browser
VIEW IN TELEGRAM
Наткнулся на шикарное чтиво по шардингу БД с интерактивными схемами

🔘В лонгриде объясняется, как работает шардирование и какие моменты важно учесть при проектировании производительного sharded‑кластера.

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

Сохраняйте годноту 😮
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Профессия программист С: плюсы, минусы и нужен ли свитер

В мире, где абстракции правят бал, а скорость важнее эффективности, говорить о C — значит идти против течения. Для многих это «устаревший» язык с ручным управлением памятью и «опасными» указателями. Но что, если именно эти его особенности — не минусы, а ключи к системному программированию, где нет права на ошибку? Программистом Postgres Professional с 22-летним стажем Максим Орлов убеждён, что C — не про мгновенный дофамин и быстрые прототипы, а про суть, контроль и философское понимание того, как действительно работает железо. Погрузитесь в историю любви к C, которая началась с раздражения на Pascal, и узнайте, почему этот «бастион спокойствия» актуален и сегодня.


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

#ru

@database_design | Другие наши каналы
Обновление MariaDB: новые коннекторы

По сообщению MariaDB, выпущены Connector/ODBC 3.2.7, Connector/Python 1.1.14 и Connector/Node.js 3.5.0 — все доступны для загрузки. Подробности и заметки о релизах на сайте MariaDB.

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

#en

@database_design | Другие наши каналы
Data Safe для безопасности Oracle

Data Safe позволяет логически группировать базы, применять повторно шаблоны оценок (CIS/STIG/польз.), автоматически отслеживать дрейф с оповещениями, стандартизировать аудиторские политики и назначать динамические группы — экономия времени и меньший риск.

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

#en

@database_design | Другие наши каналы
OKV 21: новые функции и усиленная безопасность

В статье описаны крупные обновления OKV 21 — расширение сценариев применения и укрепление защиты. Блог подробно объясняет новые возможности и их значение для работы и безопасности вашей организации.

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

#en

@database_design | Другие наши каналы
Хранилище данных с синхронизацией близкой реальному времени

Здравствуйте. Меня зовут Олег Юрченко. Расскажу о своём опыте создания хранилища данных для отчётов с синхронизацией близкой реальному времени.


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

#ru

@database_design | Другие наши каналы
Почему model-first и где истина?

У реляционных баз данных есть один небольшой недостаток - они не выводят табличные данные на экран пользователя. С одной стороны - какой же это недостаток, когда технология занимается исключительно своими базаданновыми вещами и не лезет туда, где её не надо. С другой - приходится данные пробрасывать через другой язык программирования, а то и два-три в случае веба. Ну и сам язык запросов забывать не надо. Он тоже вроде как язык.

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

И вроде не велика проблема - делаем структуру в нашем любимом языке, такую же, как в БД и из наших кубиков складывается слово "счастье". Складываться-то оно складывается, но ненадолго. Очень быстро структура БД и структура в коде начинают разъезжаться. А если не начинают, то потыкайте в свой проект палочкой - скорее всего он уже умер. Как говорится "не щебечет дохлый щегол, а мёртвый проект не меняет свою структуру". Ну и далее по тексту...
Познать истину

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

#ru

@database_design | Другие наши каналы
Как Cars24 ускорил поиск и сократил расходы на MongoDB

В статье рассказывают, как Cars24 объединил БД и поиск в MongoDB Atlas, отказался от Elasticsearch и ArangoDB, внедрил динамическую схему, квартальные бакеты и сжатие zstd, добился до 99% ускорения и ~40% экономии места.

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

#en

@database_design | Другие наши каналы
Вышел Bun 1.3: full-stack рантайм, поддержка Redis и новый SQL API. Разобрались, что еще нового

Bun 1.3 стал full-stack рантаймом с Redis, SQL API, поддержкой MySQL и PostgreSQL, новым тест-раннером и ускорением сборки до 2,5 раз

Читать: «Вышел Bun 1.3: full-stack рантайм, поддержка Redis и новый SQL API. Разобрались, что еще нового»

#ru

@database_design | Другие наши каналы
Система резервации на 600 заказов в секунду без буферизации и другой дичи

Я прочитал статью https://habr.com/ru/companies/ozontech/articles/950044/, и меня поразило, сколько сомнительных решений можно использовать для одной простой задачи.

В этой статье я расскажу, как правильно создать сервис для конкурентных обновлений остатков данных в базе данных. Буду использовать .NET, C#, Entity Framework и PostgreSql.


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

#ru

@database_design | Другие наши каналы
Автоматический парсинг чеков с LlamaIndex и Pydantic

Команда Python for Devs подготовила перевод статьи о том, как с помощью LlamaIndex и Pydantic можно превратить сканы чеков в структурированные данные. Минимум кода — и у вас готовый CSV для анализа.


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

#ru

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