Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Использование OLAP_TABLE: как получить данные для определнного уровня иерархии / 7 сообщений из 7, страница 1 из 1
14.06.2006, 17:59
    #33791151
MikTar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
Доброго времени суток всем :)
Возникла потребность из SQL работать с данными из AW Oracle.

К примеру есть измерение TIME.
В измерение есть иерархия CALENDAR состоящая из 3 уровней: YEAR, QUARTER, MONTH
Возникла проблема написать SQL запрос(использую OLAP_TABLE ) к этому измерению для
получения информации по уровням, то-есть получить значения измерения принадлежащие
уровню YEAR, или QUARTER, или MONTH
Если использовать параметр GID то я могу написать селект типа:

SELECT *
FROM TABLE(OLAP_TABLE(
'global_aw.global DURATION QUERY',
'',
'',
'DIMENSION aw_time FROM time WITH'
||' HIERARCHY time_parentrel'
||' GID aw_product_gid FROM time_gid'
||' ATTRIBUTE aw_desc FROm time_long_description'
))
where aw_product_gid= 3

Запрос дает мне искомый результат.
Но ведь я должен знать что значение time_gid=3 относится к уровню иерархии YEAR. Как определить
отношение уровня иерархии к GID не понятно.
Может кто сталкивался с подобной проблемой.....
...
Рейтинг: 0 / 0
14.06.2006, 18:23
    #33791237
Goster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
[src]SELECT *
FROM TABLE(OLAP_TABLE(
'global_aw.global DURATION QUERY',
'',
'LIMIT time TO time_levelrel ''YEAR_LEVEL''',
'DIMENSION aw_time FROM time WITH
HIERARCHY time_parentrel
INHIERARCHY time_inhier
ATTRIBUTE aw_desc FROm time_long_description'
))

Но здесь есть одна тонкость. Если вы используете limit в параметре olap_command, то он может повлиять на состояние измерения в сесси. Это может произойти в том случае, если ограничиваемое измерение не указано в конструкции INHIERARCHY.
...
Рейтинг: 0 / 0
15.06.2006, 11:53
    #33792346
MikTar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
Огромное спасибо, наконец понял, где скрывается зависимость между уровнями иерархии и значениями измерения :). Попробовал переписать запрос, избавившись от DML, и получил положительный результат :) :

SELECT *
FROM TABLE(OLAP_TABLE(
'global_aw.global DURATION QUERY',
'',
'',
' MEASURE aw_time_levelrel FROM time_levelrel '
||' DIMENSION aw_time FROM time WITH'
||' ATTRIBUTE aw_time_long_description FROM time_long_description'
)) a
where aw_time_levelrel= 'YEAR'
...
Рейтинг: 0 / 0
15.06.2006, 16:38
    #33793585
Goster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
А зачем избавляться от dml?
Мне кажется, что варант, который предложил я будет работать быстрее. Я порекомендовал бы использовать именно его.
...
Рейтинг: 0 / 0
19.06.2006, 11:32
    #33799110
MikTar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
GosterА зачем избавляться от dml?
Мне кажется, что варант, который предложил я будет работать быстрее. Я порекомендовал бы использовать именно его.
Да, согласен, логично предположить что использование DML в этом случае будет быстрее. Пока работаю с тестовыми, небольшими по объему, даными, проверить не могу. Когда доберусь до больших объемов, сделаю замеры :). Просто моя программа делает автоматическую генерацию запросов и без DML нет необходимости использовать иерархии(HIERARCHY и INHIERARCHY), что делает генерацию чуть проще :) Но быстродействие ессно будет решающим фактором.
...
Рейтинг: 0 / 0
19.06.2006, 12:37
    #33799364
Birkhoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
А что тут думать?
Если не используется фильтр в DML, то сначала из OLAP тянется весь набор данных, по сути весь куб, а потом в Oracle он отфильтровывается по WHERE.
А если используется DML фильтр, то во-первых, в OLAP не будет разворачиваться весь куб, а во-вторых весь куб не будет выбрасываться в Oracle.
...
Рейтинг: 0 / 0
20.06.2006, 10:44
    #33801785
Goster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
MikTarПросто моя программа делает автоматическую генерацию запросов и без DML нет необходимости использовать иерархии(HIERARCHY и INHIERARCHY), что делает генерацию чуть проще :) Но быстродействие ессно будет решающим фактором.

Я тоже делаю автоматическую генерацию запросов. Тем не менее, не могу сказать, что с использованием dml что-то усложняется. Даже наоборот :)
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Использование OLAP_TABLE: как получить данные для определнного уровня иерархии / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]