(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Использование скриптового языка Oracle Warehouse Builder. Профессионалу-разработчику

Источник: realcoding

Данная статья будет интересна специалистам, занимающимся разработкой хранилищ данных с помощью Oracle Warehouse Builder (OWB). Чаще всего с OWB работают специалисты, которым не чуждо программирование. Зачем вручную проделывать однотипные операции, когда это можно запрограммировать? Тем более, OWB представляет такую возможность - существует скриптовый язык OMB Plus.

Введение

Данная статья будет интересна специалистам, занимающимся разработкой хранилищ данных с помощью программного средства Oracle Warehouse Builder (OWB). Как известно, данное средство представляет собой графический инструмент создания многомерных моделей с помощью средств Drag and Drop и различных Wizard'ов, не прибегая к программированию. Это дает большое преимущество проектировщикам, не владеющих программированием, и в то же время является и недостатком, т.к. при проектировании большой модели, включающей большое количество показателей, измерений и ETL-процедур, сам процесс проектирования будет монотонным, включающим большое количество повторяющихся операций. Такая процедура не исключает появления ошибок, и будет занимать много времени.
Чаще всего с OWB работают специалисты, которым не чуждо программирование, но которых необходимость выполнять множество однотипных операций сильно удручает. Зачем вручную проделывать однотипные операции, когда это можно запрограммировать? Тем более, OWB представляет такую возможность - существует скриптовый язык OMB Plus.

В данной статье рассматривается идея программного создания модели в OWB с помощью скриптового языка. Также приведены подробные примеры использоания OMB Plus.

Скриптовый язык OWB

    Исполняемое окружение - запуск скриптов, особенности

В составе OWB имеется язык программирования OMB Plus, который предназначен для создания сценариев (скриптов). OMBPlus - это расширение языка TCL, которое позволяет писать синтаксические конструкции общего назначения с использованием переменных, циклов, условий, обработок ошибок и т.д.
Среда с помощью которой происходит выполнение команд также называется OMB Plus. Запуск среды выполнения в тектовом режиме производится с помощью следующей команды:

   $OWB_HOME/owb/win32/ombplus.bat
 

где $OWB_HOME - каталог в который установлен OWB.


Рис.1 Текстовая консоль выполнения OMB Plus

Также имеется графический вариант консоли выполнения OMB Plus, - его запуск производится с помощью команды:

   $OWB_HOME/owb/win32/ombpluss.bat
 

Рис.2 Графическая консаль выполнения OMB Plus

Чтобы не вводить команды вручную, можно написать скрипт, используя синтаксис команд OMB Plus, и оформить его в виде отдельного файла с расширением tcl.
Запуск программы осуществляется с помощью следующей команды:

  $OWB_HOME/owb/win32/ombplus.bat  <полный путь>/<имя файла>.tcl 

Существуют некоторые особенности в использовании команд в OMB Plus:

      
  • Все ключевые слова необходимо писать в верхнем регистре;
  •   
  • Символьные значения необходимо задавать в одинарных ковычках;
  •   
  • При задании полных имен каталогов нельзя использовать обратный слэш (), для этого необходимо использовать прямой (/) ;
  •   
  • Существуют специфические символы, которые tcl интерпретирует по своим правилам, и их не рекомендуетя использовать в названиях метаданных моделей. Например, к таким символам относятся $, #, , ;
    • Символ $ используется для задании переменных
    • Символ используется для разделения одной команды на нескольких строках
    • Символ # используется для комментариев
        Если же такой символ используется в имени объекта, то необходимо его помечать обратным слэшем ().
        Например,
     OMBCREATE TABLE 'DW$SALES'   

    Основные команды

OMB Plus имеет следующие группы команд:

      
  • Команды манипулирования метаданными (MML), в эту группу команд входят команды по созданию, изменению, удалению объектов матаданных - OMBCREATE, OMBALTER, OMBDELETE и т.д.;
  •   
  • Команды управления средой выполнения (shell) - OMBDCC, OMBHELP;
  •   
  • Сервисные команды, эта группа команд предназначения для проверки (validate), компиляции и развертывания модели - OMBCOMPILE, OMBDEPLOY, OMBVALIDATE.
  • Рассмотрим основные языковые конструкции языка.
    1. Присоединение к репозиторию.
    Перед выполнением любых операций в репозитарии OWB, к нему необходимо подключиться. Оператор OMBConnect производит подключение к репозитарию. Оператор OMBCC выбирает в качестве текущего указанный проект и модуль.

      OMBCONNECT <owb_owner>/<password owb_owner>@<host>:<port>:<service name>
      OMBCC '/<проект>/<модуль>'
    
    Пример:
      OMBCONNECT owb_owner/owb_owner@test.ru:1521:orcl
      OMBCC '/ROLAP_TEST/RR_MART'
    

    2. Оператор работы с циклами.
    Для обработки циклов предназначен оператор foreach
    Пример:

    foreach tableName [OMBLIST TABLE ] {
    
    ... команды с обработкой каждого значения переменной '$tableName'
    
    }
    

    3. Оператор обработки условий.
    Как и в абсолютном большинстве языков программирования для обработки условий применяется оператор if.
    Пример:

        if {$var == "VARCHAR2"} {
    
           } elsif {:} {
    
                       }
           }
    
    4. Оператор присваивания.
    Для присвоания значений переменным использется оператор set.
    Пример:
    set i 1
    
        Команды создания модели

    Безусловно, для разработчков наибольший интерес представляют команды для оперирования с моделью данных в OWB. Для создания метаданных модели предназначен оператор OMBCREATE; тип создаваемого объекта указывается в качестве второго аргумента этого оператора. Рассмотрим команды создания измерений и кубов.

        Создание измерений

    1. Создание измерений.
    Для создания измерения используется вызов OMBCREATE DIMENSION .
    Пример:

    OMBCREATE DIMENSION 'Dim_Product'
    SET PROPERTIES (BUSINESS_NAME, DESCRIPTION)
    VALUES ('Продукт','Измерение Продукт')
    SET REF SEQUENCE 'META_SEQ'
      ... ... ...
    

    2. Определение уровней измерения.
    Для определения уровней измерения используется фраза ADD LEVEL оператора OMBCREATE DIMENSION.
    Пример:

      ADD LEVEL 'TOTAL' SET PROPERTIES (BUSINESS_NAME) VALUES ('Итого')
      ADD LEVEL 'PRODUCT_GROUP' SET PROPERTIES (BUSINESS_NAME) VALUES  ('Группа продуктов')
      ADD LEVEL 'PRODUCT' SET PROPERTIES (BUSINESS_NAME) VALUES ('Продукт')
      ... ... ...
    

    3. Определение атрибутов измерения.
    Для определения атрибутов для уровней измерения используется фраза ADD LEVEL_ATTRIBUTE OF LEVEL оператора OMBCREATE DIMENSION.
    Пример:

      ADD LEVEL_ATTRIBUTE 'ID'  OF LEVEL 'PRODUCT_GROUP'
        SET REF DIMENSION_ATTRIBUTE 'ID'
      ADD LEVEL_ATTRIBUTE 'NAME'  OF LEVEL 'PRODUCT_GROUP'
        SET REF DIMENSION_ATTRIBUTE 'NAME'
      ADD LEVEL_ATTRIBUTE 'DESCRIPTION'  OF LEVEL 'PRODUCT_GROUP'
        SET REF DIMENSION_ATTRIBUTE 'DESCRIPTION'
      ... ... ...
    

    4. Создание иерархии.
    Для создания иерархии используется фраза ADD HIERARCHY оператора OMBCREATE DIMENSION.
    Пример:

    ADD HIERARCHY 'H1'
      SET REF LEVELS ('TOTAL','PRODUCT_GROUP','PRODUCT')
    

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

        Создание кубов

    1. Создание куба.
    Для создания куба используется вызов OMBCREATE CUBE .
    Пример:

    OMBCREATE CUBE  'cube_01'
      SET PROPERTIES (BUSINESS_NAME, DESCRIPTION)
      VALUES ('Куб_01','Куб_01')
      ... ... ...
    
    2. Добавление измерений в куб.
    Для добавления измерения в куб используется фраза ADD DIMENSION операторов OMBCREATE CUBE.
    Пример:
    ADD DIMENSION_USE  'Dim_Product'
      SET REF LEVEL 'PRODUCT' OF DIMENSION 'Dim_Product'
      ... ... ...
    
    3. Добавление показателя в куб.
    Для добавления показателя в куб служит фраза ADD DIMENSION_USE операторов OMBCREATE CUBE.
    Пример:
    ADD MEASURE 'MES_SALES'
      SET PROPERTIES (DATATYPE)VALUES ('NUMBER')
      ... ... ...
    

    В прилагаемом файле приведен законченный пример создания куба с состоящего из 3-х измерений и содержащего два показателя.

        Создание преобразований (mapping)

    Чтобы осуществить преобразования данных из информационных источников и далее сохранить эти данные в аналитическом хранилище, необходимо определить, так называемые, преобразования (mapping). Для создания преобразований в OMBPlus используется оператор OMBCREATE MAPPING
    Пример:

    OMBCREATE MAPPING 'LOAD_CUBE_01'
      SET PROPERTIES (DESCRIPTION) VALUES ('Загрузка показателей в куб CUBE_01')
      ... ... ...
    

    В общем случае преобразование может иметь в своем составе много операторов трансформации входящих данных. Рассмотрим эти операторы преобразования более подробно.

    1. Добавление оператора <Входные параметры>.
    Для добавления оператора <Входные параметры> используется фраза ADD INPUT_PARAMETER оператора OMBCREATE MAPPING.
    Пример:

        ADD INPUT_PARAMETER OPERATOR 'IN_PARAMS'
          ADD ATTRIBUTE 'P_START_TIME' OF GROUP 'OUTGRP1' OF OPERATOR 'IN_PARAMS'  
          SET PROPERTIES (DATATYPE, LENGTH) VALUES ('VARCHAR2', '22')
    

    2. Добавление оператора <Таблица>. Для добавления оператора <Таблица> используется фраза ADD TABLE OPERATOR оператора OMBCREATE MAPPING.
    Пример:

        ADD TABLE OPERATOR 'DIM_TIME_SOURCE' BOUND TO TABLE  '../RR_SOURCE/DIM_TIME_SOURCE'
    

    В вышеописанном примере в преобразование добавляется оператор <Таблицы> со значениями справочника "Период времени".

    3. Добавление оператора <Фильтр>. Для добавления оператора <Фильтр> используется фраза ADD FILTER OPERATOR оператора OMBCREATE MAPPING.
    Пример:

        ADD FILTER OPERATOR 'FILTER_TIME'
          SET PROPERTIES (FILTER_CONDITION) VALUES ('DATE_VALUE  between   
           to_date(P_START_TIME, ''dd.mm.yyyy hh24:mi:ss'') and to_date(P_END_TIME, ''dd.mm.yyyy hh24:mi:ss'')')
         ADD ATTRIBUTE 'P_START_TIME' OF GROUP 'INOUTGRP1' OF OPERATOR 'FILTER_TIME' 
          SET PROPERTIES (DATATYPE, LENGTH) VALUES ('VARCHAR2', '22') 
         ... ... ...  
    

    4. Добавление оператора связи между элементами. Для добавления оператора связи между элементами используется фраза ADD CONNECTION FROM ATTRIBUTE оператора OMBCREATE MAPPING.
    Пример:

        ADD CONNECTION FROM ATTRIBUTE 'P_START_TIME' OF GROUP 'OUTGRP1' OF  
         OPERATOR 'IN_PARAMS' 
          TO ATTRIBUTE 'P_START_TIME' OF GROUP 'INOUTGRP1' OF OPERATOR 'FILTER_TIME' 
             ... ... ...
    

    5. Добавление оператора представления (view) - источника исходных данных. Для добавления оператора представления (view) используется фраза ADD VIEW OPERATOR оператора OMBCREATE MAPPING.
    Пример:

        ADD VIEW OPERATOR 'V_CUBE_01' BOUND TO VIEW '../RR_SOURCE/V_CUBE_01' 
         ... ... ...
    

    6. Добавление оператора <Join>. Для добавления оператора <Join> используется фраза ADD JOINER OPERATOR оператора OMBCREATE MAPPING.
    Пример:

        ADD JOINER OPERATOR 'JOIN' SET PROPERTIES (JOIN_CONDITION) 
          VALUES ('INGRP1.ID  =  INGRP2.TIME_ID') 
         ADD ATTRIBUTE 'ID' OF GROUP 'INGRP1' OF OPERATOR 'JOIN' SET PROPERTIES  
           (DATATYPE) VALUES ('NUMBER') 
          ADD CONNECTION FROM ATTRIBUTE 'ID' OF GROUP 'INOUTGRP1' OF OPERATOR  
           'FILTER_TIME' TO ATTRIBUTE 'ID' OF GROUP 'INGRP1' OF OPERATOR  'JOIN' 
         ADD ATTRIBUTE 'DIM_TIME' OF GROUP 'INGRP2' OF OPERATOR 'JOIN' SET PROPERTIES  
           (DATATYPE, LENGTH) VALUES ('VARCHAR2', '64') 
          ADD CONNECTION FROM ATTRIBUTE 'DIM_TIME' OF GROUP 'INOUTGRP1' OF  
           OPERATOR 'V_CUBE_01' 
          ... ... ... 
    

    В вышеописанном примере в преобразование добавляется оператор <Join> для связи операторов <Фильтр> и представления "V_CUBE_01".

    7. Добавление оператора <KEY_LOOKUP>. Оператор <KEY_LOOKUP> используется для получения ключа измерения (Id измерения в хранилище). Для добавления оператора <KEY_LOOKUP> используется фраза ADD KEY_LOOKUP OPERATOR оператора OMBCREATE MAPPING.
    Пример:

          ADD KEY_LOOKUP OPERATOR 'L_DIM_TIME' SET PROPERTIES (BOUND_NAME,  
            BOUND_LEVEL) VALUES ('DIM_TIME','MONTH') 
            ADD ATTRIBUTE 'DIM_TIME' OF GROUP 'INGRP1' OF OPERATOR 'L_DIM_TIME' SET  
              PROPERTIES (DATATYPE, LENGTH) VALUES ('VARCHAR2', '64') 
             ADD CONNECTION FROM ATTRIBUTE 'DIM_TIME' OF GROUP 'OUTGRP1' OF   
              OPERATOR 'JOIN' 
             TO ATTRIBUTE 'DIM_TIME' OF GROUP 'INGRP1' OF OPERATOR 'L_DIM_TIME'
              ... ... ...
    

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

        Валидация модели

    После прогонки скриптов в OMB Plus и генерации модели, необходимо сделать валидацию (проверку) всех объектов. Для этого также можно также воспользоваться скриптовым языком. Для валидации используется оператор OMBVALIDATE.
    Пример (валидация всех измерений):

        foreach dimName [OMBLIST DIMENSIONS] {
          OMBVALIDATE DIMENSION '$dimName' 
           OUTPUT TO FILE 'C:tempvalidate_dim.log' WRITE ALL
    }
    

    В прилагаемом файле приведен пример валидации измерений в репозитарии OWB.

    Заключение

    Использование OMB Plus позволяет автоматизировать все операции по сопровождению модели в Oracle Warehouse Builder.
    Если определение модели находится во внешнем источнике, например, в файлах формата MS Excel или в таблицах СУБД Oracle Database, то можно написать процедуры на PLSQL , которые бы генерировали скрипты OMP Plus по заранее описанной модели. В прилагаем архиве рассмотрен случай, когда определение модели хранится в СУБД Oracle, и необходимо перенести ее в OWB. Для генерации tcl-скриптов создания модели разработан PL/SQL-пакет, исходный код которого также находится в архиве.

    Используемая литература

      Основная используемая литература по подготовке данного материала - документация Oracle:

        OracleR Warehouse Builder API and Scripting Reference 10g Release 2 (10.2) B28225-01
        OracleR Warehouse Builder Users Guide 10g Release 2 (10.2) B28223-03

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 10.10.2008 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Oracle Database Personal Edition Named User Plus License
Oracle Database Personal Edition Named User Plus Software Update License & Support
Oracle Database Standard Edition 2 Processor License
Oracle Database Standard Edition 2 Named User Plus License
ABBYY Lingvo x6 Многоязычная Профессиональная версия, электронный ключ
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
eManual - электронные книги и техническая документация
Компьютерные книги. Рецензии и отзывы
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100