ІНЖЕНЕРІЯ ДАНИХ
Силабус освітнього компонента
Реквізити навчальної дисципліни
Рівень вищої освіти | Другий (магістерський) |
Галузь знань | 12 Інформаційні технології |
Спеціальність | 126 Інформаційні системи та технології |
Освітня програма | Інтегровані інформаційні системи |
Статус дисципліни | Обов’язкова (нормативна) |
Форма навчання | очна(денна)/заочна/дистанційна |
Рік підготовки, семестр | 1 курс, осінній семестр |
Обсяг дисципліни | 5 кредитів ECTS /150 годин (18 годин лекцій, 36 годин комп'ютерний практикум, 96 годин – СРС) |
Семестровий контроль/ контрольні заходи | Залік, МКР, захист комп'ютерного практикуму |
Розклад занять | 1 лекція (2 години) 1 раз на два тижні; 1 комп'ютерний практикум (2 години) 1 раз на тиждень |
Мова викладання | Українська |
Інформація про керівника курсу / викладачів | лектор к.т.н., доцент Писаренко Андрій Володимирович Telegram: https://t.me/dataeng2024; комп'ютерний практикум асистент Головатенко Ілля Анатолійович |
| Розміщення курсу | https://www.sikorsky-distance.org/g-suite-for-education/%D1%84%D1%96%D0%BE%D1%82/|
Програма навчальної дисципліни
1. Опис навчальної дисципліни, її мета, предмет вивчання та результати навчання
Відповідно до стандарту вищої освіти зі спеціальності 126 Інформаційні системи та технології галузі знань 12 Інформаційні технології для другого (магістерського) рівня вищої освіти та освітньо-професійної програми другого (магістерського) рівня вищої освіти дисципліна «Інженерія даних» формує (ЗК01) здатність до до абстрактного мислення, аналізу та синтезу, (ФК04) здатність розробляти математичні, інформаційні та комп’ютерні моделі об’єктів і процесів інформатизації, (ФК05) здатність використовувати сучасні технології аналізу даних для оптимізації процесів в інформаційних системах, (ФК08) здатність перетворювати, очищувати, профілювати та агрегувати великі набори даних, управляти даними, будувати та вилучати спеціальні запити до даних та (ПРН09) розробляти і використовувати сховища даних, здійснювати аналіз даних для підтримки прийняття рішень.
Дисципліна "Інженерія даних" надає студентам повне розуміння принципів, методів та інструментів інженерії даних. Курс призначений для того, щоб оволодіти компетентностями для управління великомасштабними системами обробки даних, проєктування ефективних конвеєрів даних та оптимізації зберігання та пошуку даних. Завдяки поєднанню лекцій і лабораторних робіт студенти отримають практичний досвід побудови надійної інфраструктури даних і освоєння основних концепцій інженерії даних.
Предмет навчальної дисципліни
Предмет - методи та принципи моделювання даних, інтеграції даних, процеси ETL (Extract, Transform, Load), основи великих даних, обробка даних у реальному часі, якість даних та управління, безпека та конфіденційність даних і масштабовані рішення для зберігання даних.
Мета навчальної дисципліни
Метою є надання студентам передових знань і практичних навичок з інженерії даних, що дозволить їм ефективно проектувати, впроваджувати та керувати системами та інфраструктурою даних, які підтримують обробку, зберігання та аналіз великомасштабних і різноманітних наборів даних.
Завдання навчальної дисципліни
Завдання вивчення дисципліни - підготувати студентів до кар’єри в галузі обробки даних, де вони можуть сприяти розробленню керованих даними рішень і приймати обґрунтовані рішення на основі високоякісних і добре організованих даних.
2. Пререквізити та постреквізити дисципліни
Пререквізити
Для успішного засвоєння дисципліни студент повинен володіти освітніми компонентами "Програмування. Частина 1. Основи програмування", "Програмування. Частина 2. Структури даних та алгоритми", Бази даних", "Теорія ймовірності та математична статистика", "Технології машинного навчання".
Постреквізити
Компетенції, знання та уміння, одержані в процесі вивчення освітнього компонента є необхідними для подальших освітніх компонентів "Практика" та "Виконання магістерської дисертації"
3. Зміст навчальної дисципліни
Розділ 1. Основи інженерії даних Тема 1.1. Вступ до інженерії даних Тема 1.2. Моделювання та проєктування даних Тема 1.3. Інтеграція та обробка даних
Розділ 2. Робота зі сховищами даних Тема 2.1. Сховища даних Тема 2.2. Озера даних та конвеєри
Розділ 3. Управління та безпека даних Тема 3.1. Якість даних та управління Тема 3.2. Безпека та конфіденційність
Розділ 4. Практичне застосування інженерії даних Тема 4.1. Візуалізація даних
4. Навчальні матеріали та ресурси
Базова література
- Дистанційний курс «Інженерія даних» для магістрів 1-го курсу спеціальності 126 «Інформаційні системи та технології».
- Wijaya, A. Data Engineering with Google Cloud Platform. Packt, 2022.
- Chan, Yupo, John Talburt, and Terry M. Talley, eds. Data engineering: mining, information and intelligence. Vol. 132. Springer Science & Business Media, 2009.
- Reis, Joe, and Matt Housley. Fundamentals of Data Engineering. " O'Reilly Media, Inc.", 2022.
- Silverston, Len. The data model resource book, Volume 1: A library of universal data models for all enterprises. John Wiley & Sons, 2011.
- Hernandez, Michael James. Database design for mere mortals: a hands-on guide to relational database design. Pearson Education, 2013.
- Genesereth, Michael. Data integration: The relational logic approach. Springer Nature, 2022.
Допоміжна література
- Giordano, Anthony David. Data integration blueprint and modeling: techniques for a scalable and sustainable architecture. Pearson Education, 2010.
- Holmes, Dawn E. Big data: a very short introduction. Oxford University Press, 2017.
- Krishnan, Krish. Data warehousing in the age of big data. Newnes, 2013.
- Inmon, William H. Building the data warehouse. John wiley & sons, 2005.
5. Методика опанування навчальної дисципліни (освітнього компонента)
Лекційні заняття
№ з/п | Назва теми лекції та перелік основних питань | ||
---|---|---|---|
1 | Лекція 1: Вступ до інженерії даних | ||
Основні питання: 1) Визначення інженерії даних; 2) Роль інженерів даних; 3) Основні обов'язки інженерів даних; 4) Важливість інженерії даних; 5) Життєвий цикл інженерії даних; 6) Ключові навички для інженерів з обробки даних; 7) Кар'єрні можливості в галузі інженерії даних | |||
2 | Лекція 2: Моделювання даних та проєктування баз даних | ||
Основні питання: 1) Визначення моделювання даних; 2) Важливість моделювання даних; 3) Концептуальна модель даних; 4) Логічна модель даних; 5) Фізична модель даних; 6) Методи моделювання даних; 7) Моделювання сутність-зв'язок (ER-modeling); 8) Розмірне моделювання; 9) Моделювання сховищ даних (Data Vault Modeling); 10) Найкращі практики моделювання даних; 11) Принципи проєктування баз даних; 12) Міркування щодо проєктування баз даних | |||
3 | Лекція 3: Інтеграція даних та ETL | ||
Основні питання: 1) Визначення інтеграції даних; 2) Важливість інтеграції даних; 3) Вступ до процесу ETL; 4) Компоненти ETL; 5) Методи ETL; 6) Пакетна обробка в ETL; 7) Використання Apache Hadoop MapReduce для великомасштабної обробки даних; 8) Використання Apache Spark для великомасштабної обробки даних; 9) Інкрементне завантаження; 10) Потокове завантаження в реальному часі; 11) Проблеми інтеграції даних; 12) Інструменти інтеграції даних | |||
4 | Лекція 4: Обробка даних у реальному часі | ||
Основні питання: 1) Вступ до обробки даних у реальному часі; 2) Фреймворки потокової обробки; 3) Побудова конвеєрів даних у реальному часі | |||
5 | Лекція 5: Сховища даних та розмірне моделювання | ||
Основні питання: 1) Визначення сховищ даних; 2) Призначення сховищ даних; 3) Архітектура сховищ даних; 4) Сховища даних vs операційні бази даних; 5) Вступ до розмірного моделювання; 6) Ключові поняття в розмірному моделюванні; 7) Схема «зірка»; 8) Схема «сніжинка»; 9) Повільно змінні розмірності; 10) Безфактологічні таблиці фактів (Factless Fact Tables); 11) Агреговані дані та матеріалізовані подання (Aggregates and Materialized Views); 12) ETL у сховищах даних; 13) Якість даних та управління в сховищах даних | |||
6 | Лекція 6: Озера даних та конвеєри даних | ||
Основні питання: 1) Знайомство з озерами даних; 2) Створення масштабованих і ефективних конвеєрів даних; 3) Приймання та зберігання даних в озерах даних | 7 | Лекція 7: Якість даних та управління нею | |
Основні питання: 1) Методи забезпечення якості даних; 2) Принципи управління даними та найкращі практики; 3) Впровадження перевірок якості даних | |||
8 | Лекція 8: Безпека та конфіденційність даних | ||
Основні питання: 1) Огляд правил безпеки даних і конфіденційності; 2) Методи захисту інфраструктури даних; 3) Методи анонімізації та шифрування | |||
9 | Лекція 9: Візуалізація даних і звітність | ||
Основні питання: 1) Принципи та засоби візуалізації даних; 2) Створення інтерактивних панелей; 3) звітування та оповідання даних |
Комп'ютерні практикуми
№ з/п | Перелік комп'ютерних практикумів |
---|---|
1 | Комп'ютерний практикум 1. Налаштування локального середовища для Data Engineering |
Метою є налаштування локального розробницького середовища, що включає Docker, Python, та Jupyter Notebooks. Це дозволить виконувати задачі Data Engineering на комп'ютері. | |
2 | Комп'ютерний практикум 2. Витягування даних з публічного API |
Метою є навчитися витягувати реальні дані за допомогою публічного API та зберегти їх у реляційну базу даних для подальших ETL-операцій. | |
3 | Комп'ютерний практикум 3. ETL використовуючи Pandas |
Метою є навчитися використовувати бібліотеку Pandas для трансформації даних із CSV файлу, включаючи очищення, агрегування та підготовку даних для аналізу. | |
4 | Комп'ютерний практикум 4. Завантаження даних у локальну базу даних |
Метою є навчитись завантажувати перетворені дані до локальної бази даних PostgreSQL за допомогою SQLAlchemy. Опанування процесів завантаження даних в реляційну базу даних. | |
5 | Комп'ютерний практикум 5. Налаштування Apache Spark локально |
Метою є навчитися налаштовувати локальне середовище Apache Spark за допомогою офіційного Docker образу Apache Spark. Вивчення використання цього образу для запуску Spark, виконання базових завдань зі Spark за допомогою PySpark, та інтеграція з Jupyter Notebook. | |
6 | Комп'ютерний практикум 6. Обробка даних за допомогою Apache Spark |
Метою є навчитися виконувати обробку даних за допомогою Apache Spark, отримуючи дані з публічного API. Вивчення використання PySpark для виконання операцій з фільтрації, агрегації, об'єднання даних, а також ознайомлення з перевагами Spark у роботі з великими обсягами даних. | |
7 | Комп'ютерний практикум 7. Вступ до Delta Lake |
Метою є ознайомлення з основами Delta Lake — формату зберігання даних, який підтримує транзакції та забезпечує узгодженість даних на рівні ACID (Atomicity, Consistency, Isolation, Durability). Вивчення створення таблиць Delta, виконання операцій запису, читання та оновлення даних, а також використання Delta Lake для забезпечення схеми даних. | |
8 | Комп'ютерний практикум 8. Впровадження Delta Lake з використанням Spark |
Метою є навчитися впроваджувати Delta Lake в Apache Spark для створення надійних та масштабованих конвеєрів обробки даних. Створення та оновлення таблиці Delta, виконання операцій upsert, використання функціональності "time travel", робота з транзакціями в Delta Lake, а також оптимізація зберігання даних і управління змінами за допомогою функцій Vacuum, Optimize та Change Data Feed (CDF). | |
9 | Комп'ютерний практикум 9. Вступ до Apache Airflow |
Метою є ознайомлення з основами Apache Airflow — популярної платформи для оркестрації робочих процесів. Встановлення та налаштування Apache Airflow, створення Directed Acyclic Graphs (DAGs) для автоматизації завдань, запуск та моніторінг цих завдань. | |
10 | Комп'ютерний практикум 10. Оркестрація завдань Spark за допомогою Apache Airflow |
Метою є навчитися оркеструвати завдання Apache Spark за допомогою Apache Airflow. Налаштування DAG для запуску Spark задач, автоматизація ETL процесів та управління робочими процесами з використанням Airflow. | |
11 | Комп'ютерний практикум 11. Вступ до обробки потокових даних у реальному часі за допомогою Apache Kafka |
Метою є навчитися налаштовувати та використовувати Apache Kafka для обробки потокових даних у реальному часі. Налаштування Kafka, створення топіків, надсилання та отримання повідомлень, а також інтеграція Kafka з Apache Spark для обробки потокових даних. | |
12 | Комп'ютерний практикум 12. Обробка потокових даних за допомогою Spark Structured Streaming зі збереженням в Delta Lake |
Метою є створення конвеєра обробки потокових даних у реальному часі з використанням Spark Structured Streaming, що зчитує дані з Kafka і зберігає їх у Delta Lake. | |
13 | Комп'ютерний практикум 13. Вступ до пакетної обробки даних |
Метою є навчитися реалізовувати конвеєр пакетної обробки даних з використанням Apache Spark та Delta Lake. Виконання пакетної обробки наборів даних і зберігання результатів у Delta Lake. | |
14 | Комп'ютерний практикум 14. Впровадження медальйонної архітектури з використанням Delta Lake |
Метою є ознайомлення з медальйонною архітектурою — підходом до організації даних, який передбачає зберігання даних на трьох рівнях: бронзовому, срібному та золотому. Створення конвеєрів обробки даних, що дозволяє автоматизувати ETL процеси між рівнями, використовуючи Apache Spark та Delta Lake. | |
15 | Комп'ютерний практикум 15. Перевірка якості даних за допомогою Apache Spark та Great Expectations |
Метою є навчитися реалізовувати перевірку якості даних за допомогою інструменту Great Expectations. Інтеграція Apache Spark з Great Expectations, виконання перевірки якості даних і зберігання результатів обробки в Delta Lake для подальшого аналізу та роботи. | |
16 | Комп'ютерний практикум 16. Анонімізація даних за допомогою Apache NiFi |
Метою є навчитися реалізовувати анонімізацію даних за допомогою Apache NiFi. Налаштування потоків даних у NiFi для анонімізації конфіденційної інформації (маскування). | |
17 | Комп'ютерний практикум 17-18. End-to-End рішення для обробки потокових та історичних даних з використанням сучасного стеку інженерії даних |
Метою є навчитися створювати повне end-to-end рішення для обробки історичних і потокових даних, включаючи їх візуалізацію, аналіз трендів з використанням сучасних інструментів бізнес-аналітики, оркестрації робочих процесів та medallion architecture (bronze, silver, gold). |
Матеріали до лекційних,практичних занять та лабораторних робіт доступні для завантаження виключно здобувачам, які зареєстровані на дистанційний курс «Інженерія даних» на платформі дистанційного навчання «Сікорський» за посиланням https://www.sikorsky-distance.org/g-suite-for-education/%D1%84%D1%96%D0%BE%D1%82/
Самостійна робота студента
№ з/п | Вид самостійної роботи | Кількість годин СРС |
---|---|---|
1 | Підготовка до лекцій | 20 |
2 | Підготовка до комп'ютерних практикумів | 56 |
3 | Підготовка до МКР | 10 |
3 | Підготовка до заліку | 10 |
Всього | 96 |
Контрольні роботи
Двогодинна модульна контрольна робота (МКР) поділяється на дві одногодинні (45 хв.), що проводяться під час лабораторних занятть.
МКР-1 виконується на основі матеріалу лекцій 1 - 5. МКР-2 виконується на основі матеріалу лекцій 6 - 9. Модульні контрольні роботи виконуються в середовищі Google Classroom у вигляді тестування.
Політика та контроль
6. Політика навчальної дисципліни (освітнього компонента)
Система вимог, які ставляться перед студентом:
- правила відвідування занять: заборонено оцінювати присутність або відсутність здобувача на аудиторному занятті, в тому числі нараховувати заохочувальні або штрафні бали. Відповідно до РСО даної дисципліни бали нараховують за відповідні види навчальної активності на лекційних та практичних заняттях;
- модульні контрольні роботи виконуються без застосування допоміжної інформації з Інтернет, дистанційного курсу на платформі Сікорський, конспекта;
- заохочувальні бали виставляються за навчальну активність на лекційних заняттях. Кількість заохочуваних балів не більше 10;
- штрафні бали виставляються за невчасну здачу лабораторних робіт. Кількість штрафних балів не більше 10;
- політика щодо академічної доброчесності: Кодекс честі Національного технічного університету України «Київський політехнічний інститут імені Ігоря Сікорського» https://kpi.ua/files/honorcode.pdf встановлює загальні моральні принципи, правила етичної поведінки осіб та передбачає політику академічної доброчесності для осіб, що працюють і навчаються в університеті, якими вони мають керуватись у своїй діяльності, в тому числі при вивченні та складанні контрольних заходів з дисципліни «Інженерія даних».
7. Види контролю та рейтингова система оцінювання результатів навчання (РСО)
Поточний контроль: МКР, виконання та захист комп'ютерних практикумів. Календарний контроль: проводиться двічі на семестр як моніторинг поточного стану виконання вимог силабусу. Семестровий контроль: залік.
Рейтинг студента з дисципліни складається із балів отриманих протягом семестру. Бали протягом семестру студент отримує за:
- виконання та захист комп'ютерних практикумів;
- виконання модульних контрольних робіт (МКР).
Система рейтингових балів та критерії оцінювання
Комп'ютерні практикуми
«відмінно», повна відповідь на питання під час захисту (не менш ніж 90% потрібної інформації) та оформлений належним чином протокол до комп'ютерного практикуму – 5 балів; «добре», достатньо повна відповідь на питання під час захисту (не менш ніж 75% потрібної інформації) та оформлений належним чином протокол до комп'ютерного практикуму – 4 балів; «задовільно», неповна відповідь на питання під час захисту (не менш ніж 60% потрібної інформації), незначні помилки та оформлений належним чином протокол до комп'ютерного практикуму – 3 балів; «незадовільно», незадовільна відповідь та/або не оформлений належним чином протокол до комп'ютерного практикуму – 0 балів.
За кожне запізнення з поданням комп'ютерного практикуму до захисту від встановленого терміну оцінка знижується на 1 бал.
Модульні контрольні роботи
«відмінно», не менш ніж 90% правильних відповідей – 5 балів; «добре», не менш ніж 75% правильних відповідей – 4 балів; «задовільно», не менш ніж 60% правильних відповідей – 3 балів; «незадовільно», менш ніж 60% правильних відповідей – 0 балів.
Заохочувальні бали
за активну роботу на лекційному занятті 1 бал, але в сумі не більше 10.
Штрафні бали
Запізнення з поданням комп'ютерного практикуму до захисту від встановленого терміну -1 бал, але в сумі не більше -10
Календарний контроль
На першій атестації (8-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 20 балів. На другій атестації (14-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 40 балів.
Максимальна сума балів контрольних заходів протягом семестру складає:
RD = 18*rкпр+2*rмкр=18*5+2*5=100,
де
rкпр – бали за комп'ютерний практикум (0…5); rмкр – бали за написання МКР (0…5)
Форма семестрового контролю – Залік
Необхідною умовою отримання заліку є виконання одночасно усіх видів робіт:
- виконати МКР-1 та МКР-2 не нижче ніж на оцінку «задовільно»;
- захист усіх комп'ютерних практикумів на оцінку не нижче ніж «задовільно»;
Залік проводиться на останньому за розкладом занятті в семестрі. Якщо стартовий рейтинг протягом семестру становить 60 балів та вище, залікова оцінка, за згодою студента, переноситься в залікову відомість.
У випадку, коли семестровий рейтинг нижчий за 60 балів (усі види робіт виконані) або рейтинг вищий за 60 балів, але студент виявив бажання підвищити оцінку - призначається залікова контрольна робота. Залікова контрольна робота виконуються в середовищі Google Classroom у вигляді тестування.
Система оцінювання залікової контрольної роботи
«відмінно», не менш ніж 90% правильних відповідей – 100 балів; «добре», не менш ніж 75% правильних відповідей – 75 балів; «задовільно», не менш ніж 60% правильних відповідей – 60 балів; «незадовільно», менш ніж 60% правильних відповідей – 0 балів.
Сума стартових балів плюс бали за залікову контрольну роботу переводиться до залікової оцінки згідно з таблицею:
Таблиця 1. Переведення рейтингових балів до оцінок за університетською шкалою
Кількість балів | Оцінка |
---|---|
100-95 | Відмінно |
94-85 | Дуже добре |
84-75 | Добре |
74-65 | Задовільно |
64-60 | Достатньо |
Менше 60 | Незадовільно |
Не виконані умови допуску | Не допущено |
Робочу програму навчальної дисципліни (Силабус):
Складено: доцент кафедри інформаційних систем та технологій ФІОТ, к.т.н., Писаренко Андрій Володимирович
Ухвалено кафедрою інформаційних систем та технологій ФІОТ (протокол № 16 від 12.06.2024 р.)
Погоджено Методичною комісією факультету (протокол № 10 від 21.06.2024 р.)