powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
7 сообщений из 7, страница 1 из 1
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
    #33791151
MikTar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток всем :)
Возникла потребность из 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
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
    #33791237
Goster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[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
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
    #33792346
MikTar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное спасибо, наконец понял, где скрывается зависимость между уровнями иерархии и значениями измерения :). Попробовал переписать запрос, избавившись от 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
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
    #33793585
Goster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем избавляться от dml?
Мне кажется, что варант, который предложил я будет работать быстрее. Я порекомендовал бы использовать именно его.
...
Рейтинг: 0 / 0
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
    #33799110
MikTar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GosterА зачем избавляться от dml?
Мне кажется, что варант, который предложил я будет работать быстрее. Я порекомендовал бы использовать именно его.
Да, согласен, логично предположить что использование DML в этом случае будет быстрее. Пока работаю с тестовыми, небольшими по объему, даными, проверить не могу. Когда доберусь до больших объемов, сделаю замеры :). Просто моя программа делает автоматическую генерацию запросов и без DML нет необходимости использовать иерархии(HIERARCHY и INHIERARCHY), что делает генерацию чуть проще :) Но быстродействие ессно будет решающим фактором.
...
Рейтинг: 0 / 0
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
    #33799364
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что тут думать?
Если не используется фильтр в DML, то сначала из OLAP тянется весь набор данных, по сути весь куб, а потом в Oracle он отфильтровывается по WHERE.
А если используется DML фильтр, то во-первых, в OLAP не будет разворачиваться весь куб, а во-вторых весь куб не будет выбрасываться в Oracle.
...
Рейтинг: 0 / 0
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
    #33801785
Goster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikTarПросто моя программа делает автоматическую генерацию запросов и без DML нет необходимости использовать иерархии(HIERARCHY и INHIERARCHY), что делает генерацию чуть проще :) Но быстродействие ессно будет решающим фактором.

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


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