ІНЖЕНЕРІЯ ДАНИХ
Силабус освітнього компонента
Реквізити навчальної дисципліни
Рівень вищої освіти | Другий (магістерський) |
Галузь знань | F Інформаційні технології |
Спеціальність | F6 Інформаційні системи та технології |
Освітня програма | Інтегровані інформаційні системи |
Статус дисципліни | Обов’язкова (нормативна) |
Форма навчання | очна(денна)/заочна/дистанційна |
Рік підготовки, семестр | 1 курс, осінній семестр |
Обсяг дисципліни | 5 кредитів ECTS /150 годин (18 годин лекцій, 36 годин комп'ютерний практикум, 96 годин – СРС) |
Семестровий контроль/ контрольні заходи | Залік, МКР, захист комп'ютерних практикумів |
Розклад занять | 1 лекція (2 години) 1 раз на два тижні; 1 комп'ютерний практикум (2 години) 1 раз на тиждень |
Мова викладання | Українська |
Інформація про керівника курсу / викладачів | лектор к.т.н., доцент Писаренко Андрій Володимирович; комп'ютерний практикум асистент Головатенко Ілля Анатолійович; Telegram: https://t.me/dataeng2025 |
Розміщення курсу | 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 «Інформаційні системи та технології».
- Литвин В. В. Методи та засоби інженерії даних та знань: Навч. посіб. – Львів: “Магнолія 2006”, 2024. – 241 с.
- Joe Reis, Matt Housley Fundamentals of Data Engineering, O'Reilly Media, Inc., 2022.
- Kleppmann, M. Designing Data-intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. O'Reilly Media, Inc., 2017.
- Chambers, B. Zaharia, M. Spark: The Definitive Guide : Big Data Processing Made Simple. O'Reilly Media, Inc., 2018.
- Crickard, P. Data Engineering with Python: Work with massive datasets to design data models and automate data pipelines using Python. Packt Publishing, 2020.
- Kimball, R. Ross, M. The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling. Wiley, 2013.
- Chan Yupo, John Talburt, Terry M. Talley, eds. Data engineering: mining, information and intelligence. Vol. 132. Springer Science & Business Media, 2009.
- Len Silverston, 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: Якість даних та управління нею | |
7 | Лекція 7: Якість даних та управління нею | ||
Основні питання: 1) Методи забезпечення якості даних; 2) Принципи управління даними та найкращі практики; 3) Впровадження перевірок якості даних | |||
8 | Лекція 8: Безпека та конфіденційність даних | ||
Основні питання: 1) Огляд правил безпеки даних і конфіденційності; 2) Методи захисту інфраструктури даних; 3) Методи анонімізації та шифрування | |||
9 | Лекція 9: Візуалізація даних і звітність | ||
Основні питання: 1) Принципи та засоби візуалізації даних; 2) Створення інтерактивних панелей; 3) звітування та оповідання даних |
Комп'ютерні практикуми
№ з/п | Перелік комп'ютерних практикумів |
---|---|
1 | Комп'ютерний практикум 1. Налаштування локального Data Engineering середовища |
Метою є налаштувати локальне середовище розробника для виконання задач інженерії даних, що включає встановлення та конфігурування Docker, Python та Jupyter Notebooks, щоб вміти створювати та керувати ізольованими середовищами для розроблення, тестування та виконання базових задач інженерії даних | |
2 | Комп'ютерний практикум 2. Вилучення даних з публічного API |
Метою є навчитися вилучати реальні дані за допомогою публічного API, зберігати їх у реляційну базу даних та готувати до подальших ETL-операцій, щоб вміти працювати з API, отримувати структуровані дані, інтегрувати їх у бази даних та використовувати для аналізу та обробки, що забезпечить їх готовність до роботи з реальними джерелами даних | |
3 | Комп'ютерний практикум 3. Процеси ETL з використанням Pandas |
Метою є навчитися використовувати бібліотеку Pandas для виконання процесів ETL, включаючи завантаження даних із CSV файлу, їх очищення, трансформацію, агрегування та підготовку для подальшого аналізу, щоб вміти працювати з Pandas для обробки та підготовки даних, що забезпечить їх готовність до виконання складніших завдань інженерії даних, пов’язаних із трансформацією та аналізом даних | |
4 | Комп'ютерний практикум 4. Завантаження даних у локальну базу даних |
Метою є навчитися завантажувати перетворені дані до локальної бази даних PostgreSQL за допомогою SQLAlchemy, опанувати процеси інтеграції даних у реляційну базу даних, щоб вміти виконувати завантаження та управління даними в базах даних, що забезпечить їх готовність до роботи зі складними ETL-процесами та інтеграцією даних у реальних проєктах інженерії даних | |
5 | Комп'ютерний практикум 5. Локальне налаштування Apache Spark |
Метою є навчитися налаштовувати локальне середовище Apache Spark за допомогою Docker образу, використовувати PySpark для виконання базових завдань з обробки даних та інтегрувати Spark з Jupyter Notebook, щоб вміти працювати з Apache Spark для розподіленої обробки даних | |
6 | Комп'ютерний практикум 6. Обробка даних за допомогою Apache Spark |
Метою є навчитися виконувати обробку даних за допомогою Apache Spark, отримуючи дані з публічного API, використовувати PySpark для операцій фільтрації, агрегації та об’єднання даних, а також ознайомитися з перевагами Spark у роботі з великими обсягами даних, щоб вміти застосовувати Spark для розподіленої обробки даних | |
7 | Комп'ютерний практикум 7. Вступ до Delta Lake |
Метою є ознайомитися з основами Delta Lake, навчитися створювати таблиці Delta, виконувати операції запису, читання та оновлення даних, а також зрозуміти переваги Delta Lake для забезпечення схеми даних і можливості «подорожі в часі» (time travel), щоб вміти застосовувати Delta Lake для управління надійними та узгодженими сховищами даних, що забезпечить їх готовність до роботи зі складними системами обробки та зберігання даних у реальних проектах інженерії даних | |
8 | Комп'ютерний практикум 8. Впровадження Delta Lake з використанням Spark |
Метою є навчитися впроваджувати Delta Lake в Apache Spark для створення надійних та масштабованих конвеєрів обробки даних, зрозуміти механізми створення та оновлення таблиць Delta, виконувати операції upsert, використовувати функціональність «time travel» і транзакції в Delta Lake, а також ознайомитися з оптимізацією зберігання та керуванням змінами, щоб вміти застосовувати Delta Lake для побудови ефективних та надійних систем обробки даних | |
9 | Комп'ютерний практикум 9. Вступ до Apache Airflow |
Метою є ознайомитися з основами роботи платформи Apache Airflow для оркестрації робочих процесів, включаючи встановлення та налаштування Airflow, створення та запуск DAG, а також моніторинг завдань у веб-інтерфейсі, щоб вміти використовувати Apache Airflow для автоматизації та управління складними робочими процесами | |
10 | Комп'ютерний практикум 10. Оркестрація завдань Spark за допомогою Apache Airflow |
Метою є навчитися оркеструвати завдання Apache Spark за допомогою Apache Airflow, включаючи налаштування DAG для запуску Spark-задач, автоматизацію ETL-процесів та управління робочими процесами з використанням Airflow, щоб вміти інтегрувати Spark та Airflow для побудови автоматизованих та масштабованих конвеєрів обробки даних | |
11 | Комп'ютерний практикум 11. Вступ до обробки потокових даних у реальному часі за допомогою Apache Kafka |
Метою є навчитися налаштовувати та використовувати Apache Kafka для обробки потокових даних у реальному часі, включаючи розгортання Kafka через Docker, створення топіків, надсилання та отримання повідомлень, а також інтеграцію Kafka з Apache Spark для потокової обробки, щоб вміти працювати з Kafka для побудови систем обробки потокових даних | |
12 | Комп'ютерний практикум 12. Обробка потокових даних за допомогою Spark Structured Streaming зі збереженням в Delta Lake |
Метою є створити конвеєр обробки потокових даних у реальному часі з використанням Spark Structured Streaming, який зчитує події з Kafka та зберігає їх у Delta Lake, щоб вміти проєктувати та впроваджувати системи потокової обробки даних, включаючи інтеграцію Kafka, Spark та Delta Lake у реальних проектах інженерії даних | |
13 | Комп'ютерний практикум 13. Вступ до пакетної обробки даних |
Метою є навчитися реалізовувати конвеєр пакетної обробки даних з використанням Apache Spark та Delta Lake, включаючи виконання трансформацій над заданими наборами даних та збереження результатів у Delta Lake, щоб вміти проєктувати та впроваджувати системи пакетної обробки даних, включаючи інтеграцію Spark та Delta Lake у реальних проектах інженерії даних | |
14 | Комп'ютерний практикум 14. Впровадження медальйонної архітектури з використанням Delta Lake |
Метою є ознайомитися з медальйонною архітектурою, реалізувати базовий ETL-конвеєр, що обробляє дані за допомогою Apache Spark і зберігає їх у Delta Lake на кожному із шарів, щоб вміти проєктувати та впроваджувати медальйонну архітектуру для організації та обробки даних | |
15 | Комп'ютерний практикум 15. Перевірка якості даних за допомогою Apache Spark та Great Expectations |
Метою є навчитися реалізовувати перевірку якості даних з використанням інструменту Great Expectations у середовищі Apache Spark, включаючи виконання контролю даних (data quality checks) та збереження результатів у Delta Lake для подальшого аналізу, щоб вміти застосовувати Great Expectations для забезпечення якості даних | |
16 | Комп'ютерний практикум 16. Анонімізація даних за допомогою Apache NiFi |
Метою є навчитися реалізовувати анонімізацію даних за допомогою Apache NiFi. Налаштування потоків даних у NiFi для анонімізації конфіденційної інформації (маскування). | |
17 | Комп'ютерний практикум 17-18. End-to-End рішення для обробки потокових та історичних даних з використанням сучасного стеку інженерії даних |
Метою є навчитися створювати повне рішення «від початку до кінця» (end-to-end) для обробки історичних і потокових даних за допомогою Apache Kafka, Apache Spark, Delta Lake та інструменту оркестрації Prefect, включаючи збереження даних у різних шарах (медальйонна архітектура: Bronze, Silver, Gold) та налаштування BI-візуалізації результатів, щоб вміти проєктувати та впроваджувати комплексні системи обробки даних |
Матеріали до лекційних,практичних занять та лабораторних робіт доступні для завантаження виключно здобувачам, які зареєстровані на дистанційний курс «Інженерія даних» на платформі дистанційного навчання «Сікорський» за посиланням 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 р.)