Управление качеством конвейеров данных
(перенаправлено с «Управление качеством конвейров данных»)
Перейти к навигации
Перейти к поиску
Постановка задачи
В задаче рассматривается обобщённое понятие конвейера данных
Хранилище-источник -> Выгрузчик -> Трансформер -> Загрузчик -> Целевое хранилище
Ставится задача автоматизации контроля качества конвейера:
- Функциональное тестирование
- Конвейер доставляет данные из хранилища-источника в целевое хранилище
- Количество записей
- Содержиое каждого поля
- Отсутствие потери точности в числовых типах
- Отустствие потери части данных при доставке строковых полей
- Сохранение часовых поясов для дат
- Трансформер правильно преобразует данные
- Согласно описанным бизнес-правилам
- Конвейер доставляет данные из хранилища-источника в целевое хранилище
- Тестирование семантики доставки данных
- Определение соответствия семантикам доставки "только однажды", "хотя бы однажды", "не более, чем однажды"
- Определение производить в том числе рассматривая отказы компонент
- Тестирование отказоустойчивости
- Способность конвейера данных переносить полный или частичный отказ одного или несколькох компонентов
- Максимальное время самовосстановления без нарушения семантики доставки
- Нагрузочное тестирование
- Определение максимальной пропускной способности конвейера
- Определение максимальной эффективной нагрузки, при которой не происходит отказа компонентов конвейера и/или потери данных
Этапы работы
- Изучить литературу по тестированию конвейеров данных и провести обзор
- Реализовать простейшие конвейеры данных для тестов
- Пакетный: реляционная СУБД -> Apache Spark -> Hadoop/Clickhouse
- Потоковый: Kafka -> Spark Streaming -> Hadoop/Clickhouse
- Написать тест план по каждому из пунктов контроля качества
- При написании тест плана сравнить различные подходы, применяющиеся для тестирования и обосновать выбор того, который будет использован в итоге
- Автоматизировать полученные тест кейсы при помощи любых средств автоматизации тестирования
- Построить отчет качества по тестированию конвейера данных
- Продемонстрировать срабатывания при внесении ломающих изменений в приложение
Научный руководитель
к.ф.-м.н., Ph.D., старший преподаватель, Благов Михаил Валерьевич [e-mail][Telegram]