268.66K
Категория: Базы данныхБазы данных

Преобразование данных

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
English     Русский Правила