SQL задачи
رفتن به کانال در Telegram
SQL задачи для подготовки к собеседованию. SQL тесты для проверки знаний. № 7065181110 SQL запросы к конкретной Базе данных с решением и разбором По вопросам рекламы: @anothertechrock
نمایش بیشتر9 957
مشترکین
-424 ساعت
-177 روز
-2630 روز
آرشیو پست ها
9 957
🧾 Чек-лист. Основные этапы создания Корпоративного Хранилища данных
В зависимости от компании, подход к созданию КХД может различаться: одни видят его как монолитную систему, другие — как распределенную архитектуру. Мы под КХД будем понимать как ядровую БД, так и все дополнительные инструменты для переливки информации, базы данных, BI, утилиты для мониторинга и алертинга и многое другое.
1. Определение целей и задач
Рекомендуется не отталкиваться от технических возможностей, а начинать с бизнес-контекста.
- Четко сформулируйте цели хранилища (аналитика, отчетность, оптимизация процессов и т.д.)
- Определите ключевых заинтересованных лиц (stakeholders) и их ожидания
- Изучите нюансы бизнеса
2. Анализ источников данных
В зависимости от свойств источника происходит различная работа по “вытаскиванию” необходимой информации. Активный/пассивный, имеющий дубли и вложенность хранения, типизация и эволюция схемы, а также многое другое.
- Проведите инвентаризацию всех источников данных (CRM, ERP, веб-приложения, файлы, БД, API и т.д.)
- Определите форматы данных (структурированные, неструктурированные)
- Выясните объем и частоту обновления данных и т.д.
3. Определение архитектуры хранилища
Самый сложный и важный этап.
- Выберите подход (ETL или ELT)
- Решите, будет ли хранилище on-premise, облачным или гибридным
- Определите слои хранилища: staging (сырые данные), ODS (операционные данные), DWH (исторические данные)
- Обозначьте, где будут содержаться витрины данных и “сырая” информация
- Уточните, как будет предоставляться информация конечным пользователям и т.д.
4. Выбор технологий
- Определите, нужны ли вам БД отдельно для OLAP и OLTP?
- Выберите СУБД (Greenplum, Snowflake, PosgtreSQL, ClickHouse и т.д.)
- Подберите инструменты интеграции данных (Apache NiFi, Dagster, Airflow)
- Подумайте о Вl-инструментах (Tableau, Superset, Looker)
- А так же не забывайте об инструментах мониторинга, бекапирования и алертинга
5. Проектирование модели данных
- Определите уровень нормализации данных (3NF, звездная или снежинка — или более продвинутые, Data Vault)
- Создайте ЕR-диаграммы и схемы таблиц
- Проработайте “узкие места” и слепые зоны, подумайте о связи модели данных и пользовательских ролей и доступов
6. Реализация ETL/ELT процессов
- Настройте коннекторы к источникам данных
- Создайте пайплайны для извлечения, трансформации и загрузки данных
- Автоматизируйте обновление данных
7. Управление качеством данных
- Внедрите процессы проверки данных (data validation)
- Реализуйте контроль на дубликаты, пропуски и несоответствия форматов
8. Обеспечение безопасности
- Настройте роли и права доступа. Подумайте о внедрении Active Directory для унифицирования доступа ко всем текущим инструментам
- Реализуйте шифрование данных (в покое и в процессе передачи)
- Подготовьте план аварийного восстановления
9. Тестирование и валидация
- Проведите нагрузочное тестирование (stress test)
- Убедитесь в корректности обработки данных на всех этапах
- Проверьте интеграцию с BI и всеми другими инструментами
10. Документация и обучение
- Подготовьте документацию: схемы данных, описания ETL-процессов, инструкции для пользователей
- Изучите представленные на рынке инструменты для автоматизации сбора документации
- Проведите обучение сотрудников, которые будут работать с хранилищем
11. Запуск и эксплуатация
Убедитесь, что у вас настроены как минимум области DEV, Stage, Prom
Подготовьтесь к автоматизированной раскатке в production
Настройте мониторинг производительности
Определите процессы для обновления, расширения и поддержки хранилища
12. Постоянное улучшение
- Анализируйте обратную связь от пользователей
- Оптимизируйте процессы обработки данных
- Добавляйте новые источники данных по мере необходимости
Для системного обучения рекомендуем профессиональный курс по DWH от Otus, где вы получите хорошую базу и практику.
➡️ Регистрируйтесь прямо сейчас, чтобы воспользоваться 10% скидкой на курс и учиться по 🏖 летним ценам! Условия актуальны только до 31.07.2025: https://vk.cc/cNXxOB
Реклама. ООО «Отус онлайн-образование», ОГРН 11777466185769 957
Задачка по нашей базе данных, которая находится в шапке канала.
Код генерации базы данных и INSERT данных по ссылке ТУТ.
ВОПРОС: Какой запрос вернёт строки из customer, где в фамилии
(last_name) присутствуют цифры?
Ответ под спойлером, но если хотите сперва проверить свою догадку, следующим постом опубликуем тест с вариантами ответов.
Правильный ответ ⤵️
SELECT * FROM customer WHERE REGEXP_LIKE(last_name, '[0-9]');
Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
9 957
Возможно ли использование одновременно двух агрегирующих функций? Пример:
SELECT MIN(price), MAX(price) FROM Orders;
9 957
📕 Практические кейсы использования ClickHouse для разработчиков, администраторов, специалистов по базам данных, Data engineers, Backend и FullStack-разработчиков
На открытом уроке 24 июля в 20:00 мск мы погрузимся в тонкости работы с ClickHouse:
📗 На вебинаре разберём:
1. Основные принципы работы, архитектура и преимущества использования ClickHouse;
2. Реальные кейсы использования ClickHouse для анализа веб-логов, IoT данных и финансовых транзакций;
📘 В результате на практике разберетесь в настройке и использовании ClickHouse для обработки больших объемов данных.
👉 Регистрация и подробности о курсе NoSQL: https://vk.cc/cNN2VE
Все участники открытого урока получат скидку на курс "NoSQL"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
9 957
Что вернёт запрос?
WITH ranked AS (
SELECT price,
ROW_NUMBER() OVER (ORDER BY price) AS rn,
COUNT(*) OVER () AS cnt
FROM product
)
SELECT AVG(price)
FROM ranked
WHERE rn IN (FLOOR((cnt + 1) / 2), CEIL((cnt + 1) / 2));
Схема БД и код для генерации данных находятся в шапке канала.
Запрос не выдает число или конкретную категорию. Просто опишите результат своими словами в комментариях. А для тех, кто предпочитает тесты, опубликуем тест с вариантами ответа в следующем посте.
Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions9 957
Задачка по нашей базе данных, которая находится в шапке канала.
Код генерации базы данных и INSERT данных по ссылке ТУТ.
ВОПРОС: Какой запрос вернёт три самых дорогих товара из таблицы product?
Ответ под спойлером, но если хотите сперва проверить свою догадку, следующим постом опубликуем тест с вариантами ответов.
Правильный ответ 👇
SELECT * FROM product ORDER BY price DESC LIMIT 3;
Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
9 957
📊15 июля в 20:00 МСК OTUS проведёт открытый вебинар по ClickHouse и Apache Superset. Вы научитесь строить дашборды на больших данных и интегрировать их с одним из самых быстрых аналитических СУБД на рынке.
🧑🏻💻 На вебинаре мы подробно разберём, как работают ClickHouse и Superset, их возможности для аналитики и визуализации данных, а также как подключать их для решения реальных задач. Всё будет сопровождаться живыми примерами настройки и создания дашбордов. Вы также получите лучшие практики для обработки больших объёмов данных.
Если вы работаете с большими данными, создаёте аналитические отчёты или проектируете архитектуру для BI-решений, этот урок будет полезен именно вам.
➡️ Встречаемся в преддверии старта курса «Data Warehouse Analyst». Все участники вебинара получат скидку на обучение. Пройдите вступительное тестирование и зарегистрируйтесь прямо сейчас: https://vk.cc/cNpkO7
Реклама. ООО «Отус онлайн-образование», ОГРН 11777466185769 957
Что покажет следующий запрос?
SELECT seller_id, COUNT(*) FROM Orders where seller_id IN (2,4,6) GROUP BY seller_id ;
9 957
📕 Архитектура и дизайн систем на основе NoSQL в облаках для разработчиков, администраторов, специалистов по базам данных, Data engineers, Backend и FullStack-разработчиков
На открытом уроке 10 июля в 20:00 мск мы погрузимся в тонкости работы с системами на основе NoSQL в облачных средах:
📗 На вебинаре разберём:
1. Основы NoSQL и его применение в облачных средах;
2. Реальные примеры и кейсы использования NoSQL в облаках;
📘 В результате на практике разберетесь в настройке и развертывании NoSQL баз данных в популярных облачных платформах (Сберклауд, Яндекс Облако, AWS, Google Cloud, Azure) и освоите применение основных операции с данными, масштабирования и управления производительностью NoSQL.
👉 Регистрация и подробности о курсе NoSQL: https://vk.cc/cNpk2M
Все участники открытого урока получат скидку на курс "NoSQL"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
9 957
Задачка по нашей базе данных, которую можно найти в шапке канала.
Код генерации базы данных и INSERT данных по ссылке ТУТ.
ВОПРОС: Какой столбец нужно указать в PARTITION BY, чтобы получить первый заказ каждого пользователя?
WITH ranked_orders AS (
SELECT
*
, ROW_NUMBER() OVER (PARTITION BY _____ ORDER BY order_date DESC)
AS rn
FROM order_table
)
SELECT * FROM ranked_orders WHERE rn = 1;
Ответ под спойлером, но если хотите сперва проверить свою догадку, следующим постом опубликуем тест с вариантами ответов.
Правильный ответ ⤵️
customer_id
Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions9 957
⚡️Пошаговый план: как стать аналитиком данных в 2025
Хотите попасть в аналитику, но теряетесь в море информации и не понимаете, какие навыки действительно важны? Боитесь, что без опыта вас не возьмут на работу? И да, ещё один популярный вопрос — а что, если мне 30/40/50+ лет?
Андрон Алексанян — эксперт по аналитике с 8-летним опытом и по совместительству CEO Simulative — покажет рабочие схемы и чёткий план, как устроиться в аналитику быстрее, даже если у вас нет опыта
Что будет на вебинаре?
🟠 Разберёте полный роадмап: что учить, в каком порядке, до какого уровня;
🟠 Лайфхаки трудоустройства:
— покажут реальные примеры, как оформить резюме и портфолио, чтобы привлекать внимание;
— обсудите, какие отклики работают, а какие сразу отправляют в корзину;
— изнанка найма: инсайдерский взгляд на процессы отбора
🟠 Практические техники для новичков: разберёте, как компенсировать недостаток опыта и быстро закрывать пробелы в знаниях
🕗 Важно досмотреть вебинар до конца, чтобы получить бонус от Simulative, который поможет бустануть карьеру
😶Зарегистрироваться на бесплатный вебинар
9 957
Выберите пример корректно составленного запроса с использованием UNION
9 957
🎓 1 июля в 20:00 МСК OTUS проведёт открытый вебинар «Архитектура DWH по рецепту: метод борща в действии». Это необычный формат, где этапы приготовления блюда помогают понять логику построения хранилища данных.
🎯 На уроке разберём, как «подготовка ингредиентов» (сбор и очистка данных) отражается в core-слое DWH, а «подача блюда» (аналитический слой) превращается в понятные бизнес-отчёты. Вы увидите реальные примеры проектирования масштабируемой аналитической платформы и поймёте, какие компетенции нужны команде.
Участники смогут сразу применять принципы: иерархия слоёв, оптимизация storage-запросов и построение BI-дашбордов, которые будут понятны конечному пользователю. Вы узнаете, как избежать «переваривания» данных и сделать архитектуру отказоустойчивой.
➡️ Этот урок проходит в преддверии старта курса «Data Warehouse Analyst». Все участники получат скидку на обучение.
Регистрируйтесь прямо сейчас, чтобы не пропустить: https://vk.cc/cNihQr
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
9 957
🚨 Не пропустите 02 июля в 20:00 бесплатный вебинар “SQL: Оконные функции — когда GROUP BY уже не хватает” от курса “SQL для аналитиков и разработчиков”.
На вебинаре обсудим:
✅ Что такое оконные функции и чем они отличаются от агрегатных.
✅ Как с их помощью выполнять расчёты без группировки.
✅ Практические примеры: ранжирование, сравнение с предыдущей строкой, накопительные суммы и т.д.
✅ Что такое PARTITION BY и ORDER BY в контексте окон.
✅ Как оконные функции помогают упростить сложные подзапросы и JOIN-ы.
После вебинара вы сможете:
— Уверенно использовать оконные функции в повседневной работе.
— Упрощать логику отчётов и аналитических расчётов.
— Заменять сложные конструкции простыми и эффективными оконными выражениями.
— Разрабатывать запросы, в которых используются ROW_NUMBER(), LAG(), LEAD(), SUM() OVER() и др.
⏰ Оставляйте заявку на бесплатный урок и получите запись прошлого вебинара: https://vk.cc/cNdrqD
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
