Использование скриптового языка Oracle Warehouse Builder. Профессионалу-разработчикуИсточник: Программирование для всех Евгения Качалкина
ВведениеДанная статья будет интересна специалистам, занимающимся разработкой хранилищ данных с помощью программного средства Oracle Warehouse Builder (OWB). Как известно, данное средство представляет собой графический инструмент создания многомерных моделей с помощью средств Drag and Drop и различных Wizard'ов, не прибегая к программированию. Это дает большое преимущество проектировщикам, не владеющих программированием, и в то же время является и недостатком, т.к. при проектировании большой модели, включающей большое количество показателей, измерений и ETL-процедур, сам процесс проектирования будет монотонным, включающим большое количество повторяющихся операций. Такая процедура не исключает появления ошибок, и будет занимать много времени. В данной статье рассматривается идея программного создания модели в OWB с помощью скриптового языка. Также приведены подробные примеры использования OMB Plus. Скриптовый язык OWBИсполняемое окружение - запуск скриптов, особенностиВ составе OWB имеется язык программирования OMB Plus, который предназначен для создания сценариев (скриптов). OMBPlus - это расширение языка TCL, которое позволяет писать синтаксические конструкции общего назначения с использованием переменных, циклов, условий, обработок ошибок и т.д. $OWB_HOME/owb/win32/ombplus.bat где $OWB_HOME - каталог в который установлен OWB. Рис.1 Текстовая консоль выполнения OMB Plus Также имеется графический вариант консоли выполнения OMB Plus, - его запуск производится с помощью команды: $OWB_HOME/owb/win32/ombpluss.bat
Чтобы не вводить команды вручную, можно написать скрипт, используя синтаксис команд OMB Plus, и оформить его в виде отдельного файла с расширением tcl. $OWB_HOME/owb/win32/ombplus.bat <полный путь>/<имя файла>.tcl Существуют некоторые особенности в использовании команд в OMB Plus:
Если же такой символ используется в имени объекта, то необходимо его помечать обратным слэшем (\). OMBCREATE TABLE 'DW$SALES' Основные командыOMB Plus имеет следующие группы команд:
Рассмотрим основные языковые конструкции языка. OMBCONNECT <owb_owner>/<password owb_owner>@<host>:<port>:<service name> Пример: OMBCONNECT owb_owner/owb_owner@test.ru:1521:orcl 2. Оператор работы с циклами. foreach tableName [OMBLIST TABLE ] { ... команды с обработкой каждого значения переменной '$tableName' } 3. Оператор обработки условий. if {$var == "VARCHAR2"} { } elsif {:} { } } 4. Оператор присваивания. set i 1 Команды создания моделиБезусловно, для разработчиков наибольший интерес представляют команды для оперирования с моделью данных в OWB. Для создания метаданных модели предназначен оператор OMBCREATE ; тип создаваемого объекта указывается в качестве второго аргумента этого оператора. Рассмотрим команды создания измерений и кубов. Создание измерений1. Создание измерений. OMBCREATE DIMENSION 'Dim_Product' SET PROPERTIES (BUSINESS_NAME, DESCRIPTION) VALUES ('Продукт','Измерение Продукт') SET REF SEQUENCE 'META_SEQ' ... ... ... 2. Определение уровней измерения. 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 'ID' OF LEVEL 'PRODUCT_GROUP' 4. Создание иерархии. ADD HIERARCHY 'H1' В реальных проектах оператор создания измерения может иметь довольно большой размер. В прилагаемом файле приведен законченный пример создания 4-х уровневого измерения. Создание кубов1. Создание куба. OMBCREATE CUBE 'cube_01' 2. Добавление измерений в куб. ADD DIMENSION_USE 'Dim_Product' 3. Добавление показателя в куб. ADD MEASURE 'MES_SALES' В прилагаемом файле приведен законченный пример создания куба с состоящего из 3-х измерений и содержащего два показателя. Создание преобразований (mapping)Чтобы осуществить преобразования данных из информационных источников и далее сохранить эти данные в аналитическом хранилище, необходимо определить, так называемые, преобразования (mapping). Для создания преобразований в OMBPlus используется оператор OMBCREATE MAPPING OMBCREATE MAPPING 'LOAD_CUBE_01' В общем случае преобразование может иметь в своем составе много операторов трансформации входящих данных. Рассмотрим эти операторы преобразования более подробно. 1. Добавление оператора <Входные параметры>. ADD INPUT_PARAMETER OPERATOR 'IN_PARAMS' 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' 4. Добавление оператора связи между элементами. Для добавления оператора связи между элементами используется фраза ADD CONNECTION FROM ATTRIBUTE оператора OMBCREATE MAPPING. ADD CONNECTION FROM ATTRIBUTE 'P_START_TIME' OF GROUP 'OUTGRP1' OF 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) В вышеописанном примере в преобразование добавляется оператор <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, В прилагаемом файле приведен пример создания преобразования. Указанный скрипт не является готовым решением, он лишь задает пример подхода к построению преобразований (в нашем примере не реализован весь алгоритм ETL , в частности, не генерируются связи между операторами KEY_LOOKUP и таблицей приемника). Валидация моделиПосле прогонки скриптов в OMB Plus и генерации модели, необходимо сделать валидацию (проверку) всех объектов. Для этого также можно также воспользоваться скриптовым языком. Для валидации используется оператор OMBVALIDATE. foreach dimName [OMBLIST DIMENSIONS] { В прилагаемом файле приведен пример валидации измерений в репозитарии OWB. ЗаключениеИспользование OMB Plus позволяет автоматизировать все операции по сопровождению модели в Oracle Warehouse Builder. |