Similar presentations:
Хранилища данных. Курс
1.
Курс«Хранилища данных»
Тема:
ETL – загрузка данных в ХД
Барабанщиков
Игорь Витальевич
2.
Этапы процесса ETLПосле того как данные извлечены из различных
источников и выполнены преобразование,
агрегация и очистка данных, осуществляется
последний этап ETL — загрузка данных в
хранилище.
2
3.
Загрузка данных в ХД• Процесс загрузки заключается в переносе
данных из промежуточных таблиц в
структуры ХД.
• От продуманности и оптимальности
процесса загрузки данных зависит время,
требуемое для полного цикла обновления
данных в ХД, а также полнота и
корректность данных в хранилище.
3
4.
Организация процесса загрузки• Первыми в процессе загрузки данных в ХД обычно
загружаются таблицы измерений, которые содержат
суррогатные ключи и другую описательную
информацию, необходимую для таблиц фактов.
• При загрузке таблиц измерений требуется и
добавлять новые записи, и изменять существующие.
Например, измерение Клиент может содержать
десятки тысяч клиентов, при этом информация
меняется только для незначительного их числа (не
более 10%). Нужно добавить данные о новых
клиентах и одновременно модифицировать
информацию о существующих.
4
5.
Загрузка в таблицы измеренийПри добавлении новых данных в таблицу измерений
требуется определить, не существует ли в ней
соответствующая запись.
• Если нет, то она добавляется в таблицу.
• В противном случае могут использоваться
различные способы обработки изменений в
зависимости от того, нужно ли поддерживать
старую информацию в хранилище с целью ее
последующего анализа.
Пример: если изменился только адрес клиента, то в
большинстве случаев нет необходимости хранить
старый адрес, поэтому запись может быть просто
обновлена.
5
6.
Загрузка в таблицу фактов• Выполняется после того,
как выполнена загрузка
в таблицы измерений.
• При загрузке таблицы
фактов новая
информация обычно
добавляется в конец
таблицы, чтобы не
изменять существующие
данные.
6
7.
Неполная загрузка данныхОдной из основных проблем данного этапа ETL является то,
что далеко не всегда данные загружаются полностью: в
загрузке некоторых записей может быть отказано.
Отклонение записей происходит по следующим причинам.
• На этапе преобразования данных не удалось исправить все
критичные ошибки, которые блокируют загрузку записей в
ХД.
• Некорректный порядок загрузки данных. Например,
предпринимается попытка загрузить факты для значения
измерения, которое еще не было загружено.
• Внутренние проблемы ХД, например недостаток места в
нем.
• Прерывание процесса загрузки или остановка его
пользователем.
7
8.
Неполная загрузка данных8
9.
Неполная загрузка данныхПри появлении данных, попытка загрузки которых
потерпела неудачу, необходимо предусмотреть
следующие действия :
• сохранить данные, не попавшие в ХД, в виде
таблицы или файла того же формата, что и исходная
таблица или файл (такие таблицы обычно называют
таблицами исключений);
• провести анализ отклоненных данных для
выявления причин, по которым они не были
загружены;
• при необходимости произвести дополнительную
обработку и очистку данных;
• после чего предпринять повторную попытку их
загрузки.
9
10.
Многопоточная загрузка данных• При очередной загрузке в ХД переносится не вся
информация из OLTP-системы, а только та, которая
была измена в течение промежутка времени,
прошедшего с предыдущей загрузки.
• При этом можно выделить два вида изменений —
добавление (вставка) и обновление (изменение).
• Добавление — в ХД передается новая, ранее не
существовавшая информация, например сведения о
продажах, произошедших с прошлой загрузки, о
появлении нового клиента, товара и т.д.
• Обновление — в ХД передается информация, которая
существовала ранее, но по какой-либо причине была
изменена или дополнена (например, изменился город,
в котором живет клиент).
10
11.
Потоки добавления и обновленияДля обеспечения этих функций загружаемые данные
распределяются по двум параллельным потокам:
• потоку добавления
• потоку обновления
11
12.
Итоги• Загрузка данных в ХД – важный этап в
процессе ETL.
• От продуманности и оптимальности
процесса загрузки данных зависит:
- время, требуемое для полного цикла
обновления данных в ХД,
- полнота и корректность данных в ХД.
12