Data Engineering 24/25 (МОВС23) — различия между версиями
(Ссылки на презы, записи) |
(ДЗ2) |
||
Строка 47: | Строка 47: | ||
Предметные области (выберите одну): | Предметные области (выберите одну): | ||
− | + | Продажа автомобилей / Приют для животных / Железнодорожные перевозки / Служба доставки / Организация марафона | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
Требования к базе данных: | Требования к базе данных: | ||
− | + | • Должно быть не менее 4 сущностей (включая технические объекты). | |
− | + | • Должна быть хотя бы одна связь один-ко-многим. | |
− | + | • Должна быть хотя бы одна связь многие-ко-многим. | |
− | + | • Все отношения приведены к третьей нормальной форме (3НФ). | |
Требования к оформлению: | Требования к оформлению: | ||
− | • | + | • ER-диаграмму необходимо составить на app.dbdesigner.net. На проверку нужно прислать ссылку на диаграмму. |
− | • | + | • Также необходимо подготовить SQL-скрипт с DDL для создания таблиц (обратите внимание на ограничения) и заполнения примерами данных. |
'''Часть 2''' | '''Часть 2''' | ||
Строка 73: | Строка 69: | ||
• EFFECTIVE_TO | • EFFECTIVE_TO | ||
− | 2. Используя таблицы ****_SALARY_HIST и de.salary_payments, напишите SQL-скрипт | + | 2. Используя таблицы ****_SALARY_HIST и de.salary_payments, напишите SQL-скрипт создания таблицы ****_SALARY_LOG платежей сотрудникам, где |
− | + | ||
• PAYMENT_DT — дата выплаты | • PAYMENT_DT — дата выплаты | ||
• PERSON | • PERSON | ||
Строка 80: | Строка 75: | ||
• MONTH_PAID — суммарно выплачено в месяце на дату последней выплаты | • MONTH_PAID — суммарно выплачено в месяце на дату последней выплаты | ||
• MONTH_REST — осталось выплатить за месяц | • MONTH_REST — осталось выплатить за месяц | ||
− | |||
− | |||
'''В ответе приложите SQL-скрипты, ссылку на ER-диаграмму''' | '''В ответе приложите SQL-скрипты, ссылку на ER-диаграмму''' | ||
'''Дедлайн: 01.12.2024 23.59''' | '''Дедлайн: 01.12.2024 23.59''' | ||
+ | ------------------------------ | ||
+ | '''ДЗ 2 состоит из 2х частей:''' | ||
+ | |||
+ | '''Часть 1 (5 баллов)''' | ||
+ | |||
+ | На основе таблиц DE.LOG и DE.IP создайте структурированную таблицу посещений, отчет, который показывает, какой браузер является наиболее используемым в каждой области: | ||
+ | XXXX_LOG ( DT DATE, LINK VARCHAR( 50 ), USER_AGENT VARCHAR( 200 ), REGION VARCHAR( 30 )) | ||
+ | XXXX_LOG_REPORT ( REGION VARCHAR( 30 ), BROWSER VARCHAR( 10 )) | ||
+ | |||
+ | '''Часть 2 (5 баллов) ''' | ||
+ | |||
+ | Представьте, вы работаете в медицинской клинике. Результаты анализов поступают в зашифрованном виде в файле medicine.xlsx. На сервере имеются таблицы de.med_an_name и de.med_name для расшифровки показателей. | ||
+ | |||
+ | Требуется: | ||
+ | 1. Легкий режим (максимум 3 балла): | ||
+ | • Получите данные с листа 'easy' в файле medicine.xlsx. | ||
+ | • Найдите пациентов, у которых хотя бы один анализ вне нормы. | ||
+ | • Выведите следующую информацию:Телефон, Имя, Название анализа, Заключение: 'Повышен' или 'Понижен'. | ||
+ | • Сохраните результат в формате .xlsx. | ||
+ | |||
+ | 2. Сложный режим (максимум 5 баллов): | ||
+ | • Получите данные с листа 'hard' в файле medicine.xlsx. | ||
+ | • Найдите пациентов, у которых два и более анализов вне нормы. | ||
+ | • Выведите следующую информацию: Телефон , Имя, Название анализа, Заключение: 'Повышен', 'Понижен' или 'Положительный'. | ||
+ | • Сохраните результат в формате .xlsx. | ||
+ | В обоих режимах сохраните таблицу с расшифрованными значениями и результатами анализа в таблице public.xxxx_med_results в базе данных (помните про 4 буквы в начале, идентифицирующие вашу таблицу). | ||
+ | '''Дедлайн: 11.12.2024 23.59''' | ||
# | # | ||
# | # |
Текущая версия на 01:29, 5 декабря 2024
Содержание
О курсе
Занятия проводятся в Zoom по вторникам в 19:40 - 21:00
Контакты
Канал / чат курса в TG: channel
Преподаватель: 1) Сайков Александр 2) Анатолий Бардуков
Занятие | Тема | Дата | Материалы для самоподготовки к семинарам |
---|---|---|---|
1 Запись | Введение инженер данных | 06.11.2024 | |
2 Запись | PostgreSQL, Схема данных, Slowly Changing Dimensions | 12.11.2024 | |
3 Запись | Агрегатные функции, SCD | 23.11.2024 | |
4 Запись | Регулярные выражения | 26.11.2024 | |
5 Запись | Оптимизация запросов и CDC | 03.12.2024 | |
6 [Запись] | Пример ETL процесса | 10.12.2024 | |
7 [Запись] | Оптимизация производительности | 17.12.2024 |
Записи консультаций
(Если они будут)
Формула оценивания
Запланированы 3 дз (2 дз на 1 неделю, проект на 2 недели), тесты к каждой неделе курса
Оценка = 0.3*проект + 0.5*практические задания + 0.2*тесты
UPD1: начиная со второго домашнего задания, снимаем 1 балл раз в три дня за сдачу после deadline, но ниже 4 не снимаем.
UPD2: начиная с 3 ДЗ снимаем до 1 балла за неаккуратное оформление кода (не следует общеизвестным sql style guides)
Домашние задания
ДЗ 1 состоит из 2х частей:
Часть 1
Создайте структуру базы данных по выбранной вами тематике из списка ниже.
Предметные области (выберите одну):
Продажа автомобилей / Приют для животных / Железнодорожные перевозки / Служба доставки / Организация марафона
Требования к базе данных:
• Должно быть не менее 4 сущностей (включая технические объекты). • Должна быть хотя бы одна связь один-ко-многим. • Должна быть хотя бы одна связь многие-ко-многим. • Все отношения приведены к третьей нормальной форме (3НФ).
Требования к оформлению:
• ER-диаграмму необходимо составить на app.dbdesigner.net. На проверку нужно прислать ссылку на диаграмму. • Также необходимо подготовить SQL-скрипт с DDL для создания таблиц (обратите внимание на ограничения) и заполнения примерами данных.
Часть 2
1. Создайте таблицу ****_SALARY_HIST, где **** — ваш уникальный идентификатор. В таблице должна быть SCD2 версия таблицы de.histgroup с полями:
• PERSON • CLASS • SALARY • EFFECTIVE_FROM • EFFECTIVE_TO
2. Используя таблицы ****_SALARY_HIST и de.salary_payments, напишите SQL-скрипт создания таблицы ****_SALARY_LOG платежей сотрудникам, где
• PAYMENT_DT — дата выплаты • PERSON • PAYMENT • MONTH_PAID — суммарно выплачено в месяце на дату последней выплаты • MONTH_REST — осталось выплатить за месяц
В ответе приложите SQL-скрипты, ссылку на ER-диаграмму
Дедлайн: 01.12.2024 23.59
ДЗ 2 состоит из 2х частей:
Часть 1 (5 баллов)
На основе таблиц DE.LOG и DE.IP создайте структурированную таблицу посещений, отчет, который показывает, какой браузер является наиболее используемым в каждой области: XXXX_LOG ( DT DATE, LINK VARCHAR( 50 ), USER_AGENT VARCHAR( 200 ), REGION VARCHAR( 30 )) XXXX_LOG_REPORT ( REGION VARCHAR( 30 ), BROWSER VARCHAR( 10 ))
Часть 2 (5 баллов)
Представьте, вы работаете в медицинской клинике. Результаты анализов поступают в зашифрованном виде в файле medicine.xlsx. На сервере имеются таблицы de.med_an_name и de.med_name для расшифровки показателей.
Требуется:
1. Легкий режим (максимум 3 балла): • Получите данные с листа 'easy' в файле medicine.xlsx. • Найдите пациентов, у которых хотя бы один анализ вне нормы. • Выведите следующую информацию:Телефон, Имя, Название анализа, Заключение: 'Повышен' или 'Понижен'. • Сохраните результат в формате .xlsx.
2. Сложный режим (максимум 5 баллов): • Получите данные с листа 'hard' в файле medicine.xlsx. • Найдите пациентов, у которых два и более анализов вне нормы. • Выведите следующую информацию: Телефон , Имя, Название анализа, Заключение: 'Повышен', 'Понижен' или 'Положительный'. • Сохраните результат в формате .xlsx.
В обоих режимах сохраните таблицу с расшифрованными значениями и результатами анализа в таблице public.xxxx_med_results в базе данных (помните про 4 буквы в начале, идентифицирующие вашу таблицу).
Дедлайн: 11.12.2024 23.59
Литература
- Kimball, R. and M. Ross. The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling (Second Edition), 2002
- Inmon, W. H., Teradata, and Corporation. (2016). Building the Data Warehouse. John Wiley & Sons.
Redman, T. C. (1996). Data Quality: The Field Guide. Digital Press. - "Медленно меняющееся измерение (SCD)"
- Connelly, J. Asynchronous Data Dependencies in Distributed Systems. ACM Digital Library.
Ousterhout, J. A. (2013). A Philosophy of Software Design. Addison-Wesley.
Martin, R. C. (2017). Clean Architecture: A Craftsman's Guide to Software Structure and Design. Pearson Education.
Fowler, M. (2012). Patterns of Enterprise Application Architecture. Addison-Wesley.
Смит, М., & Дэвидсон, Р. (2015). Разработка эффективных алгоритмов и программ. Вильямс.
Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. - "SQL Performance Explained" by Markus Winand.
"High Performance MySQL" by Baron Schwartz, Peter Zaitsev, Vadim Tkachenko.
"Designing Data-Intensive Applications" by Martin Kleppmann.
"The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling" by Ralph Kimball and Margy Ross.
"Practical ETL Design: Building High-Performance Data Integration Systems" by Jordan Tigani and Christopher Jones.
...
- Jay Kreps - "I Heart Logs: Event Data, Stream Processing, and Data Integration"
Nathan Marz, James Warren - "Big Data: Principles and best practices of scalable real-time data systems"