Ловите подборку квизов по SQL💻
Основы SQL:
Тест на знание основ SQL
Тест по основам SQL
Тест на знание SQL:
Часть 1
Часть 2
Часть 3
Тест по базовым командам SQL:
Основы SQL: базовые команды
Основы SQL: тест на знание базовых команд
Тест по запросам и операторам SQL
Тест на глубину понимания SQL
Тест по SQL: проверьте свои знания и навыки
Надеемся на отличные результаты.💪
Хорошего дня всем!😉
#подборка #тесты
Основы SQL:
Тест на знание основ SQL
Тест по основам SQL
Тест на знание SQL:
Часть 1
Часть 2
Часть 3
Тест по базовым командам SQL:
Основы SQL: базовые команды
Основы SQL: тест на знание базовых команд
Тест по запросам и операторам SQL
Тест на глубину понимания SQL
Тест по SQL: проверьте свои знания и навыки
Надеемся на отличные результаты.💪
Хорошего дня всем!😉
#подборка #тесты
QaRocks
Тест на знание основ SQL
Умение работать с базами данных - один из необходимых навыков для тестировщика. Давайте проверим, насколько хорошо вы знаете основы SQL.
❤3
Оптимизация запросов в PostgreSQL
Автор: Генриэтта Домбровская
Год издания: 2022
#postgresql #ru
Скачать книгу ⬇️
Автор: Генриэтта Домбровская
Год издания: 2022
#postgresql #ru
Скачать книгу ⬇️
Большой тест по SQL для тестировщиков из 44 вопроса - https://qarocks.ru/test_post/big-sql-quiz/
Проходите и пишите, у кого 44 из 44:)
P.S если найдете ошибки в ответах, присылайте - попросим исправить)
Проходите и пишите, у кого 44 из 44:)
P.S если найдете ошибки в ответах, присылайте - попросим исправить)
👍1
🚗 Как найти кратчайший маршрут с помощью Apache Spark и GraphFrames
Разбираем кейс на реальных данных из OpenStreetMap — ищем оптимальный маршрут
🔍 Что делаем
1. Загружаем граф дорог города с помощью OSMnx
2. Сохраняем вершины и ребра с координатами, скоростями и геометрией
3. Загружаем всё в Spark
4. Находим кратчайший путь с помощью GraphFrames
📍 1. Скачиваем карту и строим граф улиц
📁 2. Сохраняем геометрическое описание города в формате GeoJSON и данные о вершинах и рёбрах в формате CSV
3. Используем библиотеку GraphFrames для обработки графов на Apache Spark
🧭 4. Ищем кратчайший путь по времени
например, от Измайлово до ЖК Зиларт
💡 Результат: 40 шагов от точки A до точки B.
Такой подход легко масштабируется на миллионы маршрутов. Используйте Spark и GraphFrames для построения логистических моделей, маршрутизации и городского планирования.
🚀 Хотите прокачаться в работе с Big Data? Изучайте Spark! Записывайтесь на курс Spark Developer от OTUS — учитесь на реальных данных и продвинутых кейсах: https://vk.cc/cMT2kE
Разбираем кейс на реальных данных из OpenStreetMap — ищем оптимальный маршрут
🔍 Что делаем
1. Загружаем граф дорог города с помощью OSMnx
2. Сохраняем вершины и ребра с координатами, скоростями и геометрией
3. Загружаем всё в Spark
4. Находим кратчайший путь с помощью GraphFrames
📍 1. Скачиваем карту и строим граф улиц
import osmnx as ox
# Загрузка данных о дорогах Москвы
G = ox.graph.graph_from_place("Moscow", network_type="drive")
# Отображение дорог на карте
moscow_gdf = ox.geocoder.geocode_to_gdf("Moscow")
fig, ax = ox.plot.plot_graph(G, show=False, close=False, bgcolor="#111111", edge_color="#ffcb00", edge_linewidth=0.3, node_size=0)
moscow_gdf.plot(ax=ax, fc="#444444", ec=None, lw=1, alpha=1, zorder=-1)
# Настройка границ карты
margin = 0.02
west, south, east, north = moscow_gdf.union_all().bounds
margin_ns = (north - south) * margin
margin_ew = (east - west) * margin
ax.set_ylim((south - margin_ns, north + margin_ns))
ax.set_xlim((west - margin_ew, east + margin_ew))
plt.show()
📁 2. Сохраняем геометрическое описание города в формате GeoJSON и данные о вершинах и рёбрах в формате CSV
with open('Moscow.geojson', 'w') as file:
file.write(moscow_gdf.to_json())
nodes = G.nodes(data=True)
with open('nodes.csv', 'a') as file:
file.write("id,lat,lonn")
for (node, data) in nodes:
file.write("%d,%f,%fn" % (node, data.get("y"), data.get("x")))
edges = G.edges(data=True)
def decode_maxspeed(maxspeed):
match maxspeed:
case str():
match maxspeed.lower():
case "ru:urban": return 60
case "ru:rural": return 90
case "ru:living_street": return 20
case "ru:motorway": return 110
case _: return int(maxspeed)
case list(): return min(list(map(decode_maxspeed, maxspeed)))
case _: return maxspeed
with open('edges.csv', 'a') as file:
file.write("src,dst,maxspeed,length,geometryn")
for (src, dst, data) in edges:
maxspeed = decode_maxspeed(data.get("maxspeed", 999))
length = float(data.get("length"))
geometry = shapely.wkt.dumps(data.get("geometry"))
file.write("%d,%d,%d,%f,%sn" % (src, dst, maxspeed, length, geometry))
3. Используем библиотеку GraphFrames для обработки графов на Apache Spark
from pyspark.sql import SparkSession
spark = SparkSession.builder
.config("spark.jars.packages", "graphframes:graphframes:0.8.4-spark3.5-s_2.12")
.master("local[*]")
.appName("GraphFrames")
.getOrCreate()
nodes = spark.read.options(header=True).csv("nodes.csv")
edges = spark.read.options(header=True).csv("edges.csv")
# Вычисление времени прохождения рёбер
edgesT = edges.withColumn("time", edges["length"] / edges["maxspeed"])
# Построение графа
from graphframes import *
g = GraphFrame(nodes, edgesT)
🧭 4. Ищем кратчайший путь по времени
например, от Измайлово до ЖК Зиларт
src = "257601812"
dst = "5840593081"
paths = g.shortestPaths(landmarks=[dst])
paths.filter(F.col("id") == src).show(truncate=False)
💡 Результат: 40 шагов от точки A до точки B.
Такой подход легко масштабируется на миллионы маршрутов. Используйте Spark и GraphFrames для построения логистических моделей, маршрутизации и городского планирования.
🚀 Хотите прокачаться в работе с Big Data? Изучайте Spark! Записывайтесь на курс Spark Developer от OTUS — учитесь на реальных данных и продвинутых кейсах: https://vk.cc/cMT2kE
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👎1
❔ Вопрос с собеседования
Как работает SQL-триггер?
Ответ:Когда происходит событие, СУБД автоматически вызывает триггер, который затем выполняет набор операторов SQL, определенных в триггере. Триггеры определяются для каждой таблицы и создаются с помощью оператора CREATE TRIGGER. Они могут запускаться до или после наступления события и выполняться один раз для каждой затронутой строки либо один раз для каждого оператора.
➡️ SQL Pro | #собеседование
Как работает SQL-триггер?
Ответ:
➡️ SQL Pro | #собеседование
👍2❤1🥱1
📊15 июля в 20:00 МСК OTUS проведёт открытый вебинар по ClickHouse и Apache Superset. Вы научитесь строить дашборды на больших данных и интегрировать их с одним из самых быстрых аналитических СУБД на рынке.
🧑🏻💻 На вебинаре мы подробно разберём, как работают ClickHouse и Superset, их возможности для аналитики и визуализации данных, а также как подключать их для решения реальных задач. Всё будет сопровождаться живыми примерами настройки и создания дашбордов. Вы также получите лучшие практики для обработки больших объёмов данных.
Если вы работаете с большими данными, создаёте аналитические отчёты или проектируете архитектуру для BI-решений, этот урок будет полезен именно вам.
➡️ Встречаемся в преддверии старта курса «Data Warehouse Analyst». Все участники вебинара получат скидку на обучение. Пройдите вступительное тестирование и зарегистрируйтесь прямо сейчас: https://vk.cc/cNGCjU
🧑🏻💻 На вебинаре мы подробно разберём, как работают ClickHouse и Superset, их возможности для аналитики и визуализации данных, а также как подключать их для решения реальных задач. Всё будет сопровождаться живыми примерами настройки и создания дашбордов. Вы также получите лучшие практики для обработки больших объёмов данных.
Если вы работаете с большими данными, создаёте аналитические отчёты или проектируете архитектуру для BI-решений, этот урок будет полезен именно вам.
➡️ Встречаемся в преддверии старта курса «Data Warehouse Analyst». Все участники вебинара получат скидку на обучение. Пройдите вступительное тестирование и зарегистрируйтесь прямо сейчас: https://vk.cc/cNGCjU
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Какой логической операции соответствует условная операция IN?
Anonymous Quiz
18%
OR и AND
7%
!AND
47%
OR
23%
AND
6%
Узнать ответ
🧾 Чек-лист. Основные этапы создания Корпоративного Хранилища данных
В зависимости от компании, подход к созданию КХД может различаться: одни видят его как монолитную систему, другие — как распределенную архитектуру. Мы под КХД будем понимать как ядровую БД, так и все дополнительные инструменты для переливки информации, базы данных, 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/cNXxCx
В зависимости от компании, подход к созданию КХД может различаться: одни видят его как монолитную систему, другие — как распределенную архитектуру. Мы под КХД будем понимать как ядровую БД, так и все дополнительные инструменты для переливки информации, базы данных, 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/cNXxCx
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
❤2👍2
Какой из следующих запросов отобразит всех студентов, у которых вторая буква в имени - «i»?
Anonymous Quiz
8%
select first_name from students where first_name like ‘%i_’;
17%
select first_name from students where first_name like ‘%i%’;
68%
select first_name from students where first_name like ‘_i%’;
6%
select first_name from students where first_name like ‘_i_’;
1%
Посмотреть ответ
Микросервисы захватили мир → а вы готовы управлять их общением?
Пока одни разработчики борются с падающими сообщениями и блокировками в очередях, другие элегантно строят отказоустойчивые распределённые системы. Разница — в глубоком понимании RabbitMQ.
Большинство программистов знают брокеры сообщений поверхностно: отправил → получил → «работает, не трогай». А когда система начинает расти, начинаются проблемы: потерянные сообщения, узкие места в производительности, сложности с масштабированием.
Курс «RabbitMQ для разработчиков и администраторов» — это advanced-погружение для тех, кто хочет стать экспертом. Три месяца практики под руководством профессионалов, и вы научитесь не просто «подключать очереди», а проектировать архитектуру, которая выдержит любые нагрузки.
Что получите:
→ Навыки разработки сложных правил маршрутизации
→ Умение планировать и масштабировать RabbitMQ-кластеры
→ Опыт настройки «Infrastructure as a code»
→ Знания по устранению узких мест и оптимизации производительности
Владение RabbitMQ — это билет в мир высокооплачиваемых позиций архитектора и senior-разработчика микросервисов.
Старт уже 31 июля, но сначала — вступительное тестирование. Скидка 10% действует только до конца месяца.
Проверьте свой уровень и получите доступ к advanced-программе: https://vk.cc/cOahd9
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Пока одни разработчики борются с падающими сообщениями и блокировками в очередях, другие элегантно строят отказоустойчивые распределённые системы. Разница — в глубоком понимании RabbitMQ.
Большинство программистов знают брокеры сообщений поверхностно: отправил → получил → «работает, не трогай». А когда система начинает расти, начинаются проблемы: потерянные сообщения, узкие места в производительности, сложности с масштабированием.
Курс «RabbitMQ для разработчиков и администраторов» — это advanced-погружение для тех, кто хочет стать экспертом. Три месяца практики под руководством профессионалов, и вы научитесь не просто «подключать очереди», а проектировать архитектуру, которая выдержит любые нагрузки.
Что получите:
→ Навыки разработки сложных правил маршрутизации
→ Умение планировать и масштабировать RabbitMQ-кластеры
→ Опыт настройки «Infrastructure as a code»
→ Знания по устранению узких мест и оптимизации производительности
Владение RabbitMQ — это билет в мир высокооплачиваемых позиций архитектора и senior-разработчика микросервисов.
Старт уже 31 июля, но сначала — вступительное тестирование. Скидка 10% действует только до конца месяца.
Проверьте свой уровень и получите доступ к advanced-программе: https://vk.cc/cOahd9
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
С помощью какого update-запроса можно обновить значения более чем одной колонки?
Anonymous Quiz
6%
Одним запросом можно обновить не более одной колонки
7%
UPDATE table_name SET col1_name = 'col1val' SET col2_name = 'col2val';
11%
UPDATE table_name SET col1_name = 'col1val' AND SET col2_name = 'col2val';
70%
UPDATE table_name SET col1_name = 'col1val', col2_name = 'col2val';
7%
Узнать ответ