Научная статья на тему 'КРАТКОЕ ОПИСАНИЕ ПРОЦЕССА ETL'

КРАТКОЕ ОПИСАНИЕ ПРОЦЕССА ETL Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
233
36
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЗАГРУЗКА / ОЧИСТКА

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Кузьмина Ю.В., Кубанских О.В.

В статье рассмотрены два подхода к описанию этапов процесса ETL: извлечение, преобразование и загрузка данных; или извлечение, очистка, соответствие структуры и доставка данных.In article two models of ETL systems are describes: extraction, transformation and loading of data; or extraction, cleaning, conforming and delivering of data.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «КРАТКОЕ ОПИСАНИЕ ПРОЦЕССА ETL»

УДК 004.4

КРАТКОЕ ОПИСАНИЕ ПРОЦЕССА ЕТЬ

Ю.В. Кузьмина, О.В. Кубанских

Брянский государственный университет имени академика И.Г. Петровского

В статье рассмотрены два подхода к описанию этапов процесса ЕТЬ: извлечение, преобразование и загрузка данных; или извлечение, очистка, соответствие структуры и доставка данных.

Ключевые слова: ETL, извлечение, преобразование, загрузка, очистка, соответствие структуры.

Хранилища данных в настоящее время набирают все большую популярность в связи с необходимостью компаний анализировать все большие объемы информации. Сложность заключается в том, что исходные данные содержатся в источниках с различной структурой и форматами данных. Процесс ЕТЬ служит для первоначального заполнения и последующего добавления данных в хранилище (рис.1).

Рис.1. Структура хранилища данных.

ETL (Extract, Transform, Load) - это процесс, использующийся в хранилищах данных. Включает в себя извлечение данных (Extract), когда данные извлекаются из однородных или разнородных источников; преобразование данных (Transform), когда данные преобразуются в надлежащий формат или структуру, необходимую для выполнения целей запросов или анализа; загрузку данных (Loading), когда данные загружаются в целевую базу данных, более специфичную, чем оперативная база данных, в витрину данных или хранилище данных [1] (рис.2).

Рис. 2. Традиционная модель ETL системы.

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

Рассмотрим эти три этапа традиционной модели ETL системы.

1. Извлечение (Extracting). Первая часть процесса ETL предусматривает извлечение данных из источников. Во многих случаях это представляет собой наиболее важный аспект ETL, поскольку правильное извлечение данных создает почву для успеха последующих процессов. Большинство хранилищ данных объединяют данные из различных систем -источников. Каждая отдельная система может также использовать другую организацию и / или формат данных. Общие форматы данных источников включают реляционные базы данных, XML и плоские файлы, но могут также включать в себя нереляционные структуры данных, такие как информационные системы управления (ИСУ) или другие структуры данных.

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

2. Преобразование (Transforming). На этапе преобразования данных к извлеченным данным применяется ряд правил или функций, чтобы подготовить их к загрузке в конечную цель.

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

• Выбор только определенных столбцов для загрузки;

• Перевод закодированных значений (например, если исходная система кодирует мужской пол "1", женский "2", а хранилище данных: мужской "M", женский "Ж");

• Кодирование значений свободной формы (например, преобразование "Муж" в "М")

• Получение нового расчетного значения (например, стоимость = кол-во * цена);

• Сортировка или упорядочение данных на основе списка столбцов для повышения производительности поиска;

• Объединение данных из нескольких источников (например, поиск, слияние) и дедупликации данных;

• Агрегирование (например, rollup - подведение итогов нескольких строк данных -общий объем продаж для каждого магазина, и для каждого региона, и т.д.);

• Создание суррогатных ключевых значений;

• Транспонирование или поворот (превращение столбцов в строки или наоборот);

• Расщепление столбца на несколько столбцов (например, преобразование списка слов, разделенных запятыми, в виде строки в одном столбце, в отдельные значения в разных колонках)

• Отделение повторяющихся столбцов;

• Просмотр и проверка соответствующих данных из таблиц или ссылочных файлов;

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

3. Загрузка (Loading). В зависимости от требований организации, процесс загрузки данных варьируется в широких пределах. Некоторые хранилища данных могут перезаписывать существующую информацию с кумулятивной информацией; обновление извлеченных данных часто делается на ежедневной, еженедельной или ежемесячной основе. Другие хранилища данных (или даже другие части того же хранилища данных) могут добавить новые данные в исторической форме через регулярные промежутки времени, например, каждый час.

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

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

Существует и другое применение процесса ЕТЬ: компании используют его, чтобы переместить информацию из одного приложения другому на постоянной основе. Например, новое приложение может использовать другого поставщика базы данных и, скорее всего, совсем другую схему базы данных. ЕТЬ может быть использован для преобразования данных в формат, подходящий для нового приложения.

Р. Кимбалл в [2] выделяет другие этапы ETL (рис.2).

Рис. 3. Модель ETL системы, предложенная Р. Кимбаллом.

1. Извлечение (Extracting). Необработанные данные, извлеченные из исходных систем, часто пишутся с некоторой реструктуризацией перед тем, как происходит значительное преобразование содержания. Данные от структурированных исходных систем (таких как базы данных или XML-файлы) часто пишутся в плоские файлы или реляционные таблицы на этом шаге. Это позволяет исходному извлечению быть простым и быстрым и позволяет легко перезапускать извлечение, если произошел сбой.

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

2. Очистка (Cleaning). В большинстве случаев уровень качества данных, приемлемого для исходных систем, отличается от качества, требуемого хранилищу данных. Качественная обработка данных может содержать много шагов. Вот некоторые из них:

• проверка на допустимые значения (например, почтовый индекс существует и входит в диапазон допустимых значений?),

• гарантия непротиворечивости значений (например, почтовый индекс соответствует городу?),

• удаление копий (например, тот же клиент появляется дважды с немного отличающимися атрибутами?),

• проверка сложных бизнес-правил и процедур (например, у платинового потребителя есть связанный расширенный кредитный статус?).

3. Соответствие (Conforming). Соответствие структуры данных требуется каждый раз, когда два или более источников данных объединены в хранилище данных. Отдельные источники данных не могут быть запрошены вместе, если хотя бы некоторые текстовые метки в этих источниках не идентичны и если подобные числовые показатели не рационализированы математически так, чтобы различия и отношения между этими показателями были целесообразны. Соответствие структуры данных - это больше, чем простая очистка данных. Оно требует общекорпоративного соглашения использовать стандартизированные домены и показатели.

4. Доставка (Delivering). Теперь нужно сделать данные готовыми к запросам. Заключительный шаг физически структурирует данные в простые, симметричные схемы, такие, как модель «звезда». Эти схемы значительно уменьшают время выполнения запроса и упрощают разработку приложений.

Таким образом, нами рассмотрены два подхода к определению этапов процесса ETL и дано краткое описание этих этапов.

Список литературы

1. Хоббс Л., Хилсон С., Лоуенд Ш. Oracle9iR2. Разработка и эксплуатация хранилищ данных. М.: Кудиц-образ., 2004.

2. Kimball R., Caserta J., The Data Warehouse ETL Toolkit. Wiley Publishing, inc., 2004.

Сведения об авторах

Кубанских О.В. - кандидат физико-математических наук, старший преподаватель кафедры информатики и прикладной математики Брянского государственного университета имени академика И.Г. Петровского»;

Кузьмина Ю.В. - магистрант Брянского государственного университета имени академика И.Г. Петровского», yuliya.kuzmina7@yandex.ru.

SHORT DESCRIPTION OF ETL PROCESS

Yu.V. Kuzmina, O.V. Kubanskikh

Bryansk State University named after Academician I. G. Petrovsky

In article two models of ETL systems are describes: extraction, transformation and loading of data; or extraction, cleaning, conforming and delivering of data.

Keywords: data warehouse, ETL, extract, transform, load, cleaning, conforming, delivering.

References

1. Hobbs L., Hilson S., Lawande S. Oracle 9iR2 Data Warehousing. M.:Kudits-obraz, 2004.

2. Kimball R., Caserta J. The Data Warehouse ETL Toolkit. Wiley Publishing, inc, 2004.

About authors

Kubanskikh O.V. - Candidate of Physical and Mathematical Sciences, senior teacher, Department of applied mathematics and computer science, Bryansk State University named after Academician I.G. Petrovsky.

Kuzmina Yu.V. - graduate student, Department of Applied Mathematics and Computer Science, Bryansk State University named after Academician I.G. Petrovsky, yuliya.kuzmina7@yandex.ru.

i Надоели баннеры? Вы всегда можете отключить рекламу.