BI EE &Essbase &Общее Андрей Пивоваров on 23 Jun 2009 05:28 pm
Проблема с Direct Database Request к Essbase в BI EE
В Oracle BI EE есть интересная возможность написать запрос непосредственно к базе данных, минуя метаслой BI. Называется это Direct Database Request. Это иногда бывает полезно, когда нужен какой-то разовый отчет, а метаданных для него нет и создавать долго.
Эту возможность нужно использовать с осторожностью, поэтому по умолчанию она выключена даже у администратора.
В случае Essbase пользы от нее больше, так как через метаслой не ко всем объектам Essbase вообще можно обратиться. Но при работе с Direct Database Request есть неприятный баг.
Возьмем, к примеру, такой запрос:
With set [PRODUCT1] as \'[PRODUCT].Generations(1).members\' set [Time2] as \'[Time].Generations(2).members\' select { [MEASURES].[Margin] } on columns, NON EMPTY {crossjoin ({[PRODUCT1]},{[Time2]})} properties ANCESTOR_NAMES, GEN_NUMBER on rows from [TBC.Tbc]
Если мы попробуем его распарсить, то есть определить какие колонки будут в отчете – все ок, но если попытаться получить результат – появляется ошибка, подобная этой:
Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43093] An error occurred while processing the EXECUTE PHYSICAL statement. [nQSError: 46008] Internal error: File .\\Src\\SQXDGEssbaseCAPI.cpp, line 1050. (HY000)
Это баг. Он открыт довольно давно. Его номер на металинке – 6869282. И он уже какое то время был в непонятном состоянии – проблема есть, но причина не известна.
И вот недавно, благодаря энтузиазму Романа Колеченкова удалось сдвинуть его с мертвой точки и разработчики выяснили, что есть проблема в парсере MDX запросов, причем обойти ее довольно просто. Достаточно окружить выражение \’FROM\’, например двумя пробелами.
То есть тот же запрос, переписанный так:
With set [PRODUCT1] as \'[PRODUCT].Generations(1).members\' set [Time2] as \'[Time].Generations(1).members\' select { [MEASURES].[Margin] } on columns, NON EMPTY {crossjoin ({[PRODUCT1]},{[Time2]})} properties ANCESTOR_NAMES, GEN_NUMBER on rows from [TBC.Tbc]
работает.
Баг воспроизодится у меня в версии BI EE 10.1.3.4.1. Проблему обещают устранить в следующем релизе Oracle BI EE.
__________________________________Читайте также:
- Впечатления от Oracle OLAP 11g. Часть 1.
- Впечатления от Oracle OLAP 11g. Часть 2.
- Заметки об инсталляции Oracle Essbase
- Про лицензирование продуктов Oracle
- На OTN появился BI EE плагин для AWM
on 23 Jun 2009 at 8:40 pm 1.er said …
Романа Колеченкова == Роман Колчин ?
on 07 Jul 2009 at 10:49 am 2.Roman K. said …
Роман Колеченков = Роман Колеченков