ETL (extract, transform, load)

advertisement
ETL (extraction, transformation, loading)
ETL - комплекс методов, реализующих процесс переноса исходных данных
из различных источников в аналитическое приложение или
поддерживающее eгo хранилище данных.
 Исходные данные расположены в источниках самых разнообразных
типов и форматов, созданных в различных приложениях, в то время
как для решения задач анализа данные должны быть преобразованы в
единый универсальный формат, который поддерживается ХД и
аналитическим приложением.
 Данные в источниках обычно излишне детализированы, тorдa как для
решения задач анализа в большинстве случаев требуются обобщенные
данные.
 Исходные данные, как правило, являются «гpязными», то есть
содержат различные факторы, которые мешают их корректному
анализу.
Основные цели и задачи процесса ETL
 Извлечение дaнных. На этом этапе данные извлекаются из одного или
нeскольких источников и подrотавливаются к преобразованию.
Следует отметить, что для кoppeктнoгo представления данных после их
заrрузки в ХД из источников должны извлекаться не только сами
данные, но и информация, описывающая их структуру, из которой
будут сформированы метаданные для хранилища.
 Преобразование данных. Производятся преобразование форматов и
кодировки данных, а также их обобщение и очистка.
 Загрузка дaнных - запись преобразованных данных в
соответствующую систему хранения.
Обобщенная структура процесса ETL
Потоки данных в ETL
Извлечение данных в ETL
При разработке процедуры извлечения данных в первую очередь
необходимо определить регламент загрузки ХД и, соответственно, частоту
выгрузки данных из ОLТР-систем или отдельных источников, Например,
выгрузка может производиться по истечении заданного временного
интервала (день, неделя, месяц или квартал). В некоторых случаях
предусматривается возможность внерегламентноrо извлечения данных
после завершения определенного бизнес-события (приобретение новoгo
бизнеса, открытие филиала, поступление большой партии товаров).
Выгpузка данных занимает определенное время, которое так и
называют «окно выrpузки». Его стараются выбрать так, чтобы оно в
минимальной степени влияло на рабочий процесс, например в обеденный
перерыв, сразу по завершении рабочего дня или ночью.
Извлечение данных с помощью специализированных программных средств:
Извлечение данных средствами той системы, в которой они хранятся
Выбор используемых источников данных
Все источники можно разделить на две группы: расположенные в
корпоративных информационных системах и на локальных компьютерах
отдельных пользователей.
компьютерах часто собирается очень ценная для анализа информация.
Поэтому при выборе источников данных для загpузки в ХД необходимо
учитывать следующие факторы:




значимость данных с точки зрения анализа;
сложность получения данных из источников;
возможное нарушение целостности и достоверности данных;
объем данных в источнике.
Как правило, приходится искать компромисс между этими факторами.
Особенности организации процесса извлечения данных
Все ли имеющиеся в источниках данные нужны в ХД?
Если извлекать нужно не все записи подряд, а только определенные,
аналитик может описать набор условий, которые позволят отобрать только
записи, представляющие интерес. Например, можно поставить условие, что
записи, которые содержат информацию о продажах на сумму меньше
заданной, извлекать и помещать в ХД не нужно, поскольку их ценность с
точки зрения результатов анализа .ничтожна,
Другой важный момент определение глубины выгpузки данных по
времени. Очевидно, что все записи понадобятся только при первичном
заполнении хранилища. В процессе eгo пополнения из источников должны
извлекаться лишь те записи, которые добавлялись или изменялись после
прошлого извлечения.
При повторных загpузках ХД важно не только определить глубину
выгpузки, но и организовать поиск измененных данных вообще. Для этой
цели разработаны различные методики, например использование меток
времени.
Особенности извлечения данных из различных типов источников



Базы данных (SQL Server, Oracle, Firebird, Access и т. д.)
Структурированные файлы различных форматов. (например, Excel, СSV
файлы, НТМL- документы и т. д.).
Неструктурированные источники.
Очистка данных в EТL
Два уровня очистки данных
Наличие «грязных» данных - одна из важнейших и трудно
формализуемых проблем аналитических технологий вообще и ХД в
частности. Очистка данных обязательна при их перегрузке в хранилище, и
при разработке стратегии ETL этому уделяется большое внимание, Следует
отметить, что, помимо очистки данных перед их загpузкой в хранилище,
пользователь может выполнить дополнительную очистку средствами
аналитической системы уже после выполнения запроса к ХД.
Вторичная очистка данных, предусмотренная в аналитической системе,
по своим методам и целям существенно отличается от очистки данных в
процессе ETL. Целесообразность применения тoгo или иного метода очистки
данных, полученных в результате запроса из ХД. определяется
пользователем, исходя из особенностей конкретной задачи анализа. При
этом часто используется субъективное мнение аналитика, основанное на
личном опыте. Например, одному специалисту гладкость ряда данных
покажется недостаточной для решения определенной задачи анализа и он
применит процедуру cглаживания для очистки от шумов или аномальных
значений. В то же время другой аналитик скажет, что в результате
сглаживания вместе с шумом и аномалиями подавлены изменения, несущие
полезную информацию.
Некоторые виды ошибок (например, противоречия и аномальные
значения) могут быть обнаружены только после консолидации данных,
Действительно, нельзя сделать вывод, что некоторое значение является
аномальным, пока не произведено eгo сравнение с соседними значениями.
Критерии оценки качества данных
Чтобы разработать методику очистки данных в процессе ETL,
необходимо определить критерии оценки их качества, Одним из таких
критериев является критичность ошибок. В этой связи данные могут быть
разделены на три категории:
 данные выcoкoгo качества, не нуждающиеся в очистке;
 данные, содержащие критичные ошибки, из-за которых они в
принципе не могryт быть загружены в ХД (например, буква или пробел в
числовом значении, неправильный разделитель целой и дробной частей
числа и т. д,).
 данные, содержащие некритичные ошибки, которые не мешают
их заrрузке в ХД, но при этом данные являются некорректными с точки
зрения их анализа (аномальные значения, пропуски, дубликаты,
противоречия и т. д.). Они могут быть исправлены в процесс е анализа
данных cpeдствами аналитической системы.
Основные виды проблем в данных, из-за которых они нуждаются в очистке





корректность форматов и представлений данных;
уникальность первичных ключей в таблицах БД;
полнота и целостность данных;
полнота связей;
соответствие некоторым аналитическим ограничениям и т. д.
На уровне отдельной ячейки таблицы
Орфографические ошибки или опечатки (название фирмы, название города
и т.п.
Пропуски данных - из-за ошибки оператора или отсутствия информации.
Например, что означает отсутствие информации о продажах в супермаркете
на определенную дату?
На этапе очистки данных в ETL необходимо разработать методику
восстановления пропущенных данных, которая как минимум делала бы их
корректными с точки зрения совместимости со структурой хранилища. Что
касается корректности с точки зрения анализа, то большинство
аналитических систем содержит средства восстановления пропущенных
данных способом, который предпочтет аналитик (начиная от установки
значения вручную до применения сложных статистических методов).
Фиктивные значения - данные, не имеющие смысла, никак не связанные с
описываемым ими бизнес-процессом. Подобная ситуация возможна, если
оператор системы OLTP, не располагая необходимой информацией, ввел в
ячейку произвольную последовательность символов.
Логические несоответствия возникают, если значение в ячейке не
соответствует логическому смыслу поля таблицы. Например, вместо
наименования фирмы указан ее банковский счет,
Закодированные значения - сокращения, аббревиатуры, замена
наименований числовыми кодами.
Составные значения появляются в файлах, rде структура полей жестко не
задана, например в обычных текстовых файлах, электронных таблицах и т. д.
Примеры – адрес, ФИО.
На уровне записи
возникают в основном проблемы противоречивости данных в различных
ячейках. Например, сумма, на которую был продан товар, не соответствует
произведению цены за единицу и количества проданных единиц.
На уровне таблицы
основными проблемами являются дублирующие и противоречивые записи.
На уровне отдельной БД
основной проблемой является нарушение целостности данных, которое
заключается в том, что происходит рассогласование между различными
объектами БД.
На уровне множества БД
возникают проблемы, связанные с отличиями структуры данных в различных
базах:
 различные правила назначения имен полей (например, различное
число символов, допустимых в имени поля, наличие пробелов,
символов национальных алфавитов и т, д.);
 различия в используемых типах полей;
 одинаковые названия полей для разных атрибутов (например, в одном
источнике данных поле Name содержит названия фирм, а в друrом наименования товаров );
 различная временная шкала (например, данные, описывающие один и
тот же бизнес-процесс, хранятся в двух разных файлах, но в одном из
них представлена ежедневная информация, а в другом еженедельная).
Необходимо помнить, что полностью очистить данные удается очень редко.
Существуют проблемы, которые не получается решить независимо от
степени приложенных усилий. Бывают случаи, когда некорректное
применение методов очистки данных только усугyбляет ситуацию. Иногда
использование очень сложных алгоритмов очистки увеличивает время
переноса данных в ХД до неприемлемой величины. Поэтому не всегдa
следует стремиться к полной очистке данных. Лучше обеспечить компромисс
между сложностью используемых алгоритмов, затратами на вычисление,
временем, требуемым на очистку, и ее результатами.
Преобразование данных в ETL
В процессе преобразования данных в рамках ETL чаще всегo выполняются
следующие операции:
 преобразование структуры данных;
 агpегирование данных;
 перевод значений;
 создание новых данных;
 очистка данных.
Преобразование структуры данных
Во многих случаях данные поступают в хранилище, интегpируясь из
множества источников, которые создавались с помощью различных
прогpаммных средств, методологий, соглашений, стандартов и т. д. Данные
из таких источников могут отличаться своей структурной организацией:
соглашениями о назначении имен полей и таблиц, порядком их описания,
форматами, типами и кодировкой данных, например точностью
представления числовых данных, используемыми разделителями целой и
дробной частей, разделителями гpупп разрядов и т, д. Следовательно, во
многиx случаях извлеченные данные непригодны для непосредственной
загpузки в ХД из-за отличия их структуры от структуры соответствующих
целевых таблиц ХД. При этом если таблицы фактов чаще вceгo соответствуют
требованиям ХД, то таблицы измерений нуждаются в дополнительной
обработке и, может быть, объединении.
Аrреrирование данных
Системы оперативной обработки данных содержат данные с максимальной
степенью детализации - сведения о ежедневных продажах или даже о
каждом факте продажи в отдельности, об обслуживании каждого клиента и
т, д. Элементарные события, из которых состоит бизнес-процесс, например
обслуживание одного клиента, выполнение одного заказа и т. д, которые
также называют атомарными, по своей сути являются случайными
величинами, подверженными влиянию множества различных случайных
факторов от погоды до настроения клиента.
Иными словами, для достоверного описания предметной области
наибольший интерес для анализа представляют данные, обобщенные по
некоторому интервалу времени, по гpуппе клиентов, товаров и т. д. Такие
обобщенные данные называются агрегированными (иногда агрегатами), а
сам процесс их вычисления – агрегированием
В результате агрегирования большое количество записей о каждом событии
в 6изнес-процессе заменяется относительно небольшим количеством
записей, содержащих агрегированные значения. Например, вместо
информации о каждой из 365 ежедневных продаж в году в результате
агрегирования будут храниться 52 записи с обобщением по неделям, 12 по
месяцам или 1 за год. Если цель анализа - разработка прогноза продаж, то
для краткосрочного оперативного прогноза достаточно использовать данные
по неделям, а для долrосрочного стратеrического прогноза по месяцам или
даже по годам. Основные операции – Сумма, Максимум, Минимум,
Количество уникальных значений, Количество, Медиана (центральная
величина, либо среднее от двух центральных).
Перевод значений
Часто данные в источниках хранятся с использованием специальных
кодировок, которые позволяют сократить избыточность данных и тем самым
уменьшить объем памяти, требуемой для их хранения. Так, наименования
объектов, их свойств и признаков могут храниться в сокращенном виде. В
этом случае перед загрузкой данных в хранилище требуется выполнить
перевод таких сокращенных значений в более полные и, соответственно,
понятные.
Кроме тoгo, часто возникает необходимость конвертировать числовые
данные, например преобразовать вещественные в целые, уменьшить
избыточную точность представления чисел, использовать экспоненциальный
формат итд.
Создание новых данных
В процессе зaгpузки в ХД может понадобиться вычисление некоторых новых
данных на основе существующих, что обычно сопровождается созданием
новых полей. Haпример, О LТР система содержит информaцию только о
количестве и цене проданногo товара, а в целевой таблице ХД нужно
вычислить поле Сумма.
Еще одним возможным примером новых данных, создаваемых в процессе
обработки, являются экономические, финансовые и друrие показатели,
которые могут быть вычислены на основе имеющихся данных. Так, на основе
данных о продажах можно рассчитать рейтинr популярности товаров
(например, по пятибалльной системе).
Создание новой информации на основе имеющихся данных тесно связано с
таким важным процессом, как обогащение данных, которое может
производиться (частично или полностью) на этапе преобразования данных в
ETL. Aгpегирование также может рассматриваться как создание новых
данных.
Выбор места для выполнения преобразований данных
Преобразование в процессе извлечения данных. На данном этапе лучше
вceгo выполнять преобразование типов данных и про изводить фильтрацию
записей, представляющих интерес для ХД. в идеальном случае должны
отбираться только те записи, которые изменялись или создавались после
прошлой загрузки. Недостаток - повышение нaгрузки на ОLТР систему или
БД.
Преобразование в промежуточной области перед загрузкой данных в
хранилище наилучший вариант для интеграции данных из множества
источников, поскольку в процессе извлечения данных, очевидно, этого
сделать нельзя, В промежуточной области целесообразно выполнять такие
виды преобразований, как сортировка, группировка, обработка временных
рядов и т. п.
Преобразование в nроцессе загрузки данных в ХД. Отдельные простые
преобразования, например преобразование реrистров букв в текстовых
полях, могут быть выполнены только после загpузки данных в хранилище.
Заrрузка данных в хранилище
Первыми в процессе загpузки данных в ХД обычно загpужаются таблицы
uзмерений, которые содержат суррогатные ключи и другyю описательную
информацию, необходимую для таблиц фактов.
При загрузке таблиц измерений требуется и добавлять новые записи, и
изменять существующие. При загpузке таблицы фактов новая информация
обычно добавляется в конец таблицы, чтобы не изменять существующие
данные.
Последовательность действий при наличии отклоненных эаписей в
процедуре эаrpуэки в ХД
Постзагрузочные операции
После завершения загрузки выполняются дополнительные операции
над дaнными, только что загpуженными в ХД, перед тем как сделать их
доступными для пользователя. Такие операции называются
постзагрузочными. К ним относятся переиндексация, верификация данных
и т. д. С точки зрения аналитика, наиболее важной задачей является
верификация данных. Прежде чем использовать новые данные для анализа,
полезно убедиться в их надежности и достоверности. Для этих целей можно
предусмотреть комплекс верификационных тестов. Например:
 при суммировании продаж по одному измерению результат
должен совпадать с соответствующей суммой, полученной по другому,
связанному с ним измерению, то есть сумма продаж по всем товарам за
месяц должна соответствовать сумме сделок, заключенных со всеми
клиентами за тот же период;
 итоговый показатель за месяц должен соответствовать сумме
ежедневных или еженедельных показателей в этом месяце;
 суммарная выручка по всем регионам за текущий месяц должна
соответствовать сумме продаж по всем региональным дилерским центрам.
Кроме того, может оказаться полезным сравнивать данные не только в
различных разрезах после их загpузки в ХД, но и с источниками данных. Так,
если значения кaкoгo- либо показателя в источнике и хранилище равны, то
все нормально, в противном случае данные, возможно, некорректны.
Преимущества и недостатки отказа от хранилищ данных
Главным преимуществом, которое дает использование хранилищ данных в
аналитических технологиях, является повышение эффективности и
достоверности анализа данных, особенно для поддержки принятия
стратегических решений. Это достигается за счет оптимизации скорости
доступа к данным, возможности интеграции данных различных форматов и
типов, автоматической поддержки целостности и непротиворечивости,
обеспечения хронологии и истории дaнных.
Проблемы, возникающие при прямом доступе к источникам данных
 Необходимость самостоятельно определять тип и формат источника
данных.
 Отсутствие полноценного семантического слоя тoгo уровня, который
имеется в ХД.
 Отсутствие жесткой поддержки структуры и форматов данных.
 Отсутствие автоматических средств поддержки целостности,
непротиворечивости и уникальности данных.
 Отсутствие средств автоматического агpегирования и создания новых
данных.
 Отсутствие средств автоматического контроля ошибок и очистки.
 Необходимость настройки механизмов доступа к источникам данных.
Преимущества использования непосредственного доступа к источникам
данных
Отсутствие ЕТL-процесса снимает проблему «окна загpузки», то есть
промежутка времени, в течение которoго производятся загpузка ХД и
сопутствующие ей операции, Обычно во время «окна загpузки» нагpузка на
систему предприятия резко возрастает, а производительность работы
пользователей, наоборот, падает, при этом само ХД может оказаться
частично или полностью недоступным.
Возможность внерегламентного использования источников данных,
обычно если загрузка новой информации в ХД осуществляется раз в неделю,
а непосредственный доступ к источникам данных не предусмотрен, то
пользователю приходится ждать, пока данные не появятся в ХД и не станут
доступными,
Возможность получать для анализа данные, которые почему либо не попали
в хранилище (например, по техническим причинам как не представляющие
ценности). Кроме тoгo, у сотрудников организаций часто накапливаются
дaнные, собранные ими для собственного использования, На первый взгляд
такие данные кажутся свалкой информационноrо мусора (чем чаще вceгo и
являются), поскольку при их сборе и организации используются
нестандартные методы, отличные от тех, которые при меняются при сборе и
консолидации данных через хранилище. Однако именно благодаря этому на
основе таких данных можно получить очень интересные и нестандартные
аналитические решения.
Пользователь имеет возможность работать с данными в их «первозданном»
виде, что представляет особый интерес, поскольку при загрузке данных в ХД
в них вносятся изменения, которые в некоторых случаях влияют на их
изначальный смысл.
Обогащение данных
Очевидно, что данные, собираемые для задач анализа, должны быть
полными и достоверными, поскольку на основе неполных или
недостоверных данных нельзя сделать прав ильные выводы о состоянии
бизнеса и путях eгo совершенствования.
Помимо достоверности и полноты данных, существует еще один фактор,
непосредственно влияющий на эффективность их анализа информационная насыщенность.
Приступая к анализу данных с целью поиска скрытых закономерностей и
извлечения знаний, мы должны задаться рядом вопросов.
 Имеют ли эти данные вообще какой-нибудь смысл? Присутствует ли в
них какая-либо информация?
 Если да, то насколько эта информация надежна и достоверна?
 Достаточно ли этой информации для генерирования надежных и
достоверных знаний, на основе которых можно принимать ответственные
управленческие решения?
Обогащение данных - процесс насыщения данных новой информацией.
которая позволяет сделать их более ценными и значимыми с точки
зрения решения той или иной аналитической задачи.
Внешнее обогaщенuе предполагает привлечение дополнительной
информации из внешних источников, что позволит повысить ценность и
значимость данных с точки зрения их анализа.
Внутреннее обогaщенuе не предполагает привлечения внешней
информации. В этом случае повышение информативности и значимости
данных может быть достигнуто за счет изменения их организации.
ПРИ МЕР
Рассмотрим пример внyтpeннeгo обогащения. Руководство предприятия
поставило задачу выработать новую политику взаимодействия с
поставщиками в зависимости от их надежности. Были разработаны
критерии, в соответствии с которыми определялась степень надежности
поставщиков, в результате чего все поставщики разбивались на три
категории - надежные, средние и ненадежные. Степень надежности
конкретного поставщика определялась как произведение общего числа
дней задержки поставок за квартал на стоимость поставок (степень
близко к 0 – надежный поставщик, степень сильно больше 0 –
ненадежный). То есть поставщик, часто задерживающий мелкие поставки,
но в целом соблюдающий график серьезных поставок, будет
рассматриваться как надежный партнер. В то же время поставщик,
который задерживает крупные поставки, пусть даже и редко, но
соблюдает график мелких поставок, будет рассматриваться как
потенциально ненадежный партнер. Информацию о задержках и суммах
поставок можно получить из документов о поступлении товара в учетной
системе. После соответствующих вычислений и сравнений в таблицу ХД,
где находится информация о поставщиках, будет добавлено новое поле, в
котором для каждого из них будет указана категoрия надежности.
Дальнейший анализ в области поставок может производиться с
использованием новых данных.
Таким же образом можно создавать рейтинги сотрудников для их
поощрения и продвижения по службе, рейтинги популярности товаров и
т. д.
Download