SQL.RU
 client/server technologies
 
 Главная | Документация | Статьи | Книги | Форум | Опросы | Рассылка | Работа | Поиск | FAQ |

Добро пожаловать в форум, Guest  >>  Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик  Ответить
 Использование OLAP_TABLE   [new]
MikTar
Member

Откуда: Рязань
Сообщений: 32
Возникла потребность из SQL работать с данными из AW Oracle. Единственная возможность сдесь использовать OLAP_TABLE. Посмотрел доку, очень грамоздкая констукция и явная нехватка примеров. У самого опыта с AW да и вообще с ОЛАПом почти никакого, работал только с реляционными базами. Плиз, если у кого есть скрипты примеров использование OLAP_TABLE выложите сдесь или вышлите на мыло: miktar@mail.ru

Попробовал использовать dbms_awm.create_AWdimension_access, как я понимаю(хотя может ошибаюсь) он создает реляционные вьюхи для измерений. Делалал все как в доке полный комплект (dbms_awm.refresh_awdimension...ит.д.) но выскакивает ошибка типа:
ORA-06510: PL/SQL: необработанное исключение, определенное пользователем
ORA-06512: на "OLAPSYS.DBMS_AWM", line 1143
У меня Оракл Release 10.2.0.1.0 .Создал GLOBAL_AW из стандартных примеров. Закачал данные. Вижу измерения и кубы из AWM 10.2.0.2.0A Данные видны. Моя задача научиться свободно писать SQL запросы к объектам AW.

Может кому удавалось получить скрипты вьюх сгенеренных dbms_awm.create_AWdimension_access и dbms_awm.create_AWcube_access, очень бы хотелось бы на них посмотреть :). Если не сложно вышлите, особенно интересуют скрипты для стандартных схем примеров, типа: GLOBAL, SH.
30 май 06, 14:20    [2720539] Ответить | Цитировать    Сообщить модератору

 Re: Использование OLAP_TABLE   [new]
Goster
Member

Откуда: Питер
Сообщений: 416
У меня возникает навязчивое ощущение, что у тебя в голове полная путаница. И, следовательно, в посте.

Для начала несколько вопросов:
Если твоя задача, как ты написал
MikTar
научиться свободно писать SQL запросы к объектам AW.
,
то зачем нужен dbms_awm?
Мой совет - не запаривайся на подобные вещи.

Для создания запросов к аналитическим пространствам есть, как ты и говорил, существует функция OLAP_TABLE. Используй только её.

По поводу работы OLAP_TABLE в двух словах и очень кастрировано:
Пусть у нас есть AW под названием AWG.
В нем находится 3 измерения:
time_dim
firms_dim
countries_dim

И один показатель(мера)
quantity
OLAP_TABLE(analytic_workspace, table_object, olap_command, limit_map)
С тремя первыми параметрами все просто:
analytic_workspace - здесь указываешь название AW и длительность присоединения AW - чаще всего SESSION.
Например - AWG DURATION SESSION
table_object - лениво описывать подробно, но в двух словах - нужен если ты определил свой тип для возвращаемого значения. Лично я никогда не использовал пока.
olap_command - команда, которая будет выполнена перед запросом данных. Чаще всего - limit.
Например - LIMIT counties_dim TO ''England''
limit_map - самый важный параметр. На нем остановимся подробнее.
Итак, здесь описывается то, что ты хочешь получить от измерения. Хдесь указываешь показатели и измерения. Если хочешь просто получить список значений какого-то измерения указываешь только измерение. Например так
DIMENSION DIM_LABEL FROM COUNTRIES_DIM
Если хочешь получить значения показателя по измерениям, то пишешь:
MEASURE MEAS_LABEL FROM cubname_quantity
DIMENSION DIM_LABEL FROM firms_dim
............

DIM_LABEL и MEAS_LABEL - то как будут называться соответствующие колонки в запросе.
При этом, переменная будет называться именно cubname_measname, где cubname - имя куба, measname - имя переменной.

после MEAS_LABEL можешь указать фразу AS datatype. Где datatype - тип данных, которому приводить показатель. Чаще всего number.

Т.е. если ты хочешь вывести показатель quantity по измерениям time_dim
firms_dim
countries_dim
, то ситаксис будет такой:
MEASURE quant AS NUMBER FROM cubname_quantity
DIMENSION firms FROM FIRMS_DIM
DIMENSION countues FROM COUNTRIES_DIM
DIMENSION time FROM TIME_DIM

Еще можно показывать аттрибуты измерения, например long_description. Для этого, после фразы dimension пишешь
WITH ATTRIBUTE ATTR_LABEL FROM DIM_NAME_ATTR_NAME.
Например для измерения firms_dim:
DIMENSION firms FROM FIRMS_DIM
WITH ATTRIBUTE firm_name FROM FIRMS_DIM_LONG_DESCRIPTION
.

Пример полного использования Olap_table:
SELECT *
FROM TABLE(
OLAP_TABLE(
'AWG DURATION SESSION',
'',
'',
'MEASURE quant AS NUMBER FROM cubname_quantity
DIMENSION firms FROM FIRMS_DIM
WITH ATTRIBUTE firm_name FROM FIRMS_DIM_LONG_DESCRIPTION
DIMENSION countues FROM COUNTRIES_DIM
DIMENSION time FROM TIME_DIM'
)
)

Т.е. все просто.
30 май 06, 16:19    [2721301] Ответить | Цитировать    Сообщить модератору

 Re: Использование OLAP_TABLE   [new]
Goster
Member

Откуда: Питер
Сообщений: 416
ЗЫ:
Все вышесказанное справедливо, если кубы создавались при помощи AWM.
30 май 06, 16:20    [2721310] Ответить | Цитировать    Сообщить модератору

 Re: Использование OLAP_TABLE   [new]
MikTar
Member

Откуда: Рязань
Сообщений: 32
Сдесь немного другая ситуация. Писать такие простые запросы я могу и сейчас :). Проблема возникает с более сложными запросами. Как например получить запрос к тому же измерения TIME с указанием столбцов ссылки, то-есть измерения иерархическое, как получить столбцы связей внутри и прочее, тоесть раскатать все содержимое измерения, с уровнями, иерархиями и прочим. Потом использование всяких INHIERARCHY, HATTRIBUTE, ROW2CELL, FAMILYREL, а также использование выражения MODEL. Вот как раз таких примеров мне и не хватает чтобы понять как это работает. Вот поэтому я и думал что пакет dbms_awm вроде генерит реляционые вьюхи к объектам AW и по ним можно понять все тонкости использования OLAP_TABLE.
31 май 06, 15:01    [2725919] Ответить | Цитировать    Сообщить модератору

 Re: Использование OLAP_TABLE   [new]
Goster
Member

Откуда: Питер
Сообщений: 416
На счет dbms_awm - признаюсь, никогда не использовал - не было необходимости. На счет более сложных запросов - как вариант предлагаю постить конкретные задачи. Тогда, возможно, здесь смогут помочь.
31 май 06, 15:20    [2726035] Ответить | Цитировать    Сообщить модератору

 Re: Использование OLAP_TABLE   [new]
Alex_D
Member

Откуда:
Сообщений: 890
to Goster Большое спасибо, за столь подробное описание. Для человека который не разу не сталкивался с OLAP_TABLE самое то. Для начала.
MikTar
Плиз, если у кого есть скрипты примеров использование OLAP_TABLE

Немного примеров с использованием таких вещей как INHIERARCHY, HATTRIBUTE, ROW2CELL, FAMILYREL можно наити в документациии на Oracle 10.2 Например, здесь - посмотрите главы с 29 по 34 в каждой главе есть примеры с OLAP_TABLE

p.s. Поиск по каждому слову INHIERARCHY, HATTRIBUTE, ROW2CELL, FAMILYREL в документации на 10.2. Выведет Вас еще на несколько примеров, которые возможно я не учел в своей ссылке.
31 май 06, 16:28    [2726441] Ответить | Цитировать    Сообщить модератору

Все форумы / OLAP и DWH Ответить
Rambler's Top100 Powered by ActualForum 1.5.2 Copyright (c) Alex Sibilev 2000-2010