Автоматизація часового аналізу в Analysis Services 2005

Служба Analysis Services в SQL Server 2005 піддалася докорінної переробки, і, на наш погляд, в даний час це найпотужніша платформа бізнес-аналітики у світі. Численні функції і вбудовані удосконалення Analysis Services 2005 забезпечують автоматичне, інтелектуальне вирішення багатьох типових завдань бізнесу. Не потрібно бути фахівцем у програмуванні OLAP або Багаторозмірні виразів Multidimensional Expressions (MDX), щоб будувати повнофункціональні аналітичні додатки.


Останні вдосконалення Analysis Services 2005 в області тимчасового аналізу дозволяють швидко виконувати розрахунки, що враховують тимчасові чинники. Для початку розглянемо, яким чином новий майстер Business Intelligence Wizard полегшує часовий аналіз. Потім будуть дані відповіді на питання «як» і «чому», що стосуються внутрішніх механізмів майстра. І нарешті, ми проаналізуємо методи моделювання, використовувані в тимчасовому аналізі, і початковий текст, що генерується майстром, щоб показати оптимальні прийоми моделювання як метаданих, так і MDX. Дана стаття являє собою лише короткий огляд, тому що міститься в ній інформація буде корисна в першу чергу фахівцям, знайомим з SQL Server 2000 Analysis Services.


Часовий аналіз


Як правило, підприємствам потрібно проаналізувати тимчасової ряд для даної точки в певному наборі тимчасових інтервалів. Analysis Services дозволяє виконувати обчислення на основі тимчасових показників – Розраховувати значення конкретної величини протягом часу, наприклад у періоди до конкретної дати і різні форми змінного середнього. Існує багато методів моделювання цього завдання, але кожен з них вимагає підготовки потенційно складного вихідного тексту MDX і прийняття важливих рішень про моделювання метаданих. Наслідки неоптимального рішення можуть бути серйозними, наприклад, модель може виявитися значно менш дружньою (через надмірне збільшення розмірності показників), а розрахунки можуть здійснюватися занадто повільно (через надмірні обчислень на етапі виконання).


В даний час скласти вдалу модель нескладно. Завдяки ряду поліпшень майстра Business Intelligence Wizard можна розширити і поглибити модель. Для організації тимчасових розрахунків за допомогою Analysis Services 2005 досить просто задіяти аналітичні можливості Business Intelligence Wizard.


Використання майстра BI Wizard


Для тимчасового аналізу конкретного куба слід запустити Business Intelligence Wizard з контекстного меню Business Intelligence Developer Studio в Solution Explorer для розмірності (dimension) або куба розробки Analysis Services 2005. На екрані Choose Enhancement майстра (екран 1) перераховані удосконалення, що застосовуються до поточного об'єкту.








 
Екран 1. Вікно Choose Enhancement майстра Business Intelligence Wizard  

У більшості випадків операції тимчасового аналізу вводяться на пізніх стадіях циклу розробки, після того як буде завершена робота над базовою структурою метаданих і обчисленнями, не пов'язаними з часом. Важливо завершити структуру розмірності дат (або часу) бази даних до додавання тимчасової аналітики, тому що в майбутньому на її основі будуть будуватися обчислення, що генеруються майстром. Також важливо прийняти рішення про введення в цільової куб одного або кількох примірників (ролей) розмірності дати (наприклад, Ship Date – дата відвантаження, Order Date – дата замовлення), так як майстер змінює структуру цих ролей. А оскільки тимчасова аналітика може застосовуватися як до фізичних, так і до розрахункових показників, необхідно завершити проектування розмірності показників (у тому числі розрахункових показників), щоб мати повний набір параметрів при запуску майстра.


Перед застосуванням тимчасової аналітики необхідно вибрати цільову ієрархію і генеруються розрахунки. На екрані Choose Target Hierarchy and Calculations (екран 2) можна задати ієрархію розмірностей куба для аналізу з використанням часового ряду і тимчасових розрахунків. Як правило, призначається користувач або багаторівнева ієрархія в розмірності, щоб забезпечити аналіз на різних часових рівнях (наприклад, Years – роки, Semesters – семестри, Quarters – квартали). Спочатку вибирається ієрархія, а потім обчислення, які повинен зробити майстер. Важливо звернути увагу на те, що використовуваний майстром шаблон обчислень – повністю розширюваний, тому його легко настроїти у відповідності з потребами будь-якого споживача, місцевості або галузі.








 
Екран 2. Вікно Choose Target Hierarchy and Calculations  

Перше рішення – вибір ієрархії для використання в якості основи для аналізу часових розрахунків – заслуговує докладного пояснення, тому що істотно відрізняється від моделі Analysis Services 2000. У Analysis Services 2000 кожна розмірність містить єдину ієрархію; в Analysis Services 2005 одна розмірність може містити (і найчастіше містить) багато ієрархій.


Оскільки ми маємо справу з часом, велика ймовірність, що цільовий куб буде мати більше однієї ролі. Кожна роль грунтується на одній розмірності бази даних, але несе унікальне значення через різне відношення зовнішнього ключа до таблиці фактів. Наприклад, розмірність бази даних Date може виконувати різні ролі (Ship Date, Bill Date, Order Date) в контексті одного куба. Розмірність може мати (і часто має) кілька ієрархій, що охоплюють різні типи календарів, наприклад Fiscal (фінансовий), Reporting (звітний), Manufacturing (виробничий) і ISO 8601. У таких випадках слід запустити майстер кілька разів, щоб охопити кілька ієрархій в різних ролях розмірності. У Analysis Services 2005 майстер Dimension Wizard може за один прохід автоматично генерувати розмірність, яка буде містити будь-які або всі перераховані типи календарів.


Потім визначається діапазон обчислень (екран 3) із зазначенням показників, до яких слід застосувати обчислення. Майстер складає список всіх показників куба (як фізичних, так і розрахункових). При прийнятті рішення про показники слід враховувати як логічне відповідність, так і очікування користувачів зі сфери бізнесу. Вибравши показники, потрібно клацнути на кнопці Next, щоб переглянути результат вибору, а потім клацнути Finish, щоб застосувати зміни. Після цього можна дослідити куб, щоб переконатися в його розширених аналітичних можливостях.








 
Екран 3. Завдання діапазону обчислень із зазначенням потрібних показників  

Зміни в структурі бази даних і метаданих


Тепер звернемося до внутрішніх механізмів і відповімо на питання «як» і «чому» в галузі функціонування Business Intelligence Wizard, розглянемо базові структурні та необчислювальних зміни метаданих, відповідають різним етапам роботи майстра.


Першим ділом майстер створює новий іменований розрахунок (named calculation) у таблиці тимчасової розмірності в Data Source View (DSV). Іменований розрахунок – це обчислюваний стовпець, розташований виключно всередині DSV; в базовий джерело даних ніяких змін не записується. Іменований розрахунок служить джерелом для обчисленої ієрархії атрибутів. Обчислений атрибут містить одне невичісляемое значення (На основі іменованого розрахунку) на додаток до всіх вибраних користувачем обчислень. Майстер використовує константу в якості основи для обчислень, застосовуючи її до всіх рядків в таблиці розмірностей. Цей стовпець повертає натуральні значення в якості вибирається за замовчуванням величини і для порівняння з розрахунковими уявленнями.


Побудувавши стовпець, майстер створює атрибут розмірності, який вказує на обчислений стовпець. Оскільки ієрархія даного атрибуту містить в основному обчислення, логічно агрегувати ці члени не можна. Щоб відзначити ієрархію як неаддитивности, блокується системно-генерований рівень All. Властивість IsAggregatable атрибуту розмірності управляє існуванням рівня All; оскільки нам не потрібно агрегувати членів у обчислену ієрархію, йому присвоєно значення False.


На наступному етапі майстер призначає вибираним за замовчуванням членом обчисленого атрибуту єдиний невичісленний член, вказаний при створенні іменованого розрахунку. Розробники куба часто недооцінюють роль обираних за замовчуванням членів. Кожен атрибут у кубі, в тому числі Measures, має обираний за замовчуванням член. За відсутності явного фільтра, що задає інше умова, обираний за замовчуванням член ієрархії автоматично включається в кожен запит до куба.


У нашому прикладі призначення обирається за замовчуванням члена критично важливо, тому що потрібно уникнути повернення до розрахункового увазі через якийсь час, якщо тільки не надійде явний запит від користувача. Щоб підготувати точку для порівняння, потрібно надати натуральне значення даного показника поряд з різними розрахунковими. Для цього необхідний наш єдиний фізичний член. Визначення члена існує у всіх рядках, що рівносильне відсутності фільтраційного умови.


Після створення атрибуту бази даних майстер аналізує структуру куба, визначаючи наявність кількох ролей для розмірності цільового куба. Як зазначалося раніше, у кожному проході майстер обробляє одну розмірність куба, і в результаті з'являється один розрахунковий атрибут. Оскільки обчислення в контексті нецільових ролей не використовуються, розрахунковий атрибут блокується для ролей, до яких він не застосовується.


Моделювання обчислень


Після того як сформована необхідна структура куба і розмірностей, можна скласти власне обчислення. У залежності від місцезнаходження куба, кожен часовий розрахунок може існувати в одному з трьох станів.



Щоб з'ясувати, до якого стану належить поточна координата, зазвичай використовується функція IIF (у Analysis Services 2000); також можна використовувати оператор CASE (нововведення Analysis Services 2005). Однак даний підхід призводить до динамічних перевіркам у ході оцінки кожного осередку на етапі виконання, і результуючі вираження MDX швидко стають громіздкими, а складність налагодження підвищується в міру збільшення числа вкладень.


У майстрі Business Intelligence Wizard реалізований набагато більш ефективний і витончений підхід. Майстер використовує нові синтаксичні конструкції сценаріїв MDX для визначення конкретних діапазонів, до яких застосовуються обчислення. Analysis Services оцінюють оператори SCOPE статистично (один раз) при виконанні сценарію MDX, тому даний метод виключає необов'язкові перевірки осередків на етапі виконання.


Для ілюстрації цього підходу припустимо, що користувач запросив три обчислення: Year to Date, Year Over Year Growth і Twelve Month Moving Average. У лістингах 1-3 показані фрагменти сценарію MDX, що генерується майстром для цих обчислень.


Лістинг 1 будує розрахункових членів. Майстер присвоює значення NA облікового запису для стану 3, до поточної координаті обчислення не застосовується. Фахівці, знайомі з MDX, можуть відзначити новий, спрощений синтаксис оператора CREATE.


На наступному етапі (лістинг 2) встановлюється діапазон обчислень для обраних користувачем показників. Всі показники, що не потрапили в оператор SCOPE, зберігають значення NA, тому що користувач вказав, що обрані тимчасові аналітичні обчислення незастосовні.


Після того як буде вказано діапазон для коректних показників, можна призначити більш значущі вирази для розрахункових членів. У лістингу 3 показаний приклад присвоєнь MDX, відповідних обраним обчислень. Привласнення, найважливіше удосконалення MDX в Analysis Services 2005, дозволяють застосовувати вираження MDX до існуючих осередкам в просторі куба; результуючі значення потім агрегуються так само, як це робиться за відсутності виразів.


Корисні прийоми


Розглянемо вихідний текст MDX, генерований майстром, і ряд спеціальних прийомів, які можна задіяти при підготовці власних обчислень в Analysis Services 2005.


Як показано в лістингу 3, зручно використовувати ієрархії атрибутів в лівій стороні операції привласнення. У Analysis Services 2005 простір куба цілком визначається атрибутами, тому простір, до якого застосовуються обчислення, краще всього описати ієрархіями входять до нього атрибутів. І навпаки, вказівку діапазону для визначених користувачем ієрархій може призвести до надмірного обмеження області обчислень. Обчислення Year to Date ілюструє оптимальний метод через використання ієрархії атрибуту Fiscal Year, яка виключає член All (де обчислення застосовується). Даний підхід охоплює всі інші атрибути в ієрархії, незалежно від того, чи є вони членами All.


Слід зазначити, що в правій стороні операції прирівнювання використовуються багаторівневі настроювані ієрархії (а не ієрархії атрибутів), що дозволяє застосувати такі ієрархічно орієнтовані функції MDX, як ParallelPeriod і PeriodsToDate.


Ще один зручний прийом – задіяти функцію Aggregate (а не Sum) в обчисленні Year to Date. У Analysis Services 2005 функція Aggregate застосовна для обробки неаддитивности різнорідних рахункових і полуаддітівних показників, а також інших неаддитивности величин, таких як розмірності «багато до багатьох" і висловлювання з обчисленнями. Функцію Aggregate можна застосовувати навіть поверх деяких розрахункових показників, таких як відносини.


Вивчивши внутрішні механізми майстра Business Intelligence Wizard, можна розгорнути модифікований куб і поглянути на нього з точки зору кінцевого користувача.


Часовий аналіз – це просто


Як ми бачимо з цього прикладу, вдосконалена процедура тимчасового аналізу, SQL Server 2005 Analysis Services, з безліччю функцій і вбудованих поліпшень, забезпечує автоматичне, інтелектуальне розв'язання типових завдань у сфері бізнесу. Завдяки цим функціям і значно вдосконаленим графічним і аналітичним можливостям Analysis Services 2005 дозволяє швидко розгортати (з швидкою окупністю витрат) BI-додатки, що значно перевершують за своїми можливостями колишні інструменти.


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


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

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

Ваш отзыв

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

*

*