« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга

Тестирование 64-битных приложений

ПнВтСрЧтПтСбВс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
    Популярное
Взлом и защита PHP-скриптов

Перекодировка в юникод

Chapter 5. Работа с картинками

Ускорение PHP-программ

Функция AccessResource

Создание GUI приложений на PHP

Введение в объектно-ориентированное программирование

Конечные классы

Режим таблицы

Функция GetThresholdEvent




    Архив файлов



    Сообщества



    Документация

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


отправить ссылку другу версия для печати  Обсудить на форуме

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



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

Использование скриптового языка Oracle Warehouse Builder


Евгения Качалкина
ekachalkina@hotboxl.ru

СОДЕРЖАНИЕ

  • Введение
  • Скриптовый язык OWB
  • Команды определения модели
  • Заключение
  • Используемая литература


    Введение

    Данная статья будет интересна специалистам, занимающимся разработкой хранилищ данных с помощью программного средства 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




Рубрика: Oracle




Инструменты Internet Explorer 8 Beta 2 для разработчиков.

Вебмастеру

В марте этого года мы уже писали об инструментах для разработчика в IE8 Beta 1, но IE8 Beta2 позволяет более полно использовать инструменты за счет значительных изменений в имеющихся функциях, а также новых возможностей. В принципе инструменты для разработчика должны обладать следующими свойствами: Быть интегрированными и простыми в использовании; Иметь визуальный интерфейсC их помощью можно быстро протестировать сайт.


Подробнее... | Рубрика: Вебмастеру | Добавлено: 05.09.2008

Google Developer Day 2008 в Москве.

Мероприятия

Дата проведения: 28 октября 2008 г.; Место проведения: Амбер Плаза, Москва, Россия. Конференция для веб-разработчиков и разработчиков мобильных приложений в Москве. Узнайте, как наилучшим образом использовать инструменты разработки и API от Google, чтобы создавать социальные, мобильные и картографические приложения, как использовать AJAX/JavaScript инструменты и библиотеки от Google и многое другое из первых уст.


Подробнее... | Рубрика: Мероприятия | Добавлено: 05.09.2008

ТОП 10 самых раздражающих факторов для программиста.

Разное

Совсем недавно наткнулся в интернете на забавный "хит-парад" наиболее раздражающих вещей для программиста. Поскольку он был на английском — решил перевести текст и несколько адаптировать к нашим реалиям…


Подробнее... | Рубрика: Разное | Добавлено: 03.09.2008

Остальные статьи:

Windows Server 7, 8 и 9
jQuery для JavaScript-программистов
Инновационный веб-броузер Google Chrome стартует уже сегодня
Windows 7: подход к производительности системы
Trac + Subversion @ Ubuntu: Revisited
[g]Vim в режиме Python: Рекомпиляция в Windows
Java + JSON. Пути к дружбе
Драйвер SQL Server 2005 для PHP
Типы данных в MySQL (сжатый справочник для PHP программиста)
PHP класс для работы с Яндекс.XML
Ошибки начинающих PHP разработчиков
Наследование шаблонов в Smarty
Особенности хранения сессий PHP в memcached
Internet Explorer 8 beta 2
9 правил для начинающего Ajax-разработчика
ExtJS 2.2 - полная поддержка Firefox 3, новые виджеты и другие нововведения


Цитата дня (все,добавить):



    Рубрикатор

Программирование

C/С++
Обучение
Windows API
XAML
Моделирование
Паттерны
Visual Basic 7 .NET
WxWidgets
Функции WinApi
Функции С++
Разработка под Mac OS
Eiffel
Visual Studio 2008
UI дизайн
Алгоритмы
Конкурсные статьи
Turbo Pascal
Visual Studio
CASE-средства
Visual Studio 2005
Без VCL
Delphi
Тех. документация
Тестирование
Software Testing
ООП
TCP/IP
Google Android
Windows Installer
.NET Framework
Драйвера
C# C Sharp
Справка
Проектирование
Информ. системы
Visual Basic
Assembler
Оптимизация кода
Gtk+
Компоненты
Реинжиниринг
Управление проектами
Extreeme programming
Lotus Notes
Алгебраическое проектирование

Интернет технологии

PHP
Perl
ASP
WAP
Cookies
SSI
CGI
Web Servers
VB Script
DNS
CSS
XML
Html
Java Script
Java2ME
Firewall
Flash
.htaccess
Apache
VRML
Протоколы
Поисковые системы
Технология JAVA
Учебник по PHP
Учебник по JavaScript
Учебник по XML
Java Q&A
AJAX
DHTML
XHTML
Dreamweaver
Web 2.0
Python
Вебмастеру
Cisco
Ruby on Rails
Silverlight

Базы данных

Access
InterBase
MySQL
Oracle
ADO .NET
Основы SQL
Учебник по Access 2002
MS
Microsoft FoxPro
Доступ к данным
XML в MS SQL Server 2000
ODBC и MyODBC
Обучение
Caché
DB2
PostgresSQL
Sybase
Теория
Хранилища данных
Безопасность
Реляционные данные
MySQL и mSQL

Остальное:

Разное
Обзоры книг
Безопасность
Графика и дизайн
Юмор
Linux
Фракталы
Microsoft Axapta
Многоядерность
Сети
Microsoft Office
Работа
MS-DOS
Криптография
Графика и игроделание
Новости SDK
Системы защиты
Учебник по AutoCad
CVS
Windows XP
Windows Server 2003
Windows Vista
Windows 7
Мероприятия

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 91
Пользователей: 0