Тестирование ETL - вопросы для собеседования
ETL означает извлечение, преобразование и загрузка. Это важное понятие в системах хранилищ данных.Extraction означает извлечение данных из различных источников данных, таких как транзакционные системы или приложения. Transformationозначает применение правил преобразования к данным, чтобы они стали пригодными для аналитической отчетности. Вloading Процесс включает перемещение данных в целевую систему, обычно в хранилище данных.
Три уровня, участвующие в цикле ETL:
Staging Layer - Промежуточный уровень используется для хранения данных, извлеченных из различных исходных систем данных.
Data Integration Layer - Уровень интеграции преобразует данные из промежуточного уровня и перемещает данные в базу данных, где данные организованы в иерархические группы, часто называемые dimensions, а также в факты и совокупность фактов. Комбинация таблиц фактов и измерений в системе DW называетсяschema.
Access Layer - Уровень доступа используется конечными пользователями для получения данных для аналитической отчетности.
Инструмент ETL используется для извлечения данных из разных источников данных, преобразования данных и загрузки их в систему DW. В отличие от этого, инструмент бизнес-аналитики используется для создания интерактивных и специальных отчетов для конечных пользователей, информационной панели для высшего руководства, визуализации данных для ежемесячных, ежеквартальных и ежегодных заседаний совета директоров.
Наиболее распространенные инструменты ETL включают в себя - SAP BO Data Services (BODS), Informatica, Microsoft - SSIS, Oracle Data Integrator ODI, Talend Open Studio, Clover ETL с открытым исходным кодом и т. Д.
Наиболее распространенные инструменты бизнес-аналитики: SAP Business Objects, SAP Lumira, IBM Cognos, JasperSoft, Microsoft BI Platform, Tableau, Oracle Business Intelligence Enterprise Edition и т. Д.
Популярные инструменты ETL, доступные на рынке:
- Informatica - Power Center
- IBM - Websphere DataStage (ранее известный как Ascential DataStage)
- SAP - СУБД Business Objects Data Services BODS
- IBM - Cognos Data Manager (ранее известный как Cognos Decision Stream)
- Microsoft - службы интеграции SQL Server SSIS
- Oracle - Data Integrator ODI (ранее известный как Sunopsis Data Conductor)
- SAS - Студия интеграции данных
- Oracle - Строитель складов
- ABInitio
- Открытый исходный код Clover ETL
Промежуточная область - это промежуточная область, которая находится между источниками данных и системами хранилищ данных / витрин данных. Промежуточные области могут быть спроектированы так, чтобы обеспечить множество преимуществ, но основными мотивами для их использования являются повышение эффективности процессов ETL, обеспечение целостности данных и поддержка операций по обеспечению качества данных.
Хранилище данных - это более широкое понятие по сравнению с интеллектуальным анализом данных. Интеллектуальный анализ данных включает извлечение скрытой информации из данных и ее интерпретацию для будущих прогнозов. В отличие от этого, хранилище данных включает в себя такие операции, как аналитическая отчетность для создания подробных отчетов и специальных отчетов, обработка информации для создания интерактивных панелей мониторинга и диаграмм.
OLTP означает систему онлайн-обработки транзакций, которая обычно представляет собой реляционную базу данных и используется для управления повседневными транзакциями.
OLAP означает систему онлайн-аналитической обработки, которая обычно является многомерной системой и также называется хранилищем данных.
Предположим, компания продает свою продукцию покупателям. Каждая продажа - это факт, происходящий внутри компании, и таблица фактов используется для записи этих фактов. В каждой таблице фактов хранятся первичные ключи для присоединения таблицы фактов к таблицам измерений и мерам / фактам.
Example - Fact_Units
Cust_ID | Prod_Id | Time_Id | Количество проданных единиц |
---|---|---|---|
101 | 24 | 1 | 25 |
102 | 25 | 2 | 15 |
103 | 26 | 3 | 30 |
В таблице измерений хранятся атрибуты или измерения, описывающие объекты в таблице фактов. Это набор сопутствующих таблиц к таблице фактов.
Example - Dim_Customer
Cust_id | Cust_Name | Пол |
---|---|---|
101 | Джейсон | M |
102 | Анна | F |
Витрина данных - это простая форма хранилища данных, ориентированная на одну функциональную область. Обычно он получает данные только из нескольких источников.
Example - В организации витрины данных могут существовать для финансов, маркетинга, отдела кадров и других отдельных отделов, в которых хранятся данные, относящиеся к их конкретным функциям.
Агрегатные функции используются для группировки нескольких строк в одном столбце для формирования более значимого измерения. Они также используются для оптимизации производительности, когда мы сохраняем агрегированные таблицы в хранилище данных.
Общие агрегатные функции -
MIN | возвращает наименьшее значение в данном столбце |
МАКСИМУМ | возвращает наибольшее значение в данном столбце |
СУММ | возвращает сумму числовых значений в данном столбце |
AVG | возвращает среднее значение данного столбца |
COUNT | возвращает общее количество значений в данном столбце |
COUNT (*) | возвращает количество строк в таблице |
Example
SELECT AVG(salary)
FROM employee
WHERE title = 'developer';
Операторы языка определения данных (DDL) используются для определения структуры или схемы базы данных.
Examples -
CREATE - создавать объекты в базе данных
ALTER - изменяет структуру базы данных
Операторы языка манипулирования данными (DML) используются для управления данными в базе данных.
Examples -
SELECT - извлекает данные из базы данных
INSERT - вставляет данные в таблицу
UPDATE - обновляет существующие данные в таблице
DELETE - удаляет все записи из таблицы, остается место для записей
Операторы языка управления данными (DCL) используются для управления доступом к объектам базы данных.
Examples -
GRANT - дает пользователю права доступа к базе данных
REVOKE - отменяет права доступа, предоставленные командой GRANT
Операторы используются для указания условий в операторе SQL и служат в качестве союзов для нескольких условий в операторе. Общие типы операторов:
- Арифметические операторы
- Операторы сравнения / отношения
- Логические операторы
- Установить операторы
- Операторы, используемые для отрицания условий
Общие операторы набора в SQL:
- UNION
- СОЮЗ ВСЕ
- INTERSECT
- MINUS
Операция пересечения используется для объединения двух операторов SELECT, но возвращает только те записи, которые являются общими для обоих операторов SELECT. В случае Intersect количество столбцов и тип данных должны совпадать. MySQL не поддерживает оператор INTERSECT. Запрос Intersect выглядит следующим образом -
select * from First
INTERSECT
select * from second
Операция «Минус» объединяет результат двух операторов Select и возвращает только тот результат, который принадлежит первому набору результатов. Минус-запрос выглядит следующим образом -
select * from First
MINUS
select * from second
Если вы выполняете «источник минус цель» и «цель минус источник», и если запрос «минус» возвращает значение, то это следует рассматривать как случай несовпадения строк.
Если минус-запрос возвращает значение, а пересечение счетчика меньше исходного счетчика или целевой таблицы, то исходная и целевая таблицы содержат повторяющиеся строки.
Group-by статья используется с select заявление для сбора аналогичных данных. HAVING очень похож на WHERE за исключением того, что содержащиеся в нем утверждения носят агрегированный характер.
Syntax -
SELECT dept_no, count ( 1 ) FROM employee GROUP BY dept_no;
SELECT dept_no, count ( 1 ) FROM employee GROUP BY dept_no HAVING COUNT( 1 ) > 1;
Example - Таблица сотрудников
Country | Salary |
Индия | 3000 |
НАС | 2500 |
Индия | 500 |
НАС | 1500 |
Group by Country
Country | Salary |
Индия | 3000 |
Индия | 500 |
НАС | 2500 |
НАС | 1500 |
Тестирование ETL выполняется перед переносом данных в производственную систему хранилища данных. Иногда это также называют балансировкой таблицы или согласованием производства.
Основная цель тестирования ETL - выявить и устранить дефекты данных и общие ошибки, которые возникают до обработки данных для аналитической отчетности.
В следующей таблице приведены ключевые особенности тестирования базы данных и ETL и их сравнение.
Функция | Тестирование базы данных | Тестирование ETL |
---|---|---|
Главная цель | Проверка данных и интеграция | Извлечение, преобразование и загрузка данных для отчетов BI |
Применимая система | Транзакционная система, в которой происходит бизнес-поток | Система, содержащая исторические данные, а не в среде бизнес-потока |
Общие инструменты на рынке | QTP, Selenium и др. | QuerySurge, Informatica и т. Д. |
Деловая потребность | Он используется для интеграции данных из нескольких приложений. Серьезное воздействие. | Он используется для аналитической отчетности, информации и прогнозирования. |
Моделирование | ER метод | Многомерный |
Тип базы данных | Обычно используется в системах OLTP. | Применяется к OLAP-системам |
Тип данных | Нормализованные данные с большим количеством соединений | Денормализованные данные с меньшим количеством объединений, большим количеством индексов и агрегатов. |
Тестирование ETL можно разделить на следующие категории в зависимости от их функции:
Source to Target Count Testing - Он включает в себя сопоставление количества записей в исходной и целевой системе.
Source to Target Data Testing- Это включает проверку данных между исходной и целевой системой. Он также включает в себя интеграцию данных и проверку пороговых значений, а также проверку дубликатов данных в целевой системе.
Data Mapping or Transformation Testing- Подтверждает сопоставление объектов в исходной и целевой системе. Это также включает в себя проверку функциональности данных в целевой системе.
End-User Testing- Это включает создание отчетов для конечных пользователей, чтобы проверить, соответствуют ли данные в отчетах ожидаемым. Это включает в себя поиск отклонений в отчетах и перекрестную проверку данных в целевой системе для проверки достоверности отчетов.
Retesting - Это включает в себя исправление ошибок и дефектов в данных в целевой системе и повторный запуск отчетов для проверки данных.
System Integration Testing - Он включает в себя тестирование всех отдельных систем, а затем объединение результатов для выявления отклонений.
Потеря данных в процессе ETL.
Неверные, неполные или повторяющиеся данные.
Система DW содержит исторические данные, поэтому объем данных слишком велик и действительно сложен для выполнения тестирования ETL в целевой системе.
Тестировщикам ETL обычно не предоставляется доступ для просмотра расписаний заданий в инструменте ETL. У них вряд ли есть доступ к инструментам BI Reporting, чтобы увидеть окончательный макет отчетов и данные внутри отчетов.
Сложно создать и построить тестовые примеры, поскольку объем данных слишком велик и сложен.
Тестировщики ETL обычно не имеют представления о требованиях к отчетам конечных пользователей и бизнес-потоке информации.
Тестирование ETL включает в себя различные сложные концепции SQL для проверки данных в целевой системе.
Иногда тестировщикам не предоставляется информация о сопоставлении от источника к цели.
Нестабильная среда тестирования приводит к задержкам в разработке и тестировании процесса.
Ключевые обязанности тестера ETL включают в себя:
Проверка таблиц в исходной системе - проверка подсчета, проверка типа данных, ключи не отсутствуют, данные дублируются.
Применение логики преобразования перед загрузкой данных: проверка пороговых значений данных, проверка суррогатного ky и т. Д.
Загрузка данных из промежуточной области в целевую систему: агрегированные значения и вычисляемые показатели, ключевые поля не отсутствуют, проверка счетчика в целевой таблице, проверка отчета BI и т. Д.
Тестирование инструмента ETL и его компонентов, тестовых случаев - создание, разработка и выполнение планов тестирования, тестовых примеров, инструмента тестирования ETL и его функций, тестовой системы DW и т. Д.
Преобразование - это набор правил, который генерирует, изменяет или передает данные. Преобразование бывает двух типов - Активное и Пассивное.
В активном преобразовании количество строк, создаваемых в качестве вывода, может быть изменено после того, как преобразование выполнено. Этого не происходит при пассивной трансформации. Информация проходит через тот же номер, который ей присвоен в качестве входных.
Разделение - это когда вы делите область хранилища данных на части. Обычно это делается для повышения производительности транзакций.
Если ваша система DW очень большая, потребуется время, чтобы найти данные. Разделение дискового пространства позволяет быстрее и проще находить и анализировать данные.
Разделение может быть двух типов - циклическое разделение и разделение по хешу.
При циклическом разделении данные равномерно распределяются между всеми разделами, поэтому количество строк в каждом разделе относительно одинаково. Разделение по хешу - это когда сервер использует хеш-функцию для создания ключей разделов для группировки данных.
Маплет определяет правила преобразования.
Сеансы определены для указания данных, когда они перемещаются из исходной системы в целевую.
Рабочий процесс - это набор инструкций, которые инструктируют сервер о выполнении задачи.
Отображение - это перемещение данных от источника к месту назначения.
Преобразование поиска позволяет получить доступ к данным из реляционных таблиц, которые не определены в документах сопоставления. Он позволяет обновлять медленно изменяющиеся таблицы измерений, чтобы определить, существуют ли записи в целевом объекте или нет.
Суррогатный ключ - это что-то, имеющее сгенерированные последовательностью числа, не имеющие смысла и предназначенное только для уникальной идентификации строки. Он не виден пользователям или приложению. Он также называется ключом кандидата.
Суррогатный ключ имеет номера, генерируемые последовательностью, не имеющие значения. Он предназначен для однозначной идентификации строк.
Первичный ключ используется для уникальной идентификации строк. Он виден пользователям и может быть изменен в соответствии с требованиями.
В таких случаях вы можете применить метод контрольной суммы. Вы можете начать с проверки количества записей в исходной и целевой системах. Выберите суммы и сравните информацию.
В этом тестировании тестировщик проверяет диапазон данных. Все пороговые значения в целевой системе необходимо проверить, чтобы убедиться, что они соответствуют ожидаемому результату.
Example - Атрибут Возраст не должен иметь значение больше 100. В столбце Дата ДД / ММ / ГГ поле месяца не должно иметь значения больше 12.
Select Cust_Id, Cust_NAME, Quantity, COUNT (*)
FROM Customer GROUP BY Cust_Id, Cust_NAME, Quantity HAVING COUNT (*) >1;
Если первичный ключ не определен, могут появиться повторяющиеся значения.
Дублирование данных также может возникать из-за неправильного сопоставления и ошибок вручную при передаче данных из источника в целевую систему.
Регрессионное тестирование - это когда мы вносим изменения в правила преобразования и агрегирования данных, чтобы добавить новые функции и помочь тестировщику находить новые ошибки. Ошибки, которые появляются в данных, поступающих при регрессионном тестировании, называются регрессией.
Три подхода - нисходящий, восходящий и гибридный.
Наиболее распространенные сценарии тестирования ETL:
- Проверка структуры
- Проверка документа сопоставления
- Проверить ограничения
- Проверка согласованности данных
- Проверка полноты данных
- Проверка правильности данных
- Проверка преобразования данных
- Проверка качества данных
- Нулевое подтверждение
- Дублирующая проверка
- Проверка даты проверки
- Полная проверка данных с использованием минус-запроса
- Другие сценарии тестирования
- Очистка данных
Очистка данных - это процесс удаления данных из хранилища данных. Он удаляет ненужные данные, такие как строки с нулевыми значениями или лишними пробелами.
Косметическая ошибка связана с графическим интерфейсом приложения. Это может быть связано со стилем шрифта, размером шрифта, цветами, выравниванием, орфографическими ошибками, навигацией и т. Д.
Это называется ошибкой, связанной с анализом граничных значений.
Вы можете сделать это, создав переменную сопоставления и отфильтрованное преобразование. Возможно, вам потребуется создать последовательность, чтобы иметь нужную вам специально отсортированную запись.
Value comparison- Он включает сравнение данных в исходной и целевой системах с минимальным преобразованием или без него. Это можно сделать с помощью различных инструментов тестирования ETL, таких как преобразование квалификатора источника в Informatica.
Столбцы критических данных можно проверить путем сравнения различных значений в исходной и целевой системах.
Вы можете использовать операторы Minus и Intersect для проверки полноты данных. Когда вы выполняете "источник минус цель" и "цель минус источник", а запрос "минус" возвращает значение, это означает несоответствие строк.
Если минус-запрос возвращает значение, а пересечение счетчика меньше исходного счетчика или целевой таблицы, то существуют повторяющиеся строки.
Shortcut Transformationссылка на объект, доступный в общей папке. Эти ссылки обычно используются для различных источников и целей, которые должны использоваться разными проектами или средами.
В Менеджере репозитория ярлык создается путем присвоения статуса «Общий». Позже объекты можно будет перетаскивать из этой папки в другую папку. Этот процесс обеспечивает единую точку управления для объекта, и несколько проектов не имеют всех источников и целевых объектов импорта в своих локальных папках.
Reusable Transformation является локальным для папки. Example- Генератор многоразовой последовательности для присвоения складских идентификаторов Клиентов. Полезно загружать сведения о клиенте из нескольких исходных систем и назначать уникальные идентификаторы каждому новому ключу источника.
Когда вы присоединяете одну таблицу к самой себе, это называется самосоединением.
Нормализация базы данных - это процесс организации атрибутов и таблиц реляционной базы данных для минимизации избыточности данных.
Нормализация включает в себя декомпозицию таблицы на менее избыточные (и меньшие) таблицы, но без потери информации.
Не содержащая фактов таблица фактов - это таблица фактов, не имеющая никаких мер. По сути, это пересечение измерений. Есть два типа таблиц без фактов: одна предназначена для записи события, а другая - для описания условий.
Медленно изменяющиеся размеры относятся к изменяющемуся значению атрибута во времени. SCD бывают трех типов - Тип 1, Тип 2 и Тип 3.