Наполнение хранилища данных

 

После создания структуры хранилища данных оно представляет с собой пустой файл с настроенным семантическим слоем. В таком виде ХД готово к загрузке в него данных из внешних структурированных источников. Для этого необходимо написать соответствующий сценарий в Deductor Studio. Он должен выполнять следующие функции:

□ импорт данных в Deductor Studio из базы данных, учетной системы или предопределенных файлов;

□ опциональную предобработку данных, например очистку или преобразование формата;

□ загрузку данных в измерения и процессы хранилища Deductor Warehouse.

В нашем примере исходными данными для ХД служат четыре текстовых файла: Группы товаров.txt, Товары.txt, Отделы.txt, Продажи.txt. Поэтому сценарий загрузки должен быть настроен на использование этих файлов в качестве источников данных (рис. 2.12).

При создании сценария необходимо строго придерживаться следующих правил.

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

□ Измерения нужно загружать, начиная с самого верхнего уровня иерархии и спускаясь ниже. Это крайне важно: в противном случае иерархия не будет создана.

 

Рис. 2.12 Схема сценария загрузки

 

□ Допускается не загружать отдельно измерения, не имеющие атрибутов и не состоящие в иерархии измерений. Значения таких измерений можно создавать во время загрузки в процесс с помощью специальной опции.

Поясним второе правило (рис. 2.13). Измерение Группа находится в иерархии выше измерения Товар, поэтому последовательность загрузки измерений будет следующая: Группа, Товар.

 

Рис. 2.13. Иерархия измерений

 

Импортируйте все четыре текстовых файла в Deductor в том порядке, как это показано на рис. 2.14. Для этого из контекстного меню или нажатием клавиши F6 нужно вызвать Мастер импорта, выбрать тип источника – текстовый файл и настроить параметры импорта. Последовательность создания узлов импорта должна быть такой, чтобы первыми следовали узлы импорта из файлов с таблицами измерений, и только в конце – таблица процесса Продажи.txt. Менять порядок веток сценария можно при помощи кнопок CTRL + ↑ и CTRL + ↓.

Покажем последовательность загрузки данных в измерение на примере первого измерения Группа.Код. Встав на первом узле, вызовите Мастер экспорта (контекстное меню или клавиша F8). Из списка типа приемников выберите Deductor Warehouse (рис. 2.15).

На следующей вкладке из списка доступных хранилищ выберите нужное под названием «Фармация». Далее требуется указать, в какое именно измерение будет загружаться информация. Это Группа.Код (рис. 2.16).

 

Рис. 2.14. Сценарий в Deductor

 

Рис. 2.15. Экспорт в хранилище данных

 

Рис. 2.16. Выбор объекта для экспорта

 

Осталось установить соответствие элементов объекта в хранилище данных с полями входного источника данных (то есть таблицы Группы товаров.txt). В случае, когда имена полей и (или) метки в семантическом слое хранилища данных совпадают, делать ничего не нужно (рис. 2.17).

 

Рис. 2.17. Настройка соответствия полей

Нажатие кнопки Пуск на следующем шаге загрузит в измерение данные. При этом старые данные, если они были, обновятся.

Проделав аналогичные действия еще для двух измерений – Отдел.Код, Товар.Код, получим следующий сценарий (рис. 2.18).

 

Рис. 2.18. Незаконченный сценарий загрузки данных в ХД

 

Загрузка измерений на этом заканчивается, несмотря на то что остались еще два измерения – Дата и Час. Но они не имеют атрибутов и не участвуют в иерархии, поэтому их значения можно загрузить на этапе экспорта в процесс.

Загрузите данные в процесс Продажи. В отличие от загрузки измерений, в Мастере экспорта появляются два специфических шага.

На одном из них нужно задать параметры контроля непротиворечивости данных в хранилище – указать измерения, по которым следует удалять данные из хранилища (рис. 2.19).

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

Рис. 2.19. Параметры для контроля непротиворечивости информации

 

Поясним операцию удаления на примере (рис. 2.20). Допустим, в хранилище имеется процесс с двумя измерениями: Клиент и Дата. Необходимо загрузить в хранилище данные о продажах за последние два дня. Если в наборе данных, который мы загружаем, имеются все сведения о продажах за эти два дня, то можно указать: «Удалять данные по измерению и выбрать таким измерением Дата». Программа определит, что по измерению Дата в исходных данных всего два значения, а потом удалит из хранилища в процессе Продажи всю информацию за эти два дня и загрузит новую.

 

Рис. 2.20. Иллюстрация контроля непротиворечивости

 

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

На последней странице Мастера экспорта лучше оставить настройки по умолчанию (рис. 2.21).

 

Рис. 2.21. Дополнительные параметры загрузки в процесс

 

Флажок Автоматически добавлять значения измерений позволяет «на лету» добавлять новые значения в существующие измерения. Но пользоваться опцией нужно с осторожностью. В случае бездумного ее применения можно очень быстро засорить хранилище данных, так как любое значение измерения, даже неверное, будет занесено как реально существующее.

Флажок Группировать данные перед загрузкой в хранилище полезен в следующей ситуации: вы до конца не уверены, что совокупность измерений процесса обеспечит уникальность точки в многомерном пространстве, и одновременно такой уровень детализации вас устраивает. В нашей задаче, если в таблице продаж встретятся две записи с одинаковыми значениями измерений (табл. 2.6), то при отсутствии установленного флажка Группировать данные... в хранилище попадет только вторая запись (последняя встретившаяся). Получится, что одна запись фактически поте­ряется, хотя нужно просуммировать значения полей Количество и Сумма.

Таблица 2.6

Случай, при котором совокупность измерений не дает уникальности

Дата Код отдела Код товара Час покупки Количество Сумма
16.12.2008 1 3381 18 2 196,0
16.12.2008 1 3381 18 1 98,0

 

В Мастере экспорта можно задать любой вариант агрегации данных (рис. 2.22). Когда есть уверенность, что совокупность измерений процесса обеспечивает уникальность точки в многомерном пространстве, группировку можно не производить – это сэкономит время.

 

Рис. 2.22. Дополнительные параметры загрузки в процесс

 

Окончательный сценарий загрузки приведен на рис. 2.23.

 

Рис. 2.23. Окончательный сценарий загрузки

 

В результате всех вышеописанных действий будет:

□ создано и наполнено хранилище данных;

□ написан сценарий загрузки (пополнения) информации из источников в ХД;

□ продуман контроль непротиворечивости данных в ХД.

Заметим, что сценарий загрузки привязан не к данным непосредственно, а к их структуре, то есть в нем смоделирована последовательность действий, которые нужно выполнить для загрузки информации в ХД: имена файлов-источников, соответствие полей и т.д. Один раз созданный сценарий впоследствии применяется для пополнения хранилища данных. Как правило, эти процедуры проводятся по регламенту в нерабочее время (например, ночью) с использованием пакетного или серверного режима.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: