Управление качеством конвейеров данных

Материал из Машинное обучение - Кафедра прикладной кибернетики
Перейти к навигации Перейти к поиску

Постановка задачи

В задаче рассматривается обобщённое понятие конвейера данных

Хранилище-источник -> Выгрузчик -> Трансформер -> Загрузчик -> Целевое хранилище

Ставится задача автоматизации контроля качества конвейера:

  • Функциональное тестирование
    • Конвейер доставляет данные из хранилища-источника в целевое хранилище
      • Количество записей
      • Содержиое каждого поля
      • Отсутствие потери точности в числовых типах
      • Отустствие потери части данных при доставке строковых полей
      • Сохранение часовых поясов для дат
    • Трансформер правильно преобразует данные
      • Согласно описанным бизнес-правилам
  • Тестирование семантики доставки данных
    • Определение соответствия семантикам доставки "только однажды", "хотя бы однажды", "не более, чем однажды"
    • Определение производить в том числе рассматривая отказы компонент
  • Тестирование отказоустойчивости
    • Способность конвейера данных переносить полный или частичный отказ одного или несколькох компонентов
    • Максимальное время самовосстановления без нарушения семантики доставки
  • Нагрузочное тестирование
    • Определение максимальной пропускной способности конвейера
    • Определение максимальной эффективной нагрузки, при которой не происходит отказа компонентов конвейера и/или потери данных

Этапы работы

  1. Изучить литературу по тестированию конвейеров данных и провести обзор
  2. Реализовать простейшие конвейеры данных для тестов
    1. Пакетный: реляционная СУБД -> Apache Spark -> Hadoop/Clickhouse
    2. Потоковый: Kafka -> Spark Streaming -> Hadoop/Clickhouse
  3. Написать тест план по каждому из пунктов контроля качества
    1. При написании тест плана сравнить различные подходы, применяющиеся для тестирования и обосновать выбор того, который будет использован в итоге
  4. Автоматизировать полученные тест кейсы при помощи любых средств автоматизации тестирования
  5. Построить отчет качества по тестированию конвейера данных
    1. Продемонстрировать срабатывания при внесении ломающих изменений в приложение

Научный руководитель

к.ф.-м.н., Ph.D., старший преподаватель, Благов Михаил Валерьевич [e-mail][Telegram]