Учебное пособие по ETL-тестированию

⚡ Умное резюме

Тестирование ETL проверяет, как данные передаются из исходных систем через логику преобразования в целевое хранилище данных, подтверждая точность, полноту и надежность. В этом ресурсе объясняются этапы процесса, типы тестирования, распространенные категории ошибок, подходы к автоматизации и практические рекомендации, необходимые начинающим и опытным тестировщикам.

  • 🎯 Определение тестирования ETL: Проверьте целостность данных во всей системе Ex.tracЭтапы преобразования (t), трансформации (Transform) и загрузки (Load) между исходной и целевой системами.
  • 🔁 Фазы процесса: Определите источники, соберите данные, примените бизнес-логику и многомерное моделирование, затем создайте отчет и составьте его.
  • 🧪 Типы тестирования: Проверка качества в процессе производства, анализ исходных данных, метаданные, полнота, точность, преобразование и поэтапное тестирование.
  • 🐞 Категории ошибок: Проблемы, связанные с пользовательским интерфейсом, анализом граничных значений, разбиением на эквивалентные категории, вычислениями, загрузкой, состоянием гонки и контролем версий.
  • 🤖 Фокус автоматизации: Такие инструменты, как Informatica и скрипты с поддержкой ИИ, сокращают трудозатраты и расширяют охват тестирования.
  • лучшие практики: Проверяйте преобразования, обрабатывайте исключения, обеспечивайте покрытие кода и подтверждайте масштабируемые временные рамки загрузки.

Учебное пособие по ETL-тестированию

Что такое ETL?

ETL стенды для Extract-Transform-Loadи описывает, как данные перемещаются из исходной системы в хранилище данных. Данные являются исходными.tracДанные берутся из OLTP-базы данных, преобразуются в соответствии со схемой хранилища данных и загружаются в базу данных хранилища. Многие хранилища данных также включают данные из систем, не относящихся к OLTP, таких как текстовые файлы, устаревшие приложения и электронные таблицы.

Например, в розничном магазине могут быть отдельные отделы, такие как продажи, маркетинг и логистика. Каждый отдел обрабатывает информацию о клиентах независимо, и способ хранения этих данных различается. Отдел продаж может хранить записи по имени клиента, а отдел маркетинга — по идентификатору клиента.

Если бизнес-командам необходимо просмотреть полную историю покупок клиента в рамках различных маркетинговых кампаний, разрозненные данные делают этот процесс очень трудоемким. Решение заключается в использовании... Datawarehouse Для хранения информации из различных источников в единой структуре используется ETL. ETL позволяет преобразовывать разнородные наборы данных в единую структуру, благодаря чему инструменты бизнес-аналитики могут впоследствии получать ценные аналитические данные и создавать отчеты.

На следующей диаграмме показана последовательность действий при тестировании ETL и основные концепции, которые вы будете использовать на протяжении всего данного руководства:

Extract-Transform-Load

1) Эксtract

  • Extracсоответствующие данные из одной или нескольких исходных систем.

2) Трансформировать

  • Преобразовать данные в формат хранилища данных (DW).
  • Создание ключей: ключ — это один или несколько атрибутов данных, которые однозначно идентифицируют сущность. Различные типы ключей К ним относятся первичный ключ, альтернативный ключ, внешний ключ, составной ключ и суррогатный ключ. Хранилище данных владеет этими ключами и никогда не позволяет никакому другому объекту их назначать.
  • Очистка данных: после того, как данные удалены.tracПосле этого система переходит к следующему этапу — очистке и согласованию. Очистка устраняет пропуски и выявляет ошибки. Согласование разрешает конфликты между несовместимыми наборами данных, чтобы их можно было использовать в корпоративном хранилище данных. Система также создает метаданные, которые помогают диагностировать проблемы в исходных системах и повышать качество данных.

3) Нагрузка

  • Загрузите данные в хранилище данных (DW).
  • Создание агрегатов: агрегат суммирует и хранит данные из таблица фактов для повышения производительности запросов конечных пользователей.

Что такое ETL-тестирование?

Тестирование ETL выполняется для обеспечения точности данных, загружаемых из источника в пункт назначения после бизнес-трансформации. Оно также включает проверку данных на различных промежуточных этапах между источником и пунктом назначения. Поскольку ETL расшифровывается как ExtracТестирование ETL-процессов (t-Transform-Load) охватывает каждый из этих трех этапов и точки пересечения данных между ними.

ETL-тестирование

Почему важно тестирование ETL?

После того, как вы поймете, что такое тестирование ETL, следующий вопрос — почему организации вкладывают в него столько усилий. Бизнес-решения зависят от корректных, полных и достоверных данных, поэтому одна ошибка преобразования может иметь серьезные последствия для финансовых отчетов, анализа данных о клиентах и ​​раскрытия информации регулирующим органам.

Следующие пункты объясняют практическую ценность тщательного тестирования ETL:

  • Точность данных: Это подтверждает, что значения, преобразованные бизнес-правилами, соответствуют задокументированной карте.ping Технические характеристики, предотвращающие скрытое повреждение данных.
  • Достоверная информация: Панели мониторинга и инструменты бизнес-аналитики зависят от хранилища данных, поэтому проверенные конвейеры ETL защищают каждый последующий отчет и KPI.
  • Соответствие нормативным требованиям: Такие отрасли, как банковское дело, здравоохранение и страхование, должны доказать, что происхождение и целостность данных сохраняются от начала до конца.
  • Сокращение объема доработок: Выявление дефектов в условиях низкой нагрузки позволяет избежать дорогостоящих перезагрузок производства, ручной сверки и ошибок, возникающих при взаимодействии с клиентами.
  • Обеспечение производительности: Тестирование ETL измеряет временные окна загрузки, пропускную способность и узкие места, чтобы хранилище данных продолжало масштабироваться по мере роста объема данных.

Исходя из этих мотивов, в следующем разделе подробно рассматривается структурированный процесс, которому следуют тестировщики ETL в реальных проектах.

Лучший выбор
Датаддо

Dataddo — это полностью управляемая платформа интеграции данных без необходимости написания кода, упрощающая подключение облачных приложений, панелей мониторинга и хранилищ данных. Эта ETL-платформа имеет настраиваемые коннекторы, которые можно создать в течение 10 рабочих дней. Инструмент поддерживает обратный ETL, репликацию баз данных и традиционные функции ETL.

Посетите Датаддо

Процесс тестирования ETL

Подобно другим процессам тестирования, ETL также проходит через различные фазы. Различные фазы процесса тестирования ETL следующие:

Процесс тестирования ETL

Тестирование ETL-процессов выполняется в пять этапов:

  1. Определение источников данных и требований
  2. сбор данных
  3. Реализация бизнес-логики и многомерного моделирования.
  4. Создание и заполнение данных
  5. Создание отчетов

Процесс тестирования ETL

Учитывая общую схему процесса, давайте рассмотрим конкретные типы тестирования, которые вписываются в этот жизненный цикл.

Виды ETL-тестирования

  1. Производственное проверочное тестирование
    Порядок проверки: Этот тип ETL-тестирования, также называемый «балансировкой таблиц» или «согласованием производственных данных», выполняется над данными по мере их поступления в производственные системы. Для поддержки принятия бизнес-решений производственные данные должны быть расположены в правильном порядке. информатика Опция проверки данных обеспечивает возможности автоматизации и управления тестированием ETL, предотвращая компрометацию производственных систем из-за некорректных данных.
  2. Источник для Target Тестирование (проверочное тестирование)
    Порядок проверки: Этот тип тестирования позволяет проверить, соответствуют ли преобразованные значения данных ожидаемым целевым значениям.
  3. Области применения Upgrades
    Порядок проверки: Этот тип ETL-тестирования может быть сгенерирован автоматически, что значительно экономит время на разработку тестов. Он проверяет, соответствуют ли данные заданным параметрам.tracДанные, полученные из более старого приложения или репозитория, сопоставляются с данными в новом приложении или репозитории.
  4. Тестирование метаданных
    Порядок проверки: Проверка метаданных включает в себя проверку типов данных, проверку длины данных, а также проверку индексов или ограничений.
  5. Тестирование полноты данных
    Порядок проверки: Проверка полноты данных подтверждает, что все ожидаемые данные загружены из источника в целевую систему. К распространенным тестам относятся сравнение и проверка количества записей, агрегированных данных и фактических данных между столбцами источника и целевой системы, если преобразование данных является простым или отсутствует.
  6. Тестирование точности данных
    Порядок проверки: Это тестирование гарантирует правильную загрузку и преобразование данных в соответствии с ожиданиями.
  7. Тестирование преобразования данных
    Порядок проверки: Проверка преобразования данных зачастую не может быть выполнена с использованием одного источника. SQL Запрос и сравнение результатов. Для проверки правил преобразования для каждой строки может потребоваться несколько SQL-запросов.
  8. Тестирование качества данных
    Порядок проверки:

    Тесты качества данных включают синтаксические и справочные тесты. Они предотвращают ошибки в бизнес-процессах, вызванные некорректными датами или номерами заказов.

    Синтаксические тесты выдают сообщения о некорректных данных, содержащих недопустимые символы, шаблоны символов и неправильный порядок заглавных или строчных букв.

    Контрольные тесты проверяют данные на соответствие модели данных. Например: идентификатор клиента.

    Проверка качества данных также включает проверку чисел, дат, точности, самих данных и наличие нулевых значений.

  9. Инкрементальное ETL-тестирование
    Порядок проверки: Данное тестирование проверяет целостность данных, как старых, так и новых, с учетом добавления новых данных. Инкрементальное тестирование подтверждает, что операции вставки и обновления обрабатываются должным образом в процессе инкрементального ETL-процесса.
  10. Тестирование графического интерфейса/навигации
    Порядок проверки: Данное тестирование проверяет навигационные возможности и графический интерфейс пользователя в отчетах на стороне клиента.

Как создать тестовый пример ETL

Тестирование ETL — это концепция, применимая к различным инструментам и базам данных в индустрии управления информацией. Цель тестирования ETL — убедиться в точности данных, загружаемых из источника в пункт назначения после преобразования бизнес-процессов. Это также включает проверку данных на различных промежуточных этапах между источником и получателем.

При проведении ETL-тестирования тестировщик всегда использует два документа:

  1. Карта ETLping листы: Карта ETLping В таблице содержится вся информация об исходных и целевых таблицах, включая каждый столбец и его справочные значения в таблицах. Тестировщики ETL должны хорошо разбираться в SQL-запросах, поскольку тестирование ETL может включать написание больших запросов с множеством соединений для проверки данных на любом этапе. Карта ETLping Таблицы значительно упрощают написание запросов для проверки данных.
  2. Схема базы данных источника и цели: Его следует всегда держать под рукой, чтобы проверять любые детали на карте.ping листы.

Сценарии и тестовые сценарии ETL

  1. Картаping проверка документа
    Тестовые примеры: Проверьте, предоставлена ​​ли соответствующая информация ETL в карте.ping В каждом документе должен вестись журнал изменений.ping Док.
  2. Проверка
    Тестовые примеры:

    1) Проверьте структуру исходной и целевой таблиц на соответствие соответствующей карте.ping Док.
    2) Тип исходных данных и тип целевых данных должны совпадать.
    3) Длина типов данных в источнике и целевой системе должна быть одинаковой.
    4) Убедитесь, что указаны типы и форматы полей данных.
    5) Длина исходного типа данных не должна быть меньше длины целевого типа данных.
    6) Проверьте названия столбцов в таблице по карте.ping Док.

  3. Проверка ограничений
    Тестовые примеры: Убедитесь, что для конкретной таблицы заданы необходимые ограничения.
  4. Проблемы с согласованностью данных
    Тестовые примеры:

    1) Тип данных и длина определенного атрибута могут различаться в разных файлах или таблицах, даже если семантическое определение одинаково.
    2) Неправильное использование ограничений целостности.

  5. Проблемы полноты
    Тестовые примеры:

    1) Убедитесь, что все необходимые данные загружены в целевую таблицу.
    2) Сравните количество записей в исходном и целевом файлах.
    3) Проверьте наличие отклоненных записей.
    4) Убедитесь, что данные в столбцах целевых таблиц не усечены.
    5) Проверьте краевой анализ.
    6) Сравните уникальные значения ключевых полей между данными, загруженными в хранилище, и исходными данными.

  6. Проблемы с корректностью
    Тестовые примеры:

    1) Данные, содержащие орфографические ошибки или неточности.
    2) Нулевые, неуникальные или выходящие за пределы допустимого диапазона данные.

  7. трансформация
    Тестовые примеры: Убедитесь, что каждое бизнес-правило и логика преобразования в карте соответствуют действительности.ping Документ корректно применяется к исходным данным до того, как они попадут в целевую систему.
  8. Качество данных
    Тестовые примеры:

    1) Проверка чисел: проверка форматов и значений чисел.
    2) Проверка дат: даты должны соответствовать единому формату и быть согласованными во всех записях.
    3) Проверка точности.
    4) Проверка данных.
    5) Нулевая проверка.

  9. Нулевая проверка
    Тестовые примеры: Проверьте значения NULL в тех столбцах, для которых указано "Не NULL".
  10. Дубликат проверки
    Тестовые примеры:

    1) Проверьте уникальный ключ, первичный ключ и любые другие столбцы, которые должны быть уникальными в соответствии с бизнес-требованиями, чтобы убедиться в отсутствии повторяющихся строк.
    2) Проверьте, нет ли повторяющихся значений в каком-либо столбце, например.tracСобранные данные из нескольких исходных столбцов объединены в один столбец.
    3) В соответствии с требованиями клиента, убедитесь в отсутствии дубликатов в комбинации нескольких столбцов в целевом массиве.

  11. Проверка даты
    Тестовые примеры: Даты используются во многих областях разработки ETL-процессов:

    1) Чтобы узнать дату создания строки.
    2) Определите активные записи с точки зрения разработки ETL-процесса.
    3) Определите активные записи с точки зрения бизнес-требований.
    4) Иногда, на основе значений дат, генерируются обновления и вставки.

  12. Полная проверка данных
    Тестовые примеры:

    1) Проверьте весь набор данных в исходной и целевой таблицах, используя запрос с отрицательным знаком (-) в качестве наилучшего решения.
    2) Необходимо выполнить операцию "источник минус цель" и операцию "цель минус источник".
    3) Если запрос на вычитание возвращает какое-либо значение, эти строки следует считать несовпадающими.
    4) Сопоставьте строки между исходной и целевой базой данных, используя оператор пересечения.
    5) Количество, возвращаемое функцией intersecte, должно совпадать с индивидуальными значениями в исходной и целевой таблицах.
    6) Если запрос с отрицательным знаком возвращает строки, а количество пересечений меньше, чем количество пересечений в исходном или целевом запросе, значит, существуют дубликаты строк.

  13. Чистота данных
    Тестовые примеры: Ненужные столбцы следует удалить перед загрузкой в ​​промежуточную область.

Типы ошибок ETL

Даже при наличии надежных тестовых примеров конвейеры ETL могут давать сбои по-разному. На изображении ниже приведены категории ошибок, на которые следует обратить внимание, а в таблице ниже описана каждая из них.

Типы ошибок ETL

Тип ошибок Описание
Ошибки пользовательского интерфейса/косметические ошибки • Относится к графическому интерфейсу приложения
• Стиль шрифта, размер шрифта, цвета, выравнивание, орфографические ошибки, навигация и так далее.
Ошибка, связанная с анализом граничных значений (BVA) • Минимальные и максимальные значения
Ошибка, связанная с разделением классов эквивалентности (ECP) • Допустимый и недопустимый тип
Ошибки ввода/вывода • Допустимые значения не принимаются
• Принимаются недопустимые значения
Ошибки расчета • Математические ошибки
• Окончательный вывод неверен
Ошибки условий загрузки • Не допускает одновременного использования несколькими пользователями
• Не допускает нагрузки, ожидаемой заказчиком.
Ошибки условий гонки • Сбой и зависание системы
• Система не может запускать клиентские платформы
Ошибки контроля версий • Нет соответствия логотипу
• Информация о версии отсутствует.
• Обычно встречается в Регрессионное тестирование
Аппаратные ошибки • Устройство не отвечает приложению
Помощь Источник ошибок • Ошибки в справочных документах

Тестирование хранилища данных

Тестирование хранилища данных Тестирование хранилища данных — это метод тестирования, при котором данные внутри хранилища данных проверяются на целостность, надежность, точность и согласованность в соответствии с корпоративной структурой данных. Главная цель тестирования хранилища данных — убедиться, что интегрированные данные внутри хранилища достаточно надежны для принятия компанией решений. В то время как тестирование ETL фокусируется на перемещении данных, тестирование хранилища данных охватывает более широкий уровень хранения и формирования отчетов, который в конечном итоге обеспечивается ETL.

Разница между тестированием базы данных и тестированием ETL

Хотя обе дисциплины работают со структурированными данными, они отвечают на разные вопросы. В таблице ниже показано практическое различие:

ETL-тестирование Тестирование базы данных
Проверяет, перенесены ли данные должным образом. Основная цель — проверить, соответствуют ли данные правилам и стандартам, определенным в модели данных.
Проверяет совпадение значений в исходных и целевых данных, а также соответствие преобразованных данных ожидаемым. Проверяет отсутствие "бесхозных" записей и сохранение связей между внешним и первичным ключами.
Проверяет сохранение связей внешнего первичного ключа в процессе ETL. Проверяет отсутствие избыточных таблиц и оптимальную нормализацию базы данных.
Проверяет наличие дубликатов в загруженных данных. Проверяет наличие отсутствующих данных в необходимых столбцах.

Тестирование производительности в ETL

Тестирование производительности в ETL ETL — это метод тестирования, который гарантирует, что система ETL может справиться с нагрузкой от множества пользователей и транзакций. Основная цель ETL — тестирование. Тестирование производительности Цель состоит в оптимизации и улучшении производительности сеанса путем выявления и устранения узких мест в производительности. Исходная и целевая базы данных, сопоставлениеpingВ системах, сессиях и самой системе могут возникать узкие места.

Одним из лучших инструментов для тестирования и оптимизации производительности является Informatica.

Обязанности тестировщика ETL

Основные обязанности тестировщика ETL можно разделить на три категории:

  • Сценический стол / SFS или MFS
  • Применена логика трансформации бизнеса
  • Target Загрузка таблицы из промежуточного файла или таблицы после применения преобразования.

В число повседневных обязанностей тестировщика ETL входят следующие задачи:

  • Тестирование программного обеспечения ETL
  • Тестовые компоненты хранилища данных ETL
  • Выполните тесты бэкэнда, основанные на данных.
  • Создание, проектирование и реализация контрольные примерыпланы испытаний и испытательные стенды
  • Выявлять проблемы и предлагать решения потенциальных проблем.
  • Утвердить требования и техническое задание на проектирование
  • Проверьте передачу данных и протестируйте плоские файлы.
  • Пишите SQL-запросы для различных сценариев, таких как проверка количества совпадений.

Автоматизация ETL-тестирования

Общая методология тестирования ETL-процессов заключается в использовании SQL-скриптов или визуальной оценки данных. Эти подходы отнимают много времени, чреваты ошибками и редко обеспечивают полное подтверждение результатов. тестовое покрытиеДля ускорения выполнения, улучшения охвата, снижения затрат и повышения эффективности. дефект Для выявления угроз в производственной и тестовой средах автоматизация является насущной необходимостью. Одним из таких инструментов является Informatica.

Современные команды также сочетают традиционную автоматизацию с помощниками на основе ИИ, которые предлагают тесты преобразования, генерируют синтетические исходные данные и отмечают отклонения от схемы, освобождая тестировщиков от необходимости поддерживать повторяющиеся скрипты, позволяя им сосредоточиться на сложной бизнес-логике.

лучшие практики ETL-тестирования

  1. Убедитесь, что данные преобразованы корректно.
  2. Прогнозируемые данные должны быть загружены в хранилище данных без потери или усечения.
  3. Убедитесь, что ETL-приложение корректно отклоняет недопустимые данные, заменяет их значениями по умолчанию там, где это применимо, и сообщает об этом.
  4. Убедитесь, что данные загружаются в хранилище в установленные и ожидаемые сроки, чтобы проверить масштабируемость и производительность.
  5. Все методы должны иметь соответствующие модульные тесты, независимо от их видимости.
  6. Для оценки их эффективности все модульные тесты должны использовать соответствующие методы оценки покрытия кода.
  7. Старайтесь использовать одно утверждение на каждый тестовый случай.
  8. Создавай модульные тесты которые нацелены на исключения.

Проверять, выписываться - Интервью по тестированию ETL, вопросы и ответы

Часто задаваемые вопросы (FAQ)

ETL преобразует данные перед загрузкой в ​​хранилище, тогда как ELT сначала загружает необработанные данные, а затем преобразует их внутри целевого хранилища. ELT подходит для облачных хранилищ с эластичными вычислительными ресурсами, а ETL — для структурированных локальных конвейеров.

К распространенным проблемам относятся большие объемы данных, частые изменения схемы, отсутствие тестовых данных, недокументированные бизнес-правила, сложные преобразования и ограничения производительности. Надежная картаping Использование документов, автоматизации и многократно используемых запросов для проверки значительно снижает эти риски.

Популярные инструменты включают информатика Функция проверки данных, QuerySurge, Talend, IBM InfoSphere DataStage и утилиты с открытым исходным кодом, такие как тесты dbt. Правильный выбор зависит от платформы хранилища данных, бюджета и необходимой глубины автоматизации.

Искусственный интеллект улучшает тестирование ETL, выявляя аномалии, прогнозируя изменения схемы, генерируя синтетические исходные данные и рекомендуя пробелы в покрытии. Модели машинного обучения также могут анализировать производственные данные и предлагать правила проверки, которые человек мог бы упустить из виду.

Да. Искусственные интеллекты-помощники умеют читать карты.ping Документы, правила преобразования и скрипты проверки SQL-запросов создаются автоматически. Тестировщики по-прежнему проверяют сгенерированные сценарии на соответствие бизнес-требованиям, но время генерации часто сокращается с часов до минут при выполнении повторяющихся проверок.

Подведем итог этой публикации следующим образом: