Вопросы на собеседовании по тестированию ETL

Вопросы на собеседовании по тестированию ETL

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

В данной статье мы собрали список наиболее часто задаваемых вопросов на собеседовании по тестированию ETL.

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

1. Что такое ETL?

ETL расшифровывается как Extract, Transform, Load (извлечение, преобразование, загрузка). Эти три функции выполняются с данными, чтобы перенести их из одной или нескольких исходных баз данных в другую базу, которая называется целевой.

2. Что такое процесс ETL?

Процесс ETL включает три шага:

  1. Извлечение (Extraction): данные извлекаются из одной или нескольких исходных баз данных.
  2. Преобразование (Transformation): данные преобразуются в формат, подходящий для целевой базы данных.
  3. Загрузка (Load): преобразованные данные загружаются в целевую базу данных.

3. Что такое тестирование ETL и почему оно важно?

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

4. Какие основные сложности возникают при тестировании ETL?

Основные сложности при тестировании ETL включают:

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

Примечание редакции: вас также может заинтересовать статья “Тестирование ETL”.

5. Какие существуют типы тестирования ETL? Опишите их кратко.

Существуют четыре типа тестирования ETL:

  1. Тестирование нового хранилища данных (New Data Warehouse Testing). Построение нового хранилища данных с нуля. Данные собираются от заказчика.
  2. Тестирование миграции (Migration Testing). Выполняется, когда данные переносятся из старой базы данных в новую.
  3. Тестирование при изменении требований (Change Request). Данные собираются из разных источников и загружаются в существующую базу данных.
  4. Тестирование отчётов (Report Testing). Проверяются отчёты, сгенерированные в системе хранилища данных, на точность данных, доступы и их оформление.

6. Что такое схема “звезда” (Star Schema)?

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

7. Что такое схема “снежинка” (Snowflake Schema)?

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

8. Что такое таблица фактов (Fact Table)?

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

Таблица фактов состоит из двух типов колонок:

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

9. Какие существуют типы фактов?

Существует три типа фактов:

  1. Аддитивные (Additive): могут суммироваться по всем измерениям.
  2. Полуаддитивные (Semi-additive): могут суммироваться только по некоторым измерениям.
  3. Неаддитивные (Non-additive): не могут суммироваться ни по одному измерению.

10. Что такое таблица транзакций (Transaction Fact Table)?

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

11. Что такое таблица периодических снимков (Periodic Snapshot Fact Table)?

В этом типе таблицы одно и то же событие может быть записано несколько раз, и она фиксирует состояние данных на определённые моменты времени.

12. Что такое накопительная таблица периодических снимков (Accumulating Snapshot Fact Table)?

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

13. Что означает уровень детализации в таблице фактов?

Уровень детализации (Grain) описывает какой именно аспект или событие будет представлять собой отдельная строка в таблице фактов.

14. Что такое таблица без фактов (Factless Fact Table)?

Это таблица фактов, в которой нет метрик или фактических данных, а только колонки внешних ключей для установления связи между измерениями.

15. Что такое таблица измерений (Dimension Table)?

Таблица измерений описывает атрибуты объектов, представленных в таблице фактов. Например, таблица измерений “Локация” может содержать такие атрибуты, как улица, город, почтовый индекс, штат и т. д.

16. Назовите несколько типов измерений.

Существуют следующие типы измерений:

  • Медленно изменяющиеся измерения (Slowly Changing Dimension)
  • Согласованные измерения (Conformed Dimension)
  • “Мусорные” измерения (Junk Dimension/Dirty Dimension)
  • Вырожденные измерения (De-generated Dimension)
  • Промежуточные измерения (Bridge Dimension)

17. Что такое SCD?

SCD расшифровывается как Slowly Changing Dimensions (медленно изменяющиеся измерения). Это один из типов измерений. Такие измерения отличаются тем, что их атрибуты меняются нечасто, а с течением времени.

Например, измерение “Клиенты”. Атрибуты этого измерения, такие как адрес или имя клиента, изменяются редко.

18. Какие существуют типы SCD? Расскажите про каждый из них кратко.

Типы SCD бывают:

  • Тип 0: Атрибуты измерения никогда не меняются. Например, дата рождения.
  • Тип 1: Новая информация перезаписывает старую, без сохранения истории изменений. Например, если клиент изменяет город проживания, в атрибуте “Город” старое значение будет заменено на новое.
  • Тип 2: Новая информация добавляется в виде новой строки, и сохраняется история изменений. Новая запись получает новый первичный ключ. Например, при изменении города проживания создаётся новая запись с новым значением города.
  • Тип 3: Вместо добавления новой строки (как в Типе 2), добавляется новая колонка. Например, для изменения города проживания добавляются две новые колонки — “Новый город” и “Год” или “Дата”.
  • Тип 4: Создаётся отдельная “таблица истории” или мини-измерение для отслеживания изменений. Текущие значения атрибутов отображаются в таблице измерений, а все изменения или старые значения хранятся в таблице истории.
  • Тип 5: Используется мини-измерение (как в Типе 4) и создаётся ссылка типа 1 на мини-измерение в основной таблице измерений.
  • Тип 6: Комбинируются Типы 1, 2 и 3. Этот подход также называют “гибридным”.

19. Что такое согласованные измерения?

Это такие измерения, которые могут использоваться в разных местах с разными таблицами фактов как в одной базе данных, так и в нескольких витринах данных.

Сюда относятся измерения “Клиенты”, “Продукты”, “Время”. Например, измерение “Продукты” можно использовать для расчёта количества проданных товаров и выручки.

20. Что такое “мусорные” (Junk/Dirty Dimensions) измерения?

Как следует из названия, такие измерения содержат случайные атрибуты, которые не относятся к какому-либо конкретному измерению. Такие измерения создаются, чтобы избежать наличия множества внешних ключей в таблице фактов.

21. Что такое вырожденное (De-generated Dimension) измерение?

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

22. Что такое витрина данных (Data Mart)?

Витрина данных — это база данных, которая содержит данные из одного из сегментов хранилища данных. Иными словами, витрина данных является подмножеством хранилища данных. Эти сегменты, как правило, относятся к определённым бизнес-направлениям организации, таким как финансы, маркетинг или продажи.

23. Что такое схема BUS?

Схема BUS это метод организации данных, который используется для объединения различных бизнес-процессов и их измерений в единую, гибкую и стандартизированную модель. Она играет ключевую роль в создании модели данных типа “звезда” или “снежинка” и служит основой для интеграции данных из разных источников.

24. Какие три уровня включает в себя цикл ETL?

Цикл ETL включает три уровня:

  • Уровень подготовки данных (Staging Layer). Также известен как уровень источника. На этом уровне хранятся данные, извлечённые из различных источников.
  • Уровень интеграции (Integration Layer). После преобразования исходных данных они хранятся на уровне интеграции. На этом уровне данные сохраняются в базе данных.
  • Уровень доступа (Access Layer). Также известен как уровень измерений. Это интерфейсный уровень, используемый конечными пользователями для создания отчётов.

25. Что такое промежуточная зона (staging area)?

Staging area (промежуточная зона) — это место, где временно хранятся данные из различных источников. Это важный этап, так как все данные должны быть собраны в одном месте перед загрузкой в хранилище данных или витрину данных. Промежуточная зона используется для хранения и очистки данных перед их перемещением в целевую базу данных.

26. Что такое ODS?

ODS (Operational Data Store) — это оперативное хранилище данных, используемое для оперативной отчётности. Оно содержит снимок актуальных данных, собранных из различных источников.

27. Что такое активные и пассивные трансформации?

  • Активные трансформации. В этом типе трансформаций при передаче данных из источника в целевую базу данных количество строк изменяется.
  • Пассивные трансформации. В этом типе трансформаций при передаче данных количество строк остаётся неизменным.

28. Что такое очистка данных (Data Purging)?

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

Перевод статьи «Top 27 ETL Testing Interview Questions and Answers».

1 комментарий к “Вопросы на собеседовании по тестированию ETL”

  1. Пингбэк: Тестирование ETL

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *