Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СППР_Часть1.doc
Скачиваний:
86
Добавлен:
11.11.2019
Размер:
2.14 Mб
Скачать

1.3 Описание бизнес-задачи по созданию аналитической отчетности аптечной сети

Компания, владеющая небольшой аптечной сетью, занимается розничной продажей лекарственных препаратов. Руководство компании приняло решение о внедрении системы аналитической отчетности OLAP-отчетности, в которой его интересует информация о динамике продаж, загруженности торговых точек, самых продаваемых товарах в различных разрезах. Было решено создать единый консолидированный источник – хранилище данных, которое послужит базой для OLAP-отчетности.

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

  • Спроектировать структуру реляционного хранилища данных;

  • Наполнить хранилище данных первичной информацией;

  • Разработать процедуры пополнения ХД и контроль непротиворечивости содержащихся в нем данных;

  • Предложить набор OLAP-отчетов.

Исходные данные представлены в 4 файлах:

Группы товаров.txt, Товары.txt, Отделы.txt, Продажи.txt

1.4 Создание хранилища данных в системе Deductor

Создание хранилища данных производится на панели «Подключения». Вызываем Мастер подключений и после выбора типа базы данных указываем параметры базы данных:

  • База данных – необходимо указать имя базы данных –farma.gdb;

  • Логин/Пароль – необходимо указать логин и пароль подключения к базе данных. По умолчанию в Firebird логин “sysdba”, пароль “masterkey”;

  • Параметры – поставьте флажок “Сохранять пароль».

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

Осталось выбрать визуализатор для подключения (здесь это Сведения и метаданные) и задать имя - FARMA, метку – Фармация, и описание нового хранилища – хранилище данных с информацией о продажах аптечной сети. Имя хранилища может быть введено только латинскими буквами.

Структура хранилища создается с помощью Редактора метаданных. В окне Редактора можно создавать новые процессы и измерения, добавлять к процессам факты, а к измерениям – атрибуты, удалять процессы, факты, атрибуты и неиспользуемые измерения, производить очистку процессов и измерений, т.е. выполнять основные операции с метаданными хранилища.

Сначала нужно определиться, что является процессом, фактами и измерениями. Процесс – это продажи товаров. Он представлен таблицей Продажи.txt. Измерение – это поле «Код товара», а поле «Наименование товара» - его атрибут. Измерениями также являются поля «Код группы», «Код отдела», «Дата» и «Час покупки». Факты – это поля «Количество» и «Сумма». При такой структуре ХД мы предполагаем, что уникальность точки в пространстве определяется совокупностью измерений Дата+Товар+Код отдела+Час покупки. То есть, если в одной и той же аптеке в один и тот же день и час будет совершено несколько покупок, скажем, препарата Аналгин, то в хранилище данных будет отображена только одна запись.

Откроем Редактор метаданных Deductor Warehouse инструментом и перейдем в режим редактирования, нажав кнопку «Разрешить редактировать».

Выберите узел Измерения , щелкните правой кнопкой мыши , затем нажмите кнопку Добавить и создайте первое измерение Код группы со следующими параметрами:

  • Имя – GR_ID;

  • Метка – Группа.Код;

  • Тип данных – целый.

Метка – это семантическое название объекта хранилища данных, которое увидит пользователь, работающий с ХД.

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

Таблица 1.1

Измерение

Имя

Метка

Тип данных

Код группы

GR_ID

Группа.Код

Целый

Код товара

TV_ID

Товар.Код

Целый

Код отдела

PART_ID

Отдел.Код

Целый

Дата

S_DATE

Дата

Дата/Время

Час покупки

S_HOUR

Час

Целый

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

Каждое измерение может ссылаться на другое измерение, реализуя тем самым иерархию измерений. В нашем случае измерение Товар.Код ссылается на Группа.Код . Эту ссылку и установите путем простого добавления (ссылка на измерение изображается другим значком), а имя ссылки задается GR_ID_1.

После того, как все измерения и ссылки на измерения созданы, приступайте к формированию процесса. Назовите его Продажи и добавьте в него ссылки на четыре существующих измерения: Дата, Отдел.Код, Товар.Код, Час. Кроме них, в процессе участвуют два факта Количество и Сумма, причем, первый – целочисленный, а второй – вещественный. В итоге получим ХД, готовое к загрузке данных - см. рисунок 1.4.

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

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

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

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

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

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

Импортируйте все четыре текстовых файла в Deductor в том порядке, как это указано в сценарии импорта на рис. 1.5.

Рисунок 1.5 – Сценарий импорта данных в Deductor

Рисунок 1.4 – Структура хранилища данных примера

Покажем последовательность загрузки данных в измерение на примере первого измерения Группа.Код. Встав на первом узле, вызовите Мастер экспорта, из списка типа приемников выберите Deductor Warehouse. На следующей вкладке выберите хранилище Фармация. Далее требуется указать, в какое именно измерение будет загружаться информация. Это Группа.Код. Осталось установить соответствие элементов объекта в хранилище данных с полями входного источника данных (т.е. таблицы Группы товаров.txt ). В случае, когда имена полей или метки в семантическом слое хранилища совпадают, делать ничего не нужно (рис.1.6).

Рисунок 1.6 – Настройка соответствия полей

Проделайте аналогичные действия еще для двух измерений Отдел.Код, Товар.Код.

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

На последней странице мастера экспорта лучше оставить настройки по умолчанию. Окончательный сценарий загрузки приведен на рис.1.7. Один раз созданный сценарий впоследствии применяется для пополнения хранилища данных

Рисунок 1.7 – Сценарий загрузки данных в хранилище