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

Связь: @devmangx

РКН: https://clck.ru/3H4Wo3
Download Telegram
Pandas: Python для повседневных задач аналитика 🐼

Загрузить файлы с неаккуратными данными, изучить их структуру, очистить столбцы, сгруппировать результаты и объединить наборы данных — всё это можно сделать с Pandas.

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

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
Команды SQL проще запомнить по назначению

• DDL — создание и изменение структуры БД: CREATE, ALTER, DROP.
• DML — добавление, изменение и удаление данных: INSERT, UPDATE, DELETE.
• DCL — управление правами доступа: GRANT, REVOKE.
• TCL — управление транзакциями: COMMIT, ROLLBACK, SAVEPOINT.
• DQL — получение данных: SELECT.

В некоторых классификациях SELECT относят к DML, не выделяя DQL отдельно.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
SQL помогает получить данные. Статистика — понять, что они означают

20 статистических понятий для работы с отчётами, метриками и аналитическими запросами.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥1
Быстрый SQL начинается с продуманных запросов

1. Выбирайте только нужные столбцы. Вместо SELECT * перечисляйте поля: это уменьшает объём передаваемых данных.

2. Создавайте подходящие индексы. Учитывайте столбцы, используемые в WHERE, JOIN и ORDER BY.

3. Избегайте функций над индексируемыми столбцами в условиях. Вместо YEAR(date) = 2024 используйте диапазон дат — он может позволить использовать обычный индекс.

4. Используйте EXISTS для проверки существования строк. Но не считайте его всегда быстрее IN: сравнивайте планы выполнения.

5. Ограничивайте выдачу через LIMIT или TOP. Это сокращает результат, но не обязательно объём работы базы данных.

6. Сравнивайте JOIN и подзапросы. Выбирайте вариант с нужной семантикой и лучшим планом: объединение не всегда быстрее и может размножать строки.

7. Отсекайте ненужные строки через WHERE. Чем меньше данных обрабатывается дальше, тем лучше; фактический порядок операций определяет оптимизатор.

8. Не используйте DISTINCT без необходимости. Удаление дубликатов требует ресурсов. Проверьте, не возникают ли они из-за ошибочного объединения.

9. Выбирайте UNION ALL, если удалять дубликаты не нужно. В отличие от UNION, он сохраняет все строки и не тратит ресурсы на устранение повторов.

10. Анализируйте планы выполнения. Используйте EXPLAIN и, где доступно, EXPLAIN ANALYZE, чтобы находить узкие места. Помните: EXPLAIN ANALYZE действительно выполняет запрос.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Числовые функции SQL: от округления до итогов 🔢

Они помогают обрабатывать числа и выполнять вычисления:

• ROUND — округлить до нужного количества знаков.
• CEIL / CEILING и FLOOR — округлить вверх или вниз до целого.
• ABS — получить модуль числа.
• MOD или % — найти остаток от деления.
• POWER — возвести число в степень.

Агрегатные функции обобщают данные: AVG вычисляет среднее, SUM — сумму, MIN и MAX — минимальное и максимальное значения. Названия и синтаксис отдельных функций зависят от СУБД.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Дубликаты в SQL: способ зависит от задачи

• DISTINCT убирает повторяющиеся сочетания выбранных столбцов из результата запроса.
• GROUP BY объединяет строки в группы и позволяет посчитать повторы через COUNT(*).
• ROW_NUMBER() нумерует строки внутри группы, чтобы выбрать, какую запись оставить.

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

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Git пригодится и тем, кто пишет SQL

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

В шпаргалке — базовые команды: создание репозитория, коммиты, ветки, слияние, stash и работа с удалённым репозиторием. Сохраните для работы над SQL-проектами.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2
SQL проще изучать, если разделить его по задачам

• Определять структуру таблиц: CREATE, ALTER, DROP.
• Получать данные: SELECT, WHERE, ORDER BY.
• Добавлять, изменять и удалять записи: INSERT, UPDATE, DELETE.
• Управлять доступом: GRANT, REVOKE.
• Управлять транзакциями: BEGIN, COMMIT, ROLLBACK.
• Объединять таблицы: JOIN.

Считать итоги: GROUP BY, COUNT, SUM, AVG, MIN, MAX.
Начните с конкретной задачи — так проще понять, какие конструкции нужны и как они работают вместе.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Практические уроки для Backend, Data Engineering и DevOps

Площадка с пошаговыми туториалами и облачными окружениями. Изучаем теорию и сразу выполняем команды без настройки локальной среды. В каталоге PostgreSQL, Redis, Docker, Kubernetes, Airflow, Spark и ClickHouse.

https://prepare.sh/

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Масштабирование базы данных: 6 подходов, которые стоит знать

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

• Вертикальное масштабирование — добавить серверу CPU, RAM и более быстрые диски.
• Реплики для чтения — распределить запросы на чтение между копиями базы, учитывая задержку репликации.
• Шардинг — распределить данные между несколькими узлами.
• Партиционирование — разделить большую таблицу на части, чтобы упростить обслуживание и ускорить подходящие запросы.
• Кэширование — сократить повторные обращения к базе.
• Пул соединений — переиспользовать подключения и ограничивать их количество.

У каждого подхода свои ограничения и цена сложности. Выбирайте по измерениям и характеру нагрузки. Сохраните шпаргалку для работы и подготовки к собеседованию по System Design.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Excel, Python или SQL: что выбрать для работы с данными?

Задачи часто одинаковые: фильтрация, сортировка, агрегация, обработка пропусков, вычисления и объединение таблиц. Отличаются инструменты и способ решения.

• Excel — для работы с таблицами вручную, формул и быстрого анализа.
• Python с pandas — для автоматизации, сложных преобразований и обработки данных из разных источников.
• SQL — для выборки, объединения и агрегации данных прямо в базе.

Сравните одни и те же операции в трёх инструментах: так проще увидеть общую логику и переносить навыки между ними.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Из Excel в Python: знакомые задачи с pandas 🐼

Фильтрация, сортировка, группировка и объединение таблиц — всё, что вы делаете в Excel, можно выполнять и в pandas.

• Фильтры → отбор строк по условиям.
• Сортировка → sort_values().
• Группировка и итоги → groupby() и agg().
• Сводные таблицы → pivot_table().
• Поиск соответствий между таблицами → merge().
• Работа с пропусками → isna(), fillna() и dropna().

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

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥2
SQL и DAX: одни данные, разные задачи

• SQL помогает извлекать, фильтровать, объединять и агрегировать данные в базе. Подходит для подготовки наборов данных и расчётов на стороне СУБД.

• DAX используется для вычислений в табличных моделях, например в Power BI. Меры учитывают контекст фильтрации и пересчитываются при выборе срезов и элементов отчёта.

SQL готовит данные, DAX помогает анализировать их интерактивно. Это полезный ориентир, хотя возможности обоих языков шире и частично пересекаются.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
SQL начинается с SELECT, но логика запроса — с FROM

Логический порядок обработки запроса:

• FROM / JOIN — определить источники и объединить таблицы.
• WHERE — отфильтровать строки.
• GROUP BY — сформировать группы.
• HAVING — отфильтровать группы.
• SELECT — вычислить выражения и выбрать столбцы.
• DISTINCT — убрать дубликаты, если указан.
• ORDER BY — отсортировать результат.
• LIMIT / OFFSET — ограничить выдачу и пропустить строки.

Поэтому псевдоним из SELECT обычно доступен в ORDER BY, но не в WHERE: на этапе фильтрации он ещё не определён.

Это логический порядок, а не физический план выполнения. Оптимизатор может обрабатывать данные иначе, сохраняя смысл запроса.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3❤1
SQL — это набор взаимосвязанных инструментов для работы с данными.

Запросы, JOIN, фильтрация, группировка, оконные функции, транзакции, управление доступом и структурой БД помогают решать разные части одной задачи.

Когда понимаешь, как они связаны, SQL становится понятной системой, а не набором команд для заучивания.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
SQL, Pandas и Power BI: 10 операций для работы с данными

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

Сравните подходы, чтобы понять общую логику операций и легче переключаться между SQL, Pandas и Power BI.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Аналитика данных строится на простом процессе:

Сначала данные извлекаются, преобразуются и загружаются с помощью ETL. Затем их обработка организуется в data pipelines (конвейеры данных), ошибки и неточности устраняются до начала анализа.

После этого с помощью Data Mining (интеллектуального анализа данных) в больших наборах данных выявляются закономерности, тенденции и полезные инсайты.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
Кэш ускоряет приложение, но ошибки в кэшировании снижают его надёжность.

Частые антипаттерны:

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

• Не задавать TTL. Без срока действия или надёжной инвалидации устаревшие значения могут оставаться в кэше неограниченно долго.

• Обновлять БД и кэш без согласованной стратегии. Одна запись проходит, другая падает — данные расходятся. Продумайте порядок обновления, инвалидацию и обработку сбоев: write-through и write-behind сами по себе не гарантируют согласованность.

• Не учитывать отказ кэша. Предусмотрите резервный сценарий. Но помните: переключение всего трафика на БД может перегрузить её — нужны ограничения нагрузки.

• Не планировать инвалидацию. Заранее решите, когда удалять или обновлять записи и как распространять изменения между экземплярами приложения.

В архитектуре, где БД — источник истины, кэш должен ускорять доступ к данным, а не определять их корректность.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
SQL или Python для анализа данных? Освойте оба.

SQL удобен для выборки, фильтрации, объединения и агрегации данных в БД. Python — для очистки, исследовательского анализа, автоматизации и сложных вычислений.

Эти инструменты дополняют друг друга: подготовьте выборку с помощью SQL, а затем исследуйте и визуализируйте её в Python.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Что происходит между 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