Скромний досвід і пачка граблів Oracle BI EE

Життя вимагає від нас знання гіршого, щоб робити з нього найкраще.
Оллпорт Г.

Це моя перша стаття на Хабрі. У ній хотілося б поділитися своїм скромним досвідом наступання на граблі в Oracle Business Intelligence EE, Щоб, можливо, застерегти тих, кому ще належить цей нелегкий шлях. Російських статей і тим більше книг по цьому продукту я не знайшов, тому сподіваюся, що ця стаття стане корисним матеріалом для всіх новачків.

Введення


Oracle Business Intelligence EE (Далі Продукт) – це інструмент бізнес-аналітики, який служить для полегшення сприйняття великих обсягів даних для кінцевих користувачів. Але перш, ніж ці самі користувачі побачать витончену діаграму і акуратну таблицю, нам, тобто розробникам і адміністраторам, необхідно покопатися під капотом і як слід вимазатися у всіх даних, представлених і формулах агрегації. У даній статті я буду часто посилатися на покрокову інструкцію з офіційного сайту, Тому що основні кроки там вже описані і мені б не хотілося повторюватися, зупинившись детальніше на труднощах, які я випробував під час роботи.
Відразу повинен сказати, що зіткнувся я з Продуктом майже випадково і досвіду у сфері бізнес-аналітики я не маю, тому напевно багато з цієї статті здасться читачам очевидним. Під час розробки вимог до одного з проектів замовник побажав, щоб звіти готувалися саме в Продукт, тому що він вже куплений і тепер необхідно його покупку виправдати. Відповідальним за цю частину проекту був призначений ваш покірний слуга.

Граблі № 1. Що від нас чекають


Основним елементом адміністрування бізнес-моделі в Продукт є Administration Tool. Відкривши його вперше, досить складно уявити (принаймні мені), з якої ж сторони почати розробку моделі. Відповідь: з правої.

Перед нами 3 рівня представлення. Самий нижній, фундаментальний – праворуч. Це фізичний рівень. У ньому очікується побачити структуру таблиць бази даних як вона є, можливо лише за виключенням не ключових полів, що містять зайву для користувача і інших рівнів подання інформацію.
У другому рівні, логічному (або рівні бізнес-моделі), від нас очікують побачити структуру типу “зірка”. Центр зірки – це таблиця фактів; промені зірки – це вимірювання (dimensions). Тут починається плутанина, так як цей термін використовується і для самих таблиць, і для особливого типу додаткової ієрархії. Ми можемо взяти таблицю, яка вже в термінології називається вимірюванням, і зробити її справжнім виміром; це означає, що ми зіставляємо певну ієрархію її полів, за якими буде йти уточнення.
Класичний приклад: таблиця, що зберігає інформацію щодо часових періодів. Тут ієрархія буде включати в себе рік, півріччя, квартал, місяць і т.д.
У самих же логічних таблицях будуть представлені поля, взяті з фізичного рівня, обчислювані і агреговані поля.
Третій, самий лівий рівень, ближче всіх до користувача – презентаційний. Тут ми повинні створити структуру, яку вже буде використовувати кінцевий користувач для складання звітів. Власне, це набір полів, які він зможе включати в звітні таблиці. А це означає, що те, що ми побачимо в лівій частині екрану – побачить і користувач. Тут ми перейменовуємо поля з внутрішньобазовими на російську мову і міняємо їх ієрархію на зрозумілу користувачеві.
Граблі тут полягають у тому, щоб зрозуміти, для чого служить кожен з рівнів, і строго слідувати його призначенню. Нижче я розповім, до чого може призвести відсутність чіткого розуміння поділу ролей між рівнями.
Детальніше про збірку всіх рівнів подання – в інструкції.

Граблі № 2. Де база? Чому я її не бачу?


Дуже коротко. У покрокової інструкції наведено спосіб по налаштуванню ODBC драйвера Oracle. Що ж робити, якщо з тих чи інших причин цей драйвер не доступний або не працює? Все дуже просто. Фізичний рівень підтримує не тільки імпорт з “видимого” для Administration Tool джерела, але й використання звичайних Sql запитів. Для цього досить створити нову таблицю в фізичному рівні, в її властивостях вказавши тип Select і ввести необхідний Sql запит.

Граблі № 3. Ходьба по колу


У нашій розробці база даних була спроектована таким чином, що виникали декілька шляхів між двома таблицями: в моєму випадку ієрархія категорій фінансів (таблиця В) і структурна ієрархія (таблиця Г) сходилися десь на верхньому рівні (таблиця A), і в той же час існувала таблиця фактів, одночасно використовує обидві ієрархії в якості вимірювань (таблиця Б). Виходить, що від таблиці Б до А можна було дістатися двома шляхами. Таких приколів Продукт ой як не любить, тому що гарантувати, що в результаті ми не прийдемо до суперечливих відомостями, він не може. А ми – можемо. Як бути? Знову ж, все просто, якщо знаєш що робити. Таких викрутасів не можна допускати в логічному рівні представлення, тому що саме по ньому здійснюється зріз даних, але у фізичному все інакше. Все реально існуючі взаємозв’язки ми формуємо на фізичному рівні, а на логічному – намагаємося обдурити систему. Я, наприклад, додав в таблицю Б поле, безпосередньо посилається на запис в таблиці А, в обхід обох ієрархій, і одну їх ієрархій “відрізав” від таблиці А. Кільце в логічному рівні розімкнуло, а цілісність зв’язків залишилася недоторканою завдяки фізичній моделі. Можливо є й інші, більш витончені і правильні способи, але запропонований мною – працює, а інших я не зустрів. І, знову ж таки, таких петель потрібно намагатися уникати вже при проектуванні баз даних, але в моєму випадку базу дали – треба робити.

Граблі № 4. Найкоротші


Не забувайте, що Oracle любить тільки ПРОПИСНІ букви. Щоб уникнути труднощів у подальшому, скрізь, де це можливо, уникайте малих літер у назвах таблиць і елементів уявлення.
На цьому будемо вважати, що з репозиторієм ми закінчили. Якщо ця стаття сподобається читачам, чи вони принаймні висловлять свою думку на користь продовження – я напишу про ще пачку особливостей, на котоире варто звернути увагу, пов’язаних не тільки з репозиторієм, але і з адмініструванням користувацького простору Продукту.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*