Бесплатная база по работе с данными
Книга создателя pandas с подробным разбором NumPy, pandas, очистки данных, визуализации и временных рядов. Весь материал сопровождается практическими примерами, исходники и датасеты доступны на GitHub.
https://wesmckinney.com/book/
👉 @SQLPortal
Книга создателя pandas с подробным разбором NumPy, pandas, очистки данных, визуализации и временных рядов. Весь материал сопровождается практическими примерами, исходники и датасеты доступны на GitHub.
https://wesmckinney.com/book/
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
https://cheatsheetseries.owasp.org
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
Какие ресурсы остались без обязательных тегов? Есть ли публично доступные S3-бакеты? В каких Kubernetes namespaces отсутствуют NetworkPolicies?
Для ответа необязательно переключаться между консолями и писать отдельные скрипты. Steampipe — open-source инструмент, который позволяет запрашивать данные из AWS, Kubernetes и других сервисов с помощью SQL.
Через плагины он обращается к API сервисов и представляет данные в виде таблиц. Можно фильтровать ресурсы, объединять результаты и проверять инфраструктуру привычными запросами.
Полезен для инвентаризации, поиска ошибок конфигурации и разовых проверок безопасности.
Руководство по Steampipe
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Партиционирование и шардинг: в чём разница?
Оба подхода делят данные на части, но решают разные задачи. Партиционирование — разделение одной логической таблицы на секции. В типичном случае они находятся в одной СУБД и используют ресурсы одного сервера.
Основные способы:
• Range — по диапазонам, например заказы по годам.
• List — по заданным значениям, например регионам US, EU и APAC.
• Hash — по хешу ключа распределения.
Если условия запроса позволяют, СУБД исключает ненужные секции из обработки — это называется partition pruning. Вместо всей таблицы читается только подходящая часть.
Партиционирование упрощает обслуживание, загрузку и удаление старых данных. Но ускорение зависит от запросов и ключа разбиения: само по себе оно не делает любой запрос быстрее. Устройство индексов тоже зависит от СУБД: они могут быть локальными или глобальными.
Шардинг — распределение данных между несколькими узлами или базами. Каждый шард использует собственные вычислительные ресурсы и хранилище. Например, клиентов распределяют по хешу
Шардинг позволяет распределить нагрузку и объём данных, но усложняет:
• JOIN между шардами;
• транзакции, затрагивающие несколько узлов;
• перераспределение данных;
• борьбу с перегруженными шардами;
• маршрутизацию и эксплуатацию.
Эти подходы можно сочетать: таблицы внутри каждого шарда тоже могут быть партиционированы.
Обязательной цепочки «одна БД → партиции → реплики → шардинг» нет. Решение выбирают по узкому месту: объёму данных, нагрузке на чтение и запись, требованиям к задержкам и обслуживанию.
👉 @SQLPortal
Оба подхода делят данные на части, но решают разные задачи. Партиционирование — разделение одной логической таблицы на секции. В типичном случае они находятся в одной СУБД и используют ресурсы одного сервера.
Основные способы:
• Range — по диапазонам, например заказы по годам.
• List — по заданным значениям, например регионам US, EU и APAC.
• Hash — по хешу ключа распределения.
Если условия запроса позволяют, СУБД исключает ненужные секции из обработки — это называется partition pruning. Вместо всей таблицы читается только подходящая часть.
Партиционирование упрощает обслуживание, загрузку и удаление старых данных. Но ускорение зависит от запросов и ключа разбиения: само по себе оно не делает любой запрос быстрее. Устройство индексов тоже зависит от СУБД: они могут быть локальными или глобальными.
Шардинг — распределение данных между несколькими узлами или базами. Каждый шард использует собственные вычислительные ресурсы и хранилище. Например, клиентов распределяют по хешу
customer_id. Приложение, прокси или сама распределённая СУБД определяет, куда отправить запрос. Если ключ шарда неизвестен, может потребоваться обращение к нескольким шардам.Шардинг позволяет распределить нагрузку и объём данных, но усложняет:
• JOIN между шардами;
• транзакции, затрагивающие несколько узлов;
• перераспределение данных;
• борьбу с перегруженными шардами;
• маршрутизацию и эксплуатацию.
Эти подходы можно сочетать: таблицы внутри каждого шарда тоже могут быть партиционированы.
Обязательной цепочки «одна БД → партиции → реплики → шардинг» нет. Решение выбирают по узкому месту: объёму данных, нагрузке на чтение и запись, требованиям к задержкам и обслуживанию.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
8 приёмов очистки данных в SQL
Работа с пропусками, удаление дубликатов, приведение текста к единому формату и проверка записей помогают подготовить данные к анализу.
Сохраняйте шпаргалку, чтобы меньше ошибок в данных попадало в ваши отчёты.
👉 @SQLPortal
Работа с пропусками, удаление дубликатов, приведение текста к единому формату и проверка записей помогают подготовить данные к анализу.
Сохраняйте шпаргалку, чтобы меньше ошибок в данных попадало в ваши отчёты.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
SQL, Python и PySpark: 50 операций с данными в сравнении
Фильтрация, JOIN, агрегации, оконные функции и преобразования данных — посмотрите, как одни и те же задачи решаются в трёх технологиях.
Сохраняйте шпаргалку, чтобы быстрее находить знакомые операции при переходе между инструментами.
👉 @SQLPortal
Фильтрация, JOIN, агрегации, оконные функции и преобразования данных — посмотрите, как одни и те же задачи решаются в трёх технологиях.
Сохраняйте шпаргалку, чтобы быстрее находить знакомые операции при переходе между инструментами.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
SQL выполняет запросы не в том порядке, в котором ты их пишешь
Понимание логического порядка выполнения SQL-запроса помогает разобраться, как работают
Разберись, как SQL выбирает таблицы, фильтрует строки, группирует данные, применяет условия к группам и сортирует результат. Полезная шпаргалка для точного анализа данных и написания запросов.
👉 @SQLPortal
Понимание логического порядка выполнения SQL-запроса помогает разобраться, как работают
FROM, JOIN, WHERE, GROUP BY, HAVING, SELECT и ORDER BY.Разберись, как SQL выбирает таблицы, фильтрует строки, группирует данные, применяет условия к группам и сортирует результат. Полезная шпаргалка для точного анализа данных и написания запросов.
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
В 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 — возможность использовать привычные реляционные базы данных, не управляя вручную всей инфраструктурой и значительной частью рутинных операций обслуживания.
Please open Telegram to view this post
VIEW IN TELEGRAM
Очистка данных в SQL — это не только удаление дубликатов
Перед анализом данных важно привести их в порядок: исправить текстовые значения, обработать
И главное правило: перед
Чистые данные — основа корректной аналитики.
👉 @SQLPortal
Перед анализом данных важно привести их в порядок: исправить текстовые значения, обработать
NULL, проверить типы данных, унифицировать категории, найти некорректные значения и провести проверки качества.И главное правило: перед
UPDATE или DELETE сначала проверь, какие строки попадут под изменение.Чистые данные — основа корректной аналитики.
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
Как на самом деле работает индекс
• Индекс — отдельная структура данных, чаще всего B-Tree (B-дерево).
• Он хранит значения столбца и ссылки на соответствующие строки.
• Вместо полного сканирования таблицы база данных может сразу перейти к нужным данным.
Чтение ускоряется за счёт того, что приходится просматривать меньше данных.
Что происходит при INSERT / UPDATE
Запись данных в таблицу.
Поиск нужной позиции в индексе.
Обновление узлов индекса.
При необходимости — перебалансировка дерева.
Запись изменений в журнал транзакций (WAL / redo log) для обеспечения надёжности.
Каждый индекс увеличивает объём работы при записи.
Стоимость операций:
Чтение — примерно (O(\log n)).
Запись — примерно (O(\log n)) для каждого обновляемого индекса.
10 индексов могут значительно увеличить нагрузку при записи, но это не означает, что запись обязательно станет в 10 раз медленнее.
Почему индексы тормозят системы с большим количеством записей
• Повышают нагрузку на CPU.
• Увеличивают количество операций ввода-вывода.
• Могут усиливать конкуренцию за блокировки и другие ресурсы.
• Увеличивают время выполнения транзакций.
Поэтому в высоконагруженных системах количество индексов тщательно контролируют.
Ошибки при работе с индексами в production
• Индексировать каждый столбец.
• Индексировать поля с небольшим количеством уникальных значений, не учитывая характер запросов.
• Игнорировать порядок столбцов в составных индексах.
• Не учитывать характер операций записи.
Главное правило для production: проектируйте индексы исходя из реальных запросов и сценариев работы с данными, а не только из структуры таблиц.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
19 функций Excel, которые должен знать каждый
От SUM, AVERAGE и IF до XLOOKUP, INDEX + MATCH и функций для работы с датами — освойте формулы, которые упрощают очистку данных, расчёты и анализ.
Сохраняйте шпаргалку, чтобы всегда держать нужные функции под рукой!
👉 @SQLPortal
От SUM, AVERAGE и IF до XLOOKUP, INDEX + MATCH и функций для работы с датами — освойте формулы, которые упрощают очистку данных, расчёты и анализ.
Сохраняйте шпаргалку, чтобы всегда держать нужные функции под рукой!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
50 ключевых навыков, которыми должен владеть аналитик данных
От SQL, Excel, Python и Power BI до статистики, визуализации данных и бизнес-аналитики — этот чек-лист охватывает навыки, необходимые для уверенной работы аналитиком данных.
Сохраняй, чтобы использовать в своём обучении и отслеживать прогресс!
👉 @SQLPortal
От SQL, Excel, Python и Power BI до статистики, визуализации данных и бизнес-аналитики — этот чек-лист охватывает навыки, необходимые для уверенной работы аналитиком данных.
Сохраняй, чтобы использовать в своём обучении и отслеживать прогресс!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Forwarded from Arenadata
На ArenaTech инженеры Arenadata расскажут, как устроены продукты компании изнутри, поделятся опытом решения сложных инженерных задач и представят ключевые направления технологического развития.
После каждого доклада участники смогут задать вопросы спикерам в рамках Q&A-сессии.
Конференция будет интересна разработчикам, дата-инженерам, администраторам СУБД, архитекторам, DevOps-инженерам и техническим руководителям.
Формат: онлайн
Программа и регистрация
Please open Telegram to view this post
VIEW IN TELEGRAM
Excel, Python или SQL — какой инструмент выбрать под задачу?
Логика часто одна и та же, меняется лишь подход к её реализации.
Сравниваем три инструмента на практике: фильтрацию, сортировку, агрегацию, обработку пропусков, вычисления и объединение данных.
Полезная шпаргалка для тех, кто работает с данными и хочет понимать, как решать одни и те же задачи в Excel, Python и SQL.
👉 @SQLPortal
Логика часто одна и та же, меняется лишь подход к её реализации.
Сравниваем три инструмента на практике: фильтрацию, сортировку, агрегацию, обработку пропусков, вычисления и объединение данных.
Полезная шпаргалка для тех, кто работает с данными и хочет понимать, как решать одни и те же задачи в Excel, Python и SQL.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Поиск узких мест в базе данных
Когда приложение начинает тормозить, первой под подозрение часто попадает база данных. Но высокая задержка на стороне БД не означает, что пора покупать более мощный сервер. Причина может быть в неэффективном запросе, блокировках, исчерпании пула соединений, дисковом I/O или нехватке ресурсов.
Разберёмся, как найти настоящую причину.
1. Найдите симптомы. Проверьте время выполнения запросов (особенно p95), количество активных соединений, число медленных запросов, загрузку CPU и дисковый I/O. Сопоставьте эти показатели с задержками приложения, всплесками трафика и недавними деплоями, чтобы понять, когда началась проблема.
2. Определите узкое место. Выясните, что именно происходит: база медленно выполняет запросы, ожидает снятия блокировок, исчерпала доступные соединения или упёрлась в ограничения ресурсов. Также важно различать время выполнения запроса и время ожидания свободного соединения или завершения другой транзакции.
3. Соберите данные. В PostgreSQL для диагностики пригодятся следующие инструменты:
4. Найдите первопричину.
Медленные запросы: отсутствующие индексы, неэффективные JOIN, полное сканирование таблиц или неудачные планы выполнения.
Блокировки: долгие транзакции или одновременные обновления данных.
Исчерпание соединений: неправильная настройка пулов, простаивающие или утёкшие соединения.
Высокая дисковая нагрузка: интенсивное чтение и запись, большие сканирования или ограничения хранилища.
Нехватка ресурсов: ограничения по CPU, памяти или дисковой ёмкости.
5. Примените подходящее решение. Оптимизируйте запросы и индексы, сокращайте время транзакций, устраняйте блокировки, настраивайте пулы соединений или повышайте производительность хранилища.
Масштабируйте базу только тогда, когда данные подтверждают, что проблема именно в нехватке ресурсов. Увеличение числа соединений или добавление реплик без устранения первопричины может лишь усугубить ситуацию.
6. Убедитесь, что проблема решена. Сравните задержки запросов, использование соединений, загрузку CPU, дисковый I/O и частоту ошибок приложения с показателями до инцидента. Проверьте, сохраняется ли улучшение при типичной нагрузке.
Последовательность диагностики:
Наблюдение → Локализация → Исследование → Диагностика → Исправление → Проверка
Примеры в этом материале основаны на PostgreSQL, но сам подход применим и к MySQL, SQL Server и Oracle. При этом диагностические инструменты и команды будут отличаться.
Не гадайте, в чём проблема с базой данных. Соберите доказательства, устраните причину и измерьте результат.
👉 @SQLPortal
Когда приложение начинает тормозить, первой под подозрение часто попадает база данных. Но высокая задержка на стороне БД не означает, что пора покупать более мощный сервер. Причина может быть в неэффективном запросе, блокировках, исчерпании пула соединений, дисковом I/O или нехватке ресурсов.
Разберёмся, как найти настоящую причину.
1. Найдите симптомы. Проверьте время выполнения запросов (особенно p95), количество активных соединений, число медленных запросов, загрузку CPU и дисковый I/O. Сопоставьте эти показатели с задержками приложения, всплесками трафика и недавними деплоями, чтобы понять, когда началась проблема.
2. Определите узкое место. Выясните, что именно происходит: база медленно выполняет запросы, ожидает снятия блокировок, исчерпала доступные соединения или упёрлась в ограничения ресурсов. Также важно различать время выполнения запроса и время ожидания свободного соединения или завершения другой транзакции.
3. Соберите данные. В PostgreSQL для диагностики пригодятся следующие инструменты:
pg_stat_statements — поиск ресурсоёмких запросов.pg_stat_activity — просмотр активных запросов и сессий, ожидающих выполнения.pg_locks — анализ блокировок.EXPLAIN (ANALYZE, BUFFERS) — изучение плана выполнения запроса и активности буферов. Будьте осторожны: ANALYZE действительно выполняет запрос.4. Найдите первопричину.
Медленные запросы: отсутствующие индексы, неэффективные JOIN, полное сканирование таблиц или неудачные планы выполнения.
Блокировки: долгие транзакции или одновременные обновления данных.
Исчерпание соединений: неправильная настройка пулов, простаивающие или утёкшие соединения.
Высокая дисковая нагрузка: интенсивное чтение и запись, большие сканирования или ограничения хранилища.
Нехватка ресурсов: ограничения по CPU, памяти или дисковой ёмкости.
5. Примените подходящее решение. Оптимизируйте запросы и индексы, сокращайте время транзакций, устраняйте блокировки, настраивайте пулы соединений или повышайте производительность хранилища.
Масштабируйте базу только тогда, когда данные подтверждают, что проблема именно в нехватке ресурсов. Увеличение числа соединений или добавление реплик без устранения первопричины может лишь усугубить ситуацию.
6. Убедитесь, что проблема решена. Сравните задержки запросов, использование соединений, загрузку CPU, дисковый I/O и частоту ошибок приложения с показателями до инцидента. Проверьте, сохраняется ли улучшение при типичной нагрузке.
Последовательность диагностики:
Наблюдение → Локализация → Исследование → Диагностика → Исправление → Проверка
Примеры в этом материале основаны на PostgreSQL, но сам подход применим и к MySQL, SQL Server и Oracle. При этом диагностические инструменты и команды будут отличаться.
Не гадайте, в чём проблема с базой данных. Соберите доказательства, устраните причину и измерьте результат.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
SQL Mindmap: фундамент SQL на одной карте
Изучите основные концепции SQL с помощью наглядной интеллект-карты. В ней собраны ключевые темы для начинающих:
Основы баз данных:
Агрегатные функции:
Подзапросы — запросы внутри других запросов
Практичный способ разобраться в SQL последовательно, увидеть связи между темами и закрепить фундамент для дальнейшего изучения языка.
👉 @SQLPortal
Изучите основные концепции SQL с помощью наглядной интеллект-карты. В ней собраны ключевые темы для начинающих:
Основы баз данных:
SELECT — выборка данныхWHERE — фильтрация записейJOIN — объединение таблицGROUP BY — группировка данныхАгрегатные функции:
COUNT, SUM, AVG, MIN, MAXORDER BY — сортировка результатовПодзапросы — запросы внутри других запросов
Практичный способ разобраться в SQL последовательно, увидеть связи между темами и закрепить фундамент для дальнейшего изучения языка.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Главный совет для разработчиков, которые только начинают работать с Postgres: всегда задавай statement timeout.
👉 @SQLPortal
ALTER DATABASE mydatabase
SET statement_timeout = '60s';
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Redis — возможно, одно из крупнейших предательств в истории Open Source
В 2009 году итальянский разработчик Сальваторе Санфилиппо работал над стартапом, но MySQL оказался слишком медленным. В свободное время он создал собственную in-memory базу данных и бесплатно выложил её в открытый доступ.
Так появился Redis.
Его использовали Twitter, GitHub, Snapchat, Stack Overflow. Практически каждая крупная технологическая компания так или иначе внедрила Redis в свою инфраструктуру.
К 2020 году Сальваторе выгорел после 11 лет практически единоличной поддержки проекта. Он передал его компании Redis Labs и отошёл от разработки.
А затем, в марте 2024 года, Redis Labs изменила лицензию. Redis перестал быть Open Source в привычном понимании. Облачные провайдеры больше не могли свободно предлагать его в качестве управляемого сервиса без коммерческих соглашений с Redis Labs.
Сообщество, которое годами развивало экосистему вокруг проекта, оказалось перед фактом.
Но вместо споров и бесконечных обсуждений разработчики просто сделали форк.
Всего через восемь дней Linux Foundation объявила о создании Valkey — форка Redis с открытой лицензией. Проект поддержали AWS, Google, Oracle, Ericsson и Snap. В течение нескольких недель к инициативе присоединились более 50 компаний.
Вскоре Fedora, Ubuntu, Debian и Arch начали отказываться от Redis в пользу Valkey. AWS перевела миллионы узлов на новую реализацию. Valkey достиг производительности 1,19 млн запросов в секунду — согласно приведённым в публикации данным, это на 230% быстрее версии Redis, от которой отказались.
Затем Redis попыталась вернуть доверие сообщества, снова привлекая Сальваторе к проекту. Он вернулся, выступал на Hacker News в защиту изменения лицензии и пытался восстановить доверие разработчиков.
Но сообщество уже начало двигаться дальше без него. Redis строил доверие Open Source 15 лет. Одно изменение лицензии — и всего за восемь дней потерял значительную часть этого доверия.
В мире Open Source сообщество — это не просто пользователи. Сообщество — главное конкурентное преимущество проекта.
👉 @SQLPortal
В 2009 году итальянский разработчик Сальваторе Санфилиппо работал над стартапом, но MySQL оказался слишком медленным. В свободное время он создал собственную in-memory базу данных и бесплатно выложил её в открытый доступ.
Так появился Redis.
Его использовали Twitter, GitHub, Snapchat, Stack Overflow. Практически каждая крупная технологическая компания так или иначе внедрила Redis в свою инфраструктуру.
К 2020 году Сальваторе выгорел после 11 лет практически единоличной поддержки проекта. Он передал его компании Redis Labs и отошёл от разработки.
А затем, в марте 2024 года, Redis Labs изменила лицензию. Redis перестал быть Open Source в привычном понимании. Облачные провайдеры больше не могли свободно предлагать его в качестве управляемого сервиса без коммерческих соглашений с Redis Labs.
Сообщество, которое годами развивало экосистему вокруг проекта, оказалось перед фактом.
Но вместо споров и бесконечных обсуждений разработчики просто сделали форк.
Всего через восемь дней Linux Foundation объявила о создании Valkey — форка Redis с открытой лицензией. Проект поддержали AWS, Google, Oracle, Ericsson и Snap. В течение нескольких недель к инициативе присоединились более 50 компаний.
Вскоре Fedora, Ubuntu, Debian и Arch начали отказываться от Redis в пользу Valkey. AWS перевела миллионы узлов на новую реализацию. Valkey достиг производительности 1,19 млн запросов в секунду — согласно приведённым в публикации данным, это на 230% быстрее версии Redis, от которой отказались.
Затем Redis попыталась вернуть доверие сообщества, снова привлекая Сальваторе к проекту. Он вернулся, выступал на Hacker News в защиту изменения лицензии и пытался восстановить доверие разработчиков.
Но сообщество уже начало двигаться дальше без него. Redis строил доверие Open Source 15 лет. Одно изменение лицензии — и всего за восемь дней потерял значительную часть этого доверия.
В мире Open Source сообщество — это не просто пользователи. Сообщество — главное конкурентное преимущество проекта.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2