Ниже приведены шаги, которые нам необходимо выполнить для проектирования хранилища данных:

Создание внешних таблиц и загрузка данных из плоских файлов

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

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

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

В Warehouse Builder мы можем определять внешние таблицы поверх структур плоских файлов, развертывать внешние таблицы в исходной базе данных и использовать эти внешние таблицы в сопоставлениях вместо плоских файлов. Например, мы создали две внешние таблицы (EXPENSE_CATEGORIES и EXPENSE_DATA), которые будут указывать на выборочные плоские файлы.

Расчет размеров

Категории субъектов называются измерениями. Таблицы, описывающие измерение, называются таблицей измерения. Разделение проекта хранилища данных на измерение предоставляет структурированную информацию для целей отчетности.

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

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

Чтобы создать измерение, мы должны определить следующее:

1) Атрибуты измерения
2) Уровни
3) Атрибуты уровня
4) Иерархии

На рисунке ниже показано измерение, созданное REL_TIME с помощью мастера измерения TIME, и измерение REL_CATEGORY с помощью простого мастера. С этим измерением Warehouse Builder также создает таблицы (REL_TIME и REL_CATEGORY), которые реализуют измерение в звездообразной схеме, а также создает последовательность для загрузки столбца идентификатора измерения.

Проектирование кубов

Кубы содержат показатели и ссылки на одно или несколько измерений. Тело куба содержит значения мер, а оси куба содержат значения измерений. Большинство показателей являются числовыми и аддитивными.

Например:

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

В реляционной реализации куб связан с таблицами измерений с помощью внешнего ключа и состоит из набора мер.

Мы должны определить кубические меры и значение кубического измерения, чтобы создать куб.

Теперь мы создадим простой реляционный куб REL_EXPENSE, используя мастер кубов в OWB. Он ссылается на два измерения «REL_CATEGORY» и «REL_TIME». Мастер помогает нам создать куб в графическом виде.

Перейдите к модулю «EXPENSE_WH», щелкните правой кнопкой мыши кубы и выберите «Создать» › «С помощью мастера».

  1. Введите «REL_EXPENSE» в качестве имени куба на странице «Имя и описание». Нажмите "Далее.
  2. На странице Тип хранилища выберите ROLAP: Реляционное хранилище, чтобы указать реляционную реализацию куба. Нажмите "Далее.

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

  1. Теперь мы можем выбрать измерения, на которые будет ссылаться куб, на странице Измерения. В списке «Доступные размеры» разверните «Размеры», а затем разверните «EXPENSE_WH». Выберите два измерения «REL_CATEGORY» и «REL_TIME» и перейдите к выбранному списку измерений. Нажмите "Далее.

2. Введите «РАСХОД» в поле «Имя» на странице «Показатели». Примите тип данных по умолчанию. Нажмите "Далее. Мы можем добавить количество мер в кубе.

3. Проанализируйте куб REL_EXPENSE, связанный с двумя измерениями.

Примечание. Мы разработали многомерные объекты, их реализующие объекты и связанные последовательности, а также их сопоставления, но эти вещи пока физически не существуют в базе данных. Это главное преимущество, которое Warehouse Builder обеспечивает, отделяя дизайн и логическую модель от фактической физической реализации.

Нам нужно развернуть объекты (измерения, кубы, последовательности, сопоставления и т. д.), чтобы фактически создать или построить целевое хранилище. Нам также необходимо спроектировать, развернуть и выполнить отображения ETL, которые будут извлекать данные из источников данных реляционных или плоских файлов, преобразовывать данные подходящим образом и, наконец, загружать данные в таблицы измерений и кубов.

Проектирование сопоставлений потоков данных ETL

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

Мы используем интерфейс Mapping Editor для разработки сопоставления в Warehouse Builder. Существует большой набор операторов сопоставления, доступных для использования в редакторе сопоставления. Используя Oracle Warehouse Builder, мы можем использовать действия, внешние по отношению к Warehouse Builder (такие как электронная почта, FTP-команды).

Теперь, когда исходный и целевой модули уже определены, мы проверим создание логики перемещения и преобразования данных. ETL означает извлечение, преобразование и загрузку. ETL включает в себя перемещение и преобразование данных из ваших исходных данных в ваши цели. Большая часть того, что мы уже сделали в Oracle Warehouse Builder, — это определение логики ETL.

Проектирование отображения между внешней таблицей и кубом

Теперь мы выполним операцию по созданию сопоставления REL_EXPENSE_MAP, которое сопоставляет внешнюю таблицу с именем EXPORT_CSV с кубом с именем REL_EXPENSE.

  1. Разверните «MY_PROJECT» в проводнике проектов. Разверните Базы данных › Oracle › EXPENSE_WH › Сопоставления. Щелкните правой кнопкой мыши узел Mappings и выберите New.
  2. Введите «REL_EXPENSE_MAP» в качестве имени сопоставления в окне сопоставления. Нажмите ОК.
  3. На панели Explorer, слева от Mapping Editor, убедитесь, что выбрана вкладка Available Objects. Разверните Oracle › EXPENSE_WH › Внешние таблицы. Перетащите внешнюю таблицу EXPENSE_DATA на холст.

4. Теперь перетащите куб REL_EXPENSE на холст. Теперь на холсте есть два объекта: внешняя таблица «EXPENSE_DATA» и операторы куба «REL_EXPENSE».

  1. С панели «Палитра» перетащите оператор «Выражение» на холст.

Примечание.Оператор Expression используется для преобразования атрибута EXPENSE_DATE во внешней таблице EXPENSE_DATA из типа данных даты в числовой тип данных. Целевой атрибут в кубе — это числовой тип данных, поэтому это преобразование типа данных требуется для соответствия типу данных.

2. Перетащите линию соединения из EXPENSE_DATA.OUTGRP1.EXPENSE_DATE в EXPRESSION.INGRP1.

2. Щелкните правой кнопкой мыши заголовок оператора выражения «EXPRESSION» и выберите «Подробности».

3. Перейдите на вкладку Выходные атрибуты в редакторе выражений. Добавьте атрибут EXPENSE_DATE и убедитесь, что тип данных — NUMBER. Нажмите ОК.

4. Введите следующий оператор в Expression for EXPENSE_DATE:

TO_NUMBER (TO_CHAR (INGRP1.EXPENSE_DATE, ‘ГГГГММДД’), ‘99999999’)

  1. Подключите исходный оператор External table к целевому оператору Cube следующим образом:
  • Перетащите линию соединения из EXPRESSION.OUTGRP1.EXPENSE_DATE в REL_EXPENSE.REL_EXPENSE.REL_TIME_DAY_CODE.
  • Перетащите линию соединения из EXPENSE_DATA.OUTGRP1.EXPENSE_TYPE в REL_EXPENSE.REL_EXPENSE.REL_CATEGORY_NAME.
  • Перетащите линию соединения из EXPENSE_DATA.OUTGRP1.REIMBURSABLE_AMOUNT в REL_EXPENSE.REL_EXPENSE.EXPENSE.

2. Теперь мы сгенерировали код, загружающий куб. Oracle Warehouse Builder генерирует код, необходимый для реализации нашего проекта, на основе логики ETL, которую мы разрабатываем в сопоставлении,

Первоначально опубликовано на www.tatvasoft.com.