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

После создания структуры хранилища данных оно представляет с собой

«пустое» ХД Deductor Warehouse 6 с настроенным семантическим слоем.


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

Сценарий загрузки должен выполнять следующие функции.

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

– Опциональная предобработка данных, например, очистка или преобразование формата.

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

В нашем демонстрационном примере исходными данными для ХД служат 4 текстовых файла: groups.txt (товарные группы), produces.txt (товары), stores.txt (отделы), sales.txt (продажи по дням). Поэтому сценарий загрузки должен быть настроен на использование в качестве источников данных на эти файлы (рис. 3.13).

Рисунок 3.13 – Результат сценария загрузки из четырех узлов

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

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

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

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


1) Последовательно импортируем все четыре текстовых файла в Deductor в следующей последовательности: groups.txt, produces.txt, stores.txt, sales.txt.

При подключении файла sales.txt необходимо исправить следующие ошибки:

– разделители целой и дробной части – точка;

– тип поля Сумма – вещественный;

– тип поля Количество – целый.

Внимательно установите в файлах groups.txt, produces.txt, stores.txt, sales.txt. типы данных у полей Группа.Код, Товар.Код, Отдел.Код, Час.Код – они должны быть целыми.

В результате получим сценарий, состоящий из четырех узлов импорта.

2) После импорта можно приступим к загрузке данных в ХД (рис. 3.14).

Рисунок 3.14 – Мастер экспорта данных в ХД

Первыми следуют таблицы измерений, и только в конце – таблица процесса sales.txt. Менять порядок веток сценария можно при помощи кнопок CTRL+↑ и CTRL+↓.

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


3) На следующей вкладке из списка доступных хранилищ укажем нужное нам ХД под названием Иванов.Фармация. Далее требуется указать, в какое именно измерение будет загружаться информация.

Это – Группа.Код.

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

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

Рисунок 3.15 – Результирующий сценарий соответствия элементов

5) Проделав аналогичные действия еще для двух измерений –

Отдел.Код, Товар.Код, получим следующий сценарий.

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

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

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


Рисунок 3.16 – Задание параметров контроля непротиворечивости

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

– удалить «старые» данные и загрузить «новые»;

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

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

Загрузка с поднятой опцией Обновить кубы «пересчитает» все кубы, построенные в хранилище на основе данного процесса.

Включенный флажок Отключить ограничения и индексы полезен в случае экспорта в процесс больших объемов данных (например, при первичной загрузке). Тогда во время выполнения этого действия каждый раз при добавлении строки данных будет тратиться время на дополнительные процедуры, связанные с перестройкой индексов и проверкой ограничений. С ростом числа записей выигрыш от отключения этих процедур может составлять ощутимую величину (в 3–5 и более раз).


Рисунок 3.17 – Настройки по умолчанию

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

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

Таблица 3.6. Две записи с одинаковыми значениями измерений


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

Рисунок 3.18 – Задание варианта агрегации

8) Окончательный сценарий загрузки в хранилище Иванов. Фармация

следующий (рис. 3.19).

Рисунок 3.19 – Получение окончательного сценария загрузки в хранилище

Полученный результат сохранить в файле L3_1.ded.


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



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