SQL Portal | Базы Данных
14.1K subscribers
1.17K photos
142 videos
51 files
814 links
Присоединяйтесь к нашему каналу и погрузитесь в мир баз данных

Связь: @devmangx

РКН: https://clck.ru/3H4Wo3
Download Telegram
Что происходит между GET /users/123 и ответом API?

Несколько сотен миллисекунд могут включать установку соединения, балансировку нагрузки, проверку авторизации, обращение к кэшу и базе данных. Код контроллера занимает лишь часть этого времени.

В статье разобран путь запроса в приложении на Spring Boot:

• DNS и TLS.
• Балансировка нагрузки.
• Spring Security и JWT.
• Попадание и промах кэша Redis.
• Ожидание соединения из пула.
• Запросы к PostgreSQL.
• Взаимодействие с Kafka.
• Источники задержек на каждом этапе.

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

Читать на Medium

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Бесплатная база по работе с данными

Книга создателя pandas с подробным разбором NumPy, pandas, очистки данных, визуализации и временных рядов. Весь материал сопровождается практическими примерами, исходники и датасеты доступны на GitHub.

https://wesmckinney.com/book/

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Большая коллекция из практических рекомендаций по защите приложений. Внутри: SQL Injection, XSS, JWT, OAuth2, Kubernetes, Docker, API Security, а теперь ещё и безопасность агентов MCP и RAG.

https://cheatsheetseries.owasp.org

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Steampipe: SQL-запросы к облачной инфраструктуре

Какие ресурсы остались без обязательных тегов? Есть ли публично доступные S3-бакеты? В каких Kubernetes namespaces отсутствуют NetworkPolicies?

Для ответа необязательно переключаться между консолями и писать отдельные скрипты. Steampipe — open-source инструмент, который позволяет запрашивать данные из AWS, Kubernetes и других сервисов с помощью SQL.

Через плагины он обращается к API сервисов и представляет данные в виде таблиц. Можно фильтровать ресурсы, объединять результаты и проверять инфраструктуру привычными запросами.

Полезен для инвентаризации, поиска ошибок конфигурации и разовых проверок безопасности.

Руководство по Steampipe

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Партиционирование и шардинг: в чём разница?

Оба подхода делят данные на части, но решают разные задачи. Партиционирование — разделение одной логической таблицы на секции. В типичном случае они находятся в одной СУБД и используют ресурсы одного сервера.

Основные способы:

• Range — по диапазонам, например заказы по годам.
• List — по заданным значениям, например регионам US, EU и APAC.
• Hash — по хешу ключа распределения.

Если условия запроса позволяют, СУБД исключает ненужные секции из обработки — это называется partition pruning. Вместо всей таблицы читается только подходящая часть.

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

Шардинг — распределение данных между несколькими узлами или базами. Каждый шард использует собственные вычислительные ресурсы и хранилище. Например, клиентов распределяют по хешу customer_id. Приложение, прокси или сама распределённая СУБД определяет, куда отправить запрос. Если ключ шарда неизвестен, может потребоваться обращение к нескольким шардам.

Шардинг позволяет распределить нагрузку и объём данных, но усложняет:

• JOIN между шардами;
• транзакции, затрагивающие несколько узлов;
• перераспределение данных;
• борьбу с перегруженными шардами;
• маршрутизацию и эксплуатацию.

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

Обязательной цепочки «одна БД → партиции → реплики → шардинг» нет. Решение выбирают по узкому месту: объёму данных, нагрузке на чтение и запись, требованиям к задержкам и обслуживанию.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
8 приёмов очистки данных в SQL

Работа с пропусками, удаление дубликатов, приведение текста к единому формату и проверка записей помогают подготовить данные к анализу.

Сохраняйте шпаргалку, чтобы меньше ошибок в данных попадало в ваши отчёты.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
SQL, Python и PySpark: 50 операций с данными в сравнении

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

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

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
SQL выполняет запросы не в том порядке, в котором ты их пишешь

Понимание логического порядка выполнения SQL-запроса помогает разобраться, как работают FROM, JOIN, WHERE, GROUP BY, HAVING, SELECT и ORDER BY.

Разберись, как SQL выбирает таблицы, фильтрует строки, группирует данные, применяет условия к группам и сортирует результат. Полезная шпаргалка для точного анализа данных и написания запросов.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Amazon RDS: как AWS управляет реляционными базами данных

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

Amazon RDS (Relational Database Service) — управляемый сервис AWS, который упрощает развёртывание и обслуживание реляционных баз данных. AWS берёт на себя значительную часть инфраструктурных задач, а разработчики могут сосредоточиться на приложении и данных.

RDS поддерживает несколько популярных СУБД:
• Amazon Aurora
• PostgreSQL
• MySQL
• MariaDB
• Oracle Database
• Microsoft SQL Server

Как это работает?

• Выбираете движок базы данных.
• Настраиваете вычислительные ресурсы и хранилище.
• Настраиваете сеть через Amazon VPC.
• Задаёте учётные данные и параметры безопасности.
• Создаёте экземпляр базы данных.
• Подключаете приложение.
• RDS помогает автоматизировать многие задачи обслуживания.

Ключевые возможности RDS

• Резервное копирование. Автоматическое создание бэкапов и восстановление данных в пределах настроенных возможностей хранения резервных копий.
• Обновления. Установка поддерживаемых обновлений СУБД в соответствии с настройками обслуживания.
• Отказоустойчивость. В конфигурации Multi-AZ база может иметь резервный экземпляр в другой зоне доступности. При сбое основного экземпляра сервис поддерживает автоматическое переключение на резервный.
• Масштабирование. Можно изменять вычислительные ресурсы и объём хранилища по мере роста нагрузки.
• Мониторинг. Интеграция с Amazon CloudWatch позволяет отслеживать производительность и использование ресурсов.

RDS и Aurora — в чём разница? Amazon Aurora — облачная реляционная СУБД, доступная через Amazon RDS. Она совместима с PostgreSQL и MySQL и разработана с учётом особенностей инфраструктуры AWS.

Безопасность

Для защиты баз данных используются:

• Изоляция сети через Amazon VPC.
• Security Groups для контроля сетевого доступа.
• Интеграция с IAM для поддерживаемых сценариев.
• Шифрование данных при хранении и передаче.
• Аутентификация и разграничение прав доступа.

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

Где используют Amazon RDS? Веб-приложения, интернет-магазины, SaaS-платформы, корпоративные системы, backend API и приложения с транзакционными нагрузками.

Главное преимущество RDS — возможность использовать привычные реляционные базы данных, не управляя вручную всей инфраструктурой и значительной частью рутинных операций обслуживания.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Очистка данных в SQL — это не только удаление дубликатов

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

И главное правило: перед UPDATE или DELETE сначала проверь, какие строки попадут под изменение.
Чистые данные — основа корректной аналитики.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Индексы не делают базы данных «быстрыми». Они ускоряют конкретные запросы — и за это приходится платить.

Как на самом деле работает индекс

• Индекс — отдельная структура данных, чаще всего B-Tree (B-дерево).
• Он хранит значения столбца и ссылки на соответствующие строки.
• Вместо полного сканирования таблицы база данных может сразу перейти к нужным данным.

Чтение ускоряется за счёт того, что приходится просматривать меньше данных.

Что происходит при INSERT / UPDATE
Запись данных в таблицу.
Поиск нужной позиции в индексе.
Обновление узлов индекса.
При необходимости — перебалансировка дерева.
Запись изменений в журнал транзакций (WAL / redo log) для обеспечения надёжности.
Каждый индекс увеличивает объём работы при записи.

Стоимость операций:

Чтение — примерно (O(\log n)).
Запись — примерно (O(\log n)) для каждого обновляемого индекса.

10 индексов могут значительно увеличить нагрузку при записи, но это не означает, что запись обязательно станет в 10 раз медленнее.

Почему индексы тормозят системы с большим количеством записей

• Повышают нагрузку на CPU.
• Увеличивают количество операций ввода-вывода.
• Могут усиливать конкуренцию за блокировки и другие ресурсы.
• Увеличивают время выполнения транзакций.

Поэтому в высоконагруженных системах количество индексов тщательно контролируют.

Ошибки при работе с индексами в production

• Индексировать каждый столбец.
• Индексировать поля с небольшим количеством уникальных значений, не учитывая характер запросов.
• Игнорировать порядок столбцов в составных индексах.
• Не учитывать характер операций записи.

Главное правило для production: проектируйте индексы исходя из реальных запросов и сценариев работы с данными, а не только из структуры таблиц.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Вопрос по SQL:

Что вернёт этот SQL-запрос?

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Варианты:
Anonymous Quiz
7%
A
20%
B
53%
C
2%
D
19%
E
19 функций Excel, которые должен знать каждый

От SUM, AVERAGE и IF до XLOOKUP, INDEX + MATCH и функций для работы с датами — освойте формулы, которые упрощают очистку данных, расчёты и анализ.

Сохраняйте шпаргалку, чтобы всегда держать нужные функции под рукой!

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Команда, ваш выход 👋

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3😁3