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

6.Лабораторная работа №6 «Заполнение таблиц фактов для витрины данных производства» (254)

Содержание практики:

заполнение таблицы фактов с помощью служб интеграции.

Потребности бизнеса.

Очевидно, витрины данных без самих данных не принесут компании Maximum Miniatures никакой пользы, поэтому нам нужно заполнить таблицы фактов. Информация для таблицы фактов производства находится в файле BatchInfo.csv. В реальной производственной среде такой файл мог бы содержать итоги работы за день или максимум за неделю, а IS-пакет, обрабатывающий этот файл, запускался бы ежедневно или еженедельно. Однако поскольку нам для работы нужен большой объем выборки, наша копия файла BatchInfo.csv содержит данные за три года работы. Структура IS-пакета, используемого для импорта информации, остается при этом неизменной.

Перед нами стоит также еще одна небольшая проблема – одна из таблиц измерений не заполнена (таблица DimBatch). Единственный источник информации (номера партий) для нее – это файл BatchInfo.csv. Поэтому мы включим в IS-пакет поток данных для заполнения этой таблицы измерений непосредственно перед заполнением таблицы фактов.

Теперь в нашей витрине данных есть также и вторая таблица фактов – Inventory. Информация для этой таблицы фактов поступает из базы данных системы обработки заказов. Для нее в наш IS-пакет включен дополнительный поток данных.

Примечание:

Для выполнения этого практического упражнения вам потребуется файл BatchInfo.csv и база данных системы обработки заказов компании Maximum Miniatures..

Пошаговая процедура

  1. Запустите программу Business Intelligence Development Studio.

  2. Щелкните на кнопке Создать проект (New Project) панели инструментов.

  3. Убедитесь, что в разделе Типы проектов (Projects Types) выделен пункт Проекты бизнес-аналитики (Analysis Services Projects), после чего в разделе Шаблоны (Templates) выберите шаблон Проект служб SSАS (Analysis Services Project).

  4. Введите в поле Имя (Name) значение MaxMinManufacturingDMFactLoad, а в поле Расположение (Location) укажите необходимую папку.

  5. Щелкните на кнопке Ок, чтобы создать проект.

  6. После создания проекта щелкните правой кнопкой мыши на файле Package.dtsx в окне обозревателя решений и выберите в контекстном меню команду Переименовать (Rename). Укажите имя FactLoad.dtsx в качестве нового названия пакета и нажмите клавишу Enter.

  7. На запрос об одновременном переименовании объекта пакета щелкните на кнопке Да (Yes).

  8. Перетащите с панели элементов на вкладку Поток управления (Control Flow Designer) элемент Задача «Поток данных» (Data Flow Task).

  9. Щелкните правой кнопкой мыши на только что созданной задаче потока данных и выберите в контекстном меню команду Переименовать (Rename). Введите имя Load DimBatch и нажмите клавишу Enter. Дважды щелкните на элементе Load DimBatch. Это приведет к активизации вкладки Поток данных (Data Flow Designer).

  10. Щелкните правой кнопкой мыши в панели соединений и выберите в контекстном меню команду Создать соединение с плоским файлом (New Flat File). Появится диалоговое окно Редактор диспетчера соединений с плоскими файлами (Flat File Connection Manager Editor).

  11. В окне Имя диспетчера соединений (Connection Manager Name) укажите имя BatchInfo.csv File. Щелкните на кнопке Обзор (Browse).

  12. Найдите загруженный вами с сайта книги файл BatchInfo.csv, выделите его и щелкните на кнопке Открыть (Open), чтобы закрыть диалоговое окно.

  13. Установите флажок Имена столбцов в первой строке данных (Column Names in the First Data Row).

  14. В списке страниц, находящемся в левой части окна, выделите пункт Столбцы (Columns). Заметьте, что содержимое столбцов считывается из указанного текстового CSV-файла.

  15. В списке страниц, находящемся в левой части окна, выделите пункт Дополнительно (Advanced).

  16. Измените типы данных для столбцов BatchNumber, MachineNumber, ProductCode, NumberProduced и NumberRejected на четырехбайтное знаковое целое [DT_I4]. Измените тип данных для столбцов TimeStarted и TimeStopped на временную метку базы данных [DT_DBTimeStamp].

  17. Щелкните на кнопке Ок, чтобы закрыть диалоговое окно Редактор диспетчера соединений с плоскими файлами (Flat File Connection Manager Editor).

  18. Раскройте на панели элементов секцию Источники потока данных (Data Flow Sources) и перетащите с нее на вкладку Поток данных (Data Flow Designer) элемент Источник «Плоский файл» (Flat File Source).

  19. Дважды щелкните на только что созданном элементе Источник «Плоский файл» (Flat File Source). Появится диалоговое окно Редактор источника «Плоский файл» (Flat File Source Editor).

  20. В раскрывающемся списке диспетчера соединений с плоскими файлами должен быть выбран пункт BatchInfo.csv File.

  21. В списке страниц, находящемся в левой части окна, выберите пункт Столбцы (Columns).

  22. Сбросьте флажки для всех столбцов из списка Доступные внешние столбцы (Available External Columns), за исключением столбца BatchNumber.

  23. Щелкните на кнопке Ок, чтобы закрыть диалоговое окно Редактор источника «Плоский файл» (Flat File Source Editor).

  24. Раскройте на панели элементов секцию Преобразования потока данных (Data Flow Transformations) и перетащите с нее на вкладку Поток данных (Data Flow Designer) элемент Сортировка (Sort).

  25. Щелкните на элементе Источник «Плоский файл» (Flat File Source). Нажмите кнопку мыши на зеленой стрелке потока данных и перетащите ее на элемент Сортировка (Sort). Это свяжет источник с преобразованием.

  26. Дважды щелкните на только что созданном элементе Сортировка (Sort). Появится диалоговое окно Редактор преобразования «Сортировка» (Sort Transformation Editor).

  27. Установите флажок слева от имени BatchNumber в списке Доступные входные столбцы (Available Input Columns).

  28. Установите флажок Удалять строки с повторяющимися значениями сортировки (Remove Rows with Duplicate Sort Values). Это даст нам раздельный список номеров партий, которые можно использовать для заполнения таблицы измерений.

  29. Щелкните на кнопке Ок, чтобы закрыть диалоговое окно Редактор преобразования «Сортировка» (Sort Transformation Editor).

  30. Перетащите с панели элементов на вкладку Поток данных (Data Flow Designer) элемент Произвольный столбец (Derived Column).

  31. Щелкните на элементе Сортировка (Sort). Нажмите кнопку мыши на зеленой стрелке потока данных и перетащите ее на элемент Производный столбец (Derived Column). Это свяжет два преобразования.

  32. Дважды щелкните на только что созданном элементе Производный столбец (Derived Column). Появится диалоговое окно Редактор преобразования «Производный столбец» (Derived Column Transformation Editor).

  33. В первой строке столбца Имя производного столбца (Derived Column Name) введите имя BatchName.

  34. В первой строке столбца Выражение (Expression) введите выражение [BatchNumber].

  35. В первой строке столбца Тип данных (Data Type) выберите строковый тип [DT_STR].

  36. Щелкните на кнопке Ок, чтобы закрыть диалоговое окно Редактор преобразования «Производный столбец» (Derived Column Transformation Editor).

  37. Раскройте на панели элементов секцию Назначения потока данных (Data Flow Designer) и перетащите с нее на вкладку Поток данных (Data Flow Designer) элемент Назначение «SQL Server» (SQL Server Destination).

  38. Щелкните на элементе Производный столбец (Derived Column). Нажмите кнопку мыши на зеленой стрелке потока данных и перетащите ее на элемент Назначение «SQL Server» (SQL Server Destination). Это свяжет преобразование с приемником данных.

  39. Дважды щелкните на элементе Назначение «SQL Server» (SQL Server Destination). Появится диалоговое окно Редактор назначения «SQL» (SQL Destination Editor).

  40. Щелкните на кнопке Создать (New), чтобы создать диспетчер соединения OLE DB для использования с данным приемником SQL Server. Появится диалоговое окно Настройка диспетчера соединений OLE DB (Configure OLE DB Connection Manager).

  41. Выберите соединение с базой данных MaxMinManufacturingDM, которая была создана вами раньше. Щелкните на кнопке Ок, чтобы закрыть диалоговое окно Настройка диспетчера соединений OLE DB (Configure OLE DB Connection Manager).

  42. В раскрывающемся списке Использовать таблицу или представление (Use a Table or View) выберите таблицу DimBatch.

  43. Щелкните на пункте Сопоставления (Mappings), чтобы открыть одноименную страницу. Столбцы источника данных, а доступные для данного целевого элемента столбцы перечислены в списке Доступные входные столбцы (Available Input Columns), должны автоматически отобразиться на столбцы приемника, перечисленные в списке Доступные целевые столбцы (Available Destination Columns). В результате должны получиться следующие отображения:

Доступные входные столбцы

Доступные целевые столбцы

BatchNumber

BatchNumber

BatchName

BatchName

  1. Щелкните на кнопке Ок, чтобы закрыть диалоговое окно Редактор назначения «SQL» (SQL Destination Editor). Вкладка Поток данных (Data Flow Designer) должна выглядеть так, как показано на рис. 6.1.

  2. Активизируйте вкладку Поток управления (Control Flow Designer). Перетащите на вкладку Поток управления (Control Flow Designer) еще один элемент Задача «Поток данных» (Data Flow Task). Переименуйте этот новый элемент в Load ManufacturingFact. Растяните его пошире, чтобы новое название было видно целиком.

  3. Щелкните на элементе Load DimBatch. Перетащите стрелку очередности на элемент Load ManufacturingFact (чтобы перед загрузкой таблицы ManufacturingFact была загружена таблица DimBatch).

  4. Дважды щелкните на элементе Load ManufacturingFact, активизировав вкладку Поток данных (Data Flow Designer). В раскрывающемся списке Задача «Поток данных» (Data Flow Task) будет выбран элемент Load ManufacturingFact.

  5. Перетащите на вкладку Поток данных (Data Flow Designer) элемент Источник «Плоский файл» (Flat File Source) с панели элементов.

  6. Дважды щелкните на только что созданном элементе Источник «Плоский файл» (Flat File Source). Появится диалоговое окно Редактор источника «Плоский файл» (Flat File Source Editor).

  7. В раскрывающемся списке диспетчера соединений с плоскими файлами должно быть выбрано соединение BatchInfo.csv File. Щелкните на кнопке Ок, чтобы закрыть диалоговое окно Редактор источника «Плоский файл» (Flat File Source Editor).

Рисунок 6.31 Вкладка Поток данных для задачи Load DimBatch

  1. Перетащите на вкладку Поток данных (Data Flow Designer) элемент Производный столбец (Derived Column) с панели элементов.

  2. Щелкните на элементе Источник «Плоский файл» (Flat File Source). Нажмите кнопку мыши на зеленой стрелке потока данных и перетащите ее на элемент Производный столбец (Derived Column). Это свяжет источник с преобразованием.

  3. Дважды щелкните на только что созданном элементе Производный столбец (Derived Column). Появится диалоговое окно Редактор преобразования «Производный столбец» (Derived Column Transformation Editor).

  4. В нашем текстовом файле явно не указывается число прошедших приемку изделий и время, ушедшее на их производство. Вместо этого нам требуется вычислить эти показатели по данным, находящимся в файле. В файле также есть временная секция под названием TimeStarted. Это приводит к проблемам при использовании данного поля при создании временного изменения. Эти проблемы мы можем решить, добавив три выводимых столбца к потоку данных. В первой строке под заголовком Имя производного столбца (Derived Column Name) введите имя AcceptedProducts. В первой строке под заголовком Выражение (Expression) введите следующее выражение:

[NumberProduced] – [NumberRejected]

Если хотите, можете раскрыть папку Столбцы (Columns) в левом верхнем углу диалогового окна и перетащить поля в выражение. В первой строке под заголовком Тип данных (Data Type) в качестве типа данных выберите в раскрывающемся списке тип [DT_I4], означающий четырехбайтовое знаковое целое.

  1. Во второй строке под заголовком Имя производного столбца (Derived Column Name) введите имя ElapsedTimeForManufacture. Во второй строке под заголовком Выражение (Expression) введите следующее выражение:

DATEDIFF (“mi”, [TimeStarted], [TimeStopped])

Если хотите, можете раскрыть папку Функции даты-времени (Date/Time Functions) в правом верхнем углу диалогового окна и перетащить функцию DATEDIFF в выражение. Вы также можете перетащить в выражение и поля. Во второй строке под заголовком Тип данных (Data Type) укажите в качестве типа данных тип [DT_NUMERIC], означающий численное значение.

  1. В третьей строке под заголовком Имя производного столбца (Derived Column Name) введите имя DateOfManufacture. В третьей строке под заголовком Выражение (Expression) введите следующее выражение:

(DT_DBTIMESTAMP)SUBSTRING((DT_WSTR.25)[TimeStarted].1.10)

Данное выражение преобразует TimeStarted в строку и выделяет из нее первые десять символов (дату, но не время). Затем строка преобразуется обратно в тип даты и времени, но уже без времени, поэтому значение времени задается по умолчанию (полночь). Вы можете раскрыть папки Приведения типов (Type Casts) и Строковые функции (String Functions) в правом верхнем углу диалогового окна и перетащить в выражение операции преобразования типов (DT_WSTR) и (DT_DBTIMESTAMP), а также функцию SUBSTRING. Кроме того, вы также можете перетащить в выражение поля. По умолчанию должен использоваться тип данных [DT_DBTIMESTAMP]. Щелкните на кнопке Ок, чтобы закрыть диалоговое окно Редактор преобразования «Производный столбец» (Derived Column Transformation Editor).

  1. Перетащите на вкладку Поток данных (Data Flow Designer) элемент Назначение «SQL Server» (SQL Server Destination) с панели элементов.

  2. Щелкните на элементе Производный столбец (Derived Column). Нажмите кнопку мыши на зеленой стрелке потока данных и перетащите ее на элемент Назначение «SQL Server» (SQL Server Destination). Это свяжет преобразование с приемником данных.

  3. Дважды щелкните на элементе Назначение «SQL Server» (SQL Server Destination). Появится диалоговое окно Редактор назначения «SQL» (SQL Destination Editor).

  4. Щелкните на кнопке Создать (New), чтобы создать диспетчер соединения OLE DB для использования с данным приемником SQL Server. Появится диалоговое окно Настройка диспетчера соединений OLE DB (Configure OLE DB Connection Manager).

  5. Выделите соединение с базой данных MaxMinManufacturingDM, которая была создана вами раньше. Щелкните на кнопке Ок, чтобы закрыть диалоговое окно Настройка диспетчера соединений OLE DB (Configure OLE DB Connection Manager).

  6. В раскрывающемся списке Использовать таблицу или представление (Use a Table or View) выберите таблицу ManufacturingFact.

  7. Щелкните на пункте Сопоставления (Mappings), чтобы открыть одноименную страницу. Столбцы источника данных, а доступные для данного целевого элемента столбцы перечислены в списке Доступные входные столбцы (Available Input Columns), должны автоматически отобразиться на столбцы приемника, перечисленные в списке Доступные целевые столбцы (Available Destination Columns). В результате должны получиться следующие отображения:

Доступные входные столбцы

Доступные целевые столбцы

BatchNumber

BatchNumber

MachineNumber

MachineNumber

ProductCode

ProductCode

AcceptedProducts

AcceptedProducts

ElapsedTimeForManufacture

ElapsedTimeForManufacture

DateOfManufacture

DateOfManufacture

  1. Путем перетаскивания создайте следующее отображение:

Доступные входные столбцы

Доступные целевые столбцы

NumberRejected

RejectedProducts

  1. Щелкните на кнопке Ок, чтобы закрыть диалоговое окно Редактор назначения «SQL» (SQL Destination Editor). В результате вкладка Поток данных (Data Flow Designer) должна выглядеть так, как показано на рис. 6.2.

  2. Активизируйте вкладку Поток управления (Control Flow Designer). Перетащите на нее третий элемент Задача «Поток данных» (Data Flow Task). Переименуйте этот новый элемент в Load InventoryFact. Отношение предшествования между элементом Load InventoryFact и другими элементами типа Задача «Поток данных» (Data Flow Task) устанавливать не нужно, поскольку очередность заполнения таблицы InventoryFact и относительно других таблиц не важна.

  3. Дважды щелкните на элементе Load InventoryFact, активизировав вкладку Поток данных (Data Flow Designer).

Рисунок 6.32 Вкладка Поток данных для задачи ManufacturingFact

  1. Щелкните правой кнопкой мыши в панели соединений и выберите в контекстном меню команду Создать соединение OLE DB (New OLE DB Connection). Щелкните на кнопке Создать (New) в диалоговом окне Настройка диспетчера соединений OLE DB (Configure OLE DB Connection Manager), чтобы создать новое соединение.

  2. В поле Имя сервера (Server Name) введите название сервера, на котором расположена база данных системы обработки заказов компании Maximum Miniatures. Выберите необходимый метод доступа к серверу в области Вход на сервер (Log On to the Server). При необходимости укажите параметры подключения. В раскрывающемся списке Выберите или введите имя базы данных (Select or Enter the Database Name), укажите базу данных OrderProcessingSystem (если раскрывающийся список пуст, это означает, что имя сервера или параметры подключения указаны неверно). Щелкните на кнопке Ок, чтобы вернуться в диалоговое окно Настройка диспетчера соединений OLE DB (Configure OLE DB Connection Manager). Снова щелкните на кнопке Ок, чтобы закрыть это окно.

  3. Перетащите на вкладку Поток данных (Data Flow Designer) элемент Источник “OLE DB” (OLE DB Source) с панели элементов.

  4. Дважды щелкните на только что созданном элементе Источник “OLE DB” (OLE DB Source). Появится диалоговое окно Редактор источника “OLE DB” (OLE DB Source Editor).

  5. В раскрывающемся списке Диспетчер соединений OLE DB (OLE DB Connection Manager) выберите только что созданное вами соединение OrderProcessingSystem. Оставьте выбранным пункт Таблица или представление (Table or View) в раскрывающемся списке Режим доступа к данным (Data Access Mode). В раскрывающемся списке Имя таблицы или представления (Name of the Table or the View) выберите таблицу Inventory. Щелкните на кнопке Ок.

  6. Перетащите на вкладку Поток данных (Data Flow Designer) элемент Назначение «SQL Server» (SQL Server Destination) с панели элементов.

  7. Щелкните на элементе Источник “OLE DB” (OLE DB Source). Нажмите кнопку мыши на зеленой стрелке потока данных и перетащите ее на элемент Назначение «SQL Server» (SQL Server Destination). Это свяжет преобразование с приемником данных.

  8. Дважды щелкните на элементе Назначение «SQL Server» (SQL Server Destination). Появится диалоговое окно Редактор назначения «SQL» (SQL Destination Editor).

Рисунок 6.33 Вкладка Поток данных для задачи Load InventoryFact

  1. В раскрывающемся списке Диспетчер соединений OLE DB (OLE DB Connection Manager) выберите соединение MaxMinManufacturingDM. В раскрывающемся списке Использовать таблицу или представление (Use a Table or View) выберите таблицу InventoryFact.

  2. Щелкните на пункте Сопоставления (Mappings), чтобы открыть одноименную страницу. Путем перетаскивания создайте следующие отображения:

Доступные входные столбцы

Доступные целевые столбцы

Code

ProductCode

InventoryDate

DateOfInventory

AmountOnHand

InventoryLevel

AmountBackordered

NumberOnBackorder

  1. Щелкните на кнопке Ок, чтобы закрыть диалоговое окно Редактор назначения «SQL» (SQL Destination Editor). В результате вкладка Поток данных (Data Flow Designer) должна выглядеть так, как показано на рис. 1.31.

  2. Активизируйте вкладку Поток управления (Control Flow Designer). Эта вкладка должна соответствовать рис. 1.32.

  3. Щелкните на кнопке Сохранить все (Save All) панели инструментов, чтобы сохранить готовый проект.

  4. Щелкните на кнопке Начать отладку (Start Debugging) панели инструментов, чтобы запустить готовый пакет на выполнение. Когда выполнение завершиться, щелкните на кнопке Остановить отладку (Stop Debugging) или на ссылке Выполнение пакета завершено (Package Execution Completed), чтобы вернуться в окно конструктора.

  5. Закройте проект.