Similar presentations:
Преобразование данных
1.
Курс«Хранилища данных»
Тема:
ETL – преобразование данных
Барабанщиков
Игорь Витальевич
2.
Процесс ETL: TransformКогда данные извлечены из рабочих систем,
они готовы к очистке и преобразованию в
общий формат.
2
3.
Преобразование данныхВ процессе преобразования данных в рамках ETL
чаще всего выполняются следующие операции :
• преобразование структуры данных;
• агрегирование данных;
• перевод значений;
• создание новых данных;
• очистка данных.
3
4.
Преобразование структуры данных• Данные поступают в ХД из множества
источников, которые создавались с помощью
различных программных средств, методологий,
соглашений, стандартов и т.д.
• Данные из таких источников могут
отличаться своей структурной организацией:
соглашениями о назначении имен полей и таблиц,
порядком их описания, форматами, типами и
кодировкой данных.
• Во многих случаях извлеченные данные
непригодны для непосредственной загрузки
в ХД из-за отличия их структуры от структуры
соответствующих целевых таблиц ХД.
4
5.
Агрегирование данных• В качестве источников данных для хранилищ
выступают системы оперативной обработки данных
(OLTP-системы).
• Общим свойством всех этих источников является то,
что они содержат данные с максимальной степенью
детализации.
• Для достоверного описания предметной области
использование данных с максимальным уровнем
детализации не всегда целесообразно.
• Наибольший интерес для анализа представляют
данные, обобщенные по некоторому интервалу
времени, по группе клиентов, товаров и т.д.
• Такие обобщенные данные называются
агрегированными (иногда агрегатами), а сам процесс
их вычисления — агрегированием.
5
6.
Агрегирование данных• В результате агрегирования
большое количество
записей о каждом событии в
бизнес-процессе заменяется
относительно небольшим
количеством записей,
содержащих
агрегированные значения.
• Пример: вместо информации
о каждой из 365 ежедневных
продаж в году в результате
агрегирования будут
храниться 52 записи с
обобщением по неделям, 12
— по месяцам или 1 — за
год.
6
7.
Способы вычисления агрегатовПри вычислении агрегатов может быть
использовано несколько способов:
• Среднее
• Сумма
• Максимум
• Минимум
• Количество уникальных значений
• Количество
• Медиана
7
8.
Стратегия агрегирования• Увеличение числа агрегатов в ХД приводит к
увеличению его размеров и сложности
структуры данных.
• Снижение числа агрегатов в ХД может
привести к необходимости их вычисления в
процессе выполнения аналитических запросов,
что увеличит время ожидания пользователя.
• Необходимо обеспечить разумный
компромисс между этими факторами.
• Создавайте только те агрегаты, которые с
большой долей вероятности понадобятся при
анализе данных.
8
9.
Перевод значений• Часто данные в источниках хранятся с
использованием специальных кодировок,
которые позволяют сократить избыточность
данных и уменьшить объем памяти,
требуемой для их хранения.
• Так, наименования объектов, их свойств и
признаков могут храниться в сокращенном
виде.
• В этом случае перед загрузкой данных в
хранилище требуется выполнить перевод
таких сокращенных значений в более полные
и, соответственно, понятные.
9
10.
Пример перевода значений• Согласно заведенному в организации порядку
идентификационный номер операции может
быть закодирован в виде 06–04–12–62, где 06–
04 — число и месяц, 12 — код товара, 62 —
код региона.
• Такое представление позволяет хранить
данные очень компактно.
• Однако для заполнения соответствующих
измерений в многомерной модели запись
необходимо декодировать.
10
11.
Создание новых данныхВ процессе загрузки в ХД может понадобиться
вычисление некоторых новых данных на основе
существующих, что обычно сопровождается созданием
новых полей.
• Например, OLTP-система содержит информацию только о
количестве и цене проданного товара, а в целевой таблице
ХД есть поле Сумма.
• Тогда в процессе преобразования необходимо вычислить
сумму как произведение цены на количество проданных
единиц товара.
• Таким образом, будет создано поле, содержащее новую
информацию.
Примеры новых данных, создаваемых в процессе обработки:
экономические, финансовые и другие показатели,
которые могут быть вычислены на основе имеющихся
данных.
11
12.
Грязные данные• Сбор данных в процессе ETL производится из
большого числа источников.
• В большинстве рабочих систем содержатся
«загрязненные» данные.
• Это значит, что в них могут присутствовать:
- дублирующиеся записи
- пропуски данных
- данные, содержащие недопустимые данные
- данные, ссылающиеся на несуществующие
первичные ключи.
12
13.
Причины загрязнения данных• Целостность и согласованность данных
должны обеспечивать бизнес-правила.
• В разных системах реализация бизнес-правил
выполняется по-разному:
- на уровне клиентского приложения
- на уровне сервера приложений
- на уровне БД (ограничения целостности)
- контроль бизнес-правил вообще не
выполняется.
• Сами бизнес-правила в разных системах так
же могут быть разными.
13
14.
Очистка данныхВ процессе ETL применяется очистка — процедура
корректировки данных, которые в каком-либо смысле
не удовлетворяют определенным критериям качества,
то есть содержат нарушения структуры данных,
противоречия, пропуски, дубликаты, неправильные
форматы и т.д.
14
15.
Выбор места для выполненияпреобразования данных
Преобразование данных может быть
выполнено на любом этапе ETL-процесса:
• Преобразование в процессе извлечения
данных.
• Преобразование в промежуточной области
перед загрузкой данных в хранилище.
• Преобразование в процессе загрузки
данных в ХД.
15
16.
Преобразование в процессеизвлечения данных
• На данном этапе лучше всего выполнять
преобразование типов данных и
производить фильтрацию записей,
представляющих интерес для ХД.
• В идеальном случае должны отбираться
только те записи, которые изменялись или
создавались после прошлой загрузки.
• Недостаток — повышение нагрузки на
OLTP-систему или БД.
16
17.
Преобразование в промежуточнойобласти
• Преобразование в промежуточной области
перед загрузкой данных в хранилище —
наилучший вариант для интеграции
данных из множества источников,
поскольку в процессе извлечения данных
этого сделать нельзя.
• В промежуточной области целесообразно
выполнять такие виды преобразований, как
сортировка, группировка, обработка
временных рядов и т.п.
17
18.
Преобразование в процессезагрузки данных в ХД
• Отдельные простые преобразования, например
преобразование регистров букв в текстовых
полях, могут быть выполнены только после
загрузки данных в хранилище.
• Таким образом, все операции преобразования,
которые могут потребоваться при переносе
данных в ХД, обычно не сосредотачиваются на
одном шаге ETL-процесса, а распределяются
по различным этапам в зависимости от того,
где выполнение преобразования более
эффективно.
18
19.
Итоги• Важным этапом создания ХД является разработка ETLпроцесса.
• Для реализации ETL можно использовать
специализированное ПО для интеграции данных из
разных источников.
• При использовании виртуальных ХД можно отказаться
от процесса ETL и работать напрямую с источниками
данных.
19