Oracle Essbaseessbase.ru/Uploads/Oracle+Essbase_copy.pdfEssbase •Универсальный...

Post on 17-May-2020

29 views 0 download

transcript

<Insert Picture Here>

Oracle EssbaseСахаров Андрейвед. консультант Oracle CIS

Oracle OLAP

Oracle Data Mining

Oracle Partitioning

Oracle Warehouse Builder

ХРАНИЛИЩА И ВИТРИНЫ ДАННЫХ

ИНСТРУМЕНТЫ БИЗНЕС-АНАЛИЗА и ОТЧЁТНОСТИ

Oracle Data Integrator

ORACLE ORACLE ESSBASEESSBASE

ORACLE DATABASE

Oracle Exadata Server

АППАРАТНО-ПРОГРАММНАЯ ПЛАТФОРМА РЕАЛИЗАЦИИ ОЧЕНЬ БОЛЬШИХ БД

Oracle BI Suite EE Oracle RTD

Аналитическая платформа Oracle

Oracle BI Suite EE

Essbase

• Универсальный OLAP-сервер для хранения, обработки и представления информации

• Может использоваться • дополнительно к хранилищу• независимо от хранилища

• Загрузка данных из хранилища данных и / или непосредственно из бизнес приложений

• Реализован на основных 32 и 64 битных аппаратных платформах

Развитые возможности для динамического анализа данных• Детализация, • Вращение, • Выборка, • Сравнение, • Ранжирование, • Сортировка, • Фильтрация, • Группировка, • Вычисления, • Аннотация, • Изменение (“write back”), • ……..

Развитые вычислительные возможности

• Широкая функциональность: • От простого агрегирования до сложных многомерных

распределений• Результаты могут храниться или вычисляться «на лету»

• Поддержка иерархических взаимосвязей• Любые виды несбалансированных иерархий• Любое количество альтернативных иерархий

• Более 350 встроенных функций• Простой синтаксис, расширяемость

АрхитектураУровень баз данныхПромежуточный уровеньКлиентский уровень

Административные сервисы

Интеграционныесервисы

MaxL, MDXC API, VB API, Java

API

Административная консоль

Интеграционная консоль

TCP/IP

HTTP

TCP/IP

Essbase

RDBMSODBC

ОбслуживающиесервисыHTTP

Essbase Spreadsheet Add-inSmart View for Office

Block Storage

AggregateStorage

TCP/IP

XOLAP eXtending OLAP on RDBMS

Block Storage Database• Исходный механизм хранения в Essbase• Для приложений, связанных с итеративным планированием,

распределениями, сложным анализом (анализ продаж, анализ прибыльности)• Если необходимо много процедурных вычислений и запись изменений на

любой уровень агрегации• Управление порядком вычисления измерений• Вычисление всей или части БД• Выполнение сложных вычислений

Данные на нижем уровне

Вычисленная БД

Вычислительные процедуры

Агрегированные данные

ОтчётДанные на нижем уровне

Aggregate Storage Database• Реализован в 2005 г.• Для крупномасштабных, разреженных данных с большим числом

(десятки) больших (сотни тысяч) размерностей • Высокая гибкость для отчетов и анализа• Автоматическая оптимизация хранения, сжатие• Стандартный набор правил агрегации

eXtending OLAP on Relational Database - XOLAP

• Кубы динамически подгружаемые из RDBMS• Конструирование приложений (многомерная

модель на основе таблиц/колонок БД) в Essbase Studio

• Отчётность и анализ через OLAP инструментарий:• Smart View for Microsoft Office• BI+: Web Analysis / Financial Reports / Answers• Oracle Essbase Visual Explorer

RDBMSSQL

Компоненты Essbase

• Essbase:• Essbase database • Essbase Server• Administration Services• Smart View• MaxL, ESSCMD, MDX• C API, VB API, and Java API

• Дополнительные компоненты:• Integration Services• Essbase Studio

Administration Services Console

• Интерфейс для администрирования базы данных и системы

Навигационная панель

Окно объектов

Окно сообщений

Компоненты Среды Реализации

• Объекты базы данных• Outline (.OTL)• Rules files (.RUL)• Calculation scripts (.CSC)

• Аналитические интерфейсы• Smart View• Spreadsheet Add-in

• Integration Services• Essbase Studio

Outlines• Редактирование древовидных структур для иерархий

измерений• Редактирование правил консолидации и математических

отношений между элементами измерений

Rules Files• Отображений источников данных в целевые базы данных

Oracle Essbase• Загрузка данных и иерархий измерений

Поля отображаемые в Измерения

Игнорируемые поля

Calculation Scripts

• Вычисляют всю или часть базы данных• Управляют порядком вычисления Измерений• Совершают сложные вычисления

данные “Level 0”

Результирующая база данных

“Calculation script”

Smart View

• Устанавливаемый через Web тонкий клиент, который встраивается в Microsoft Office приложение

• Позволяет редактировать (Excel) и просматривать данные, создавать произвольные отчёты

Excel, Word и PowerPoint с Smart

ViewБазы Данных

Essbase

Provider Services

Java API

Infrastructure

HTTP(S) TCP/IP

Block Storage DatabaseBlock Storage Database

Проектирование Приложений и Баз Данных

• Приложения• Содержат BS базы данных и скрипты• Размещается на сервере, на котором Essbase Server

установлен

• Базы данных• Репозиторий многомерных аналитических данных• Содержат объекты баз данных и определения

секретности

Essbase Server ApplicationApplication

Создание Block Storage Applications

1

2 3

Создание Block Storage Databases

2

1

3

Рекомендации

Одна База Данных на Приложение рекомендуется.• Серверные ресурсы лучше балансируются. • Если приложение становится недоступным, все базы

приложения недоступны.• Исключения:

• Приложения для задач планирования• “Currency” базы данных

Создание объектов в “Outline”

• Терминология:• “Generations” • “Levels”

Generation 3

Generation 2

Generation 1

Level 0 (Leaf node)

Level 1

Level 2 или Level 1

Ancestors of• Act vs Bud• Act vs Fcst• Bud vs Fcst

Children of Scenario Variances

Descendants of Scenario

Типы Измерений «Dimension»

Нет

Счета

Время

Страны

Валюта

Атрибуты

Создание Измерений и Значений измерений

• «Add child» добавляет значение на один уровень ниже выбранного значения.

• «Add sibling» добавляет значение на том же уровне, что и выбранное значение.

• Если выбранное значение (элемент) является Измерением, «Add sibling» добавляет новое измерение.

Add Child Add Sibling

Перемещение Измерений и Значений измерений

• Перемещение родителя так же перемещает его дочерние значения.

• Вставка значения как дочернего, делает его первым дочерним значением.

• Вставка значения как равного, делает его следующим значением на уровне.

42

1 3

Вырезать и перетащить

Модификация Свойств Значений

• Опции Хранения• Метод Консолидации• Алиасы• Атрибуты• Пользовательские атрибуты

(UDAs)• Формулы вычисления

Формула вычисления

Свойства значения

Вычисление на основе правил определённых в «Outline»Два способа:• Иерархическая структура

• Операции Консолидации• Разделяемые «Shared» значения

• Формулы вычисления значений

Операторы консолидации определяют способ консолидации значений к родительскому элементу:

• Addition (+)• Subtraction (-)• Multiplication (*)• Division (/)• Percent (%)• Exclude from consolidation (~) Does not use the member in the consolidation to its parent.

• Never consolidate (^) Does not use the member

in any consolidation in any dimension.

Операторы Консолидации

Act Vs Bud = Current Year – Budget

Current Year (+)

Budget (-)

Act Vs Bud

Разделяемые значения «Shared Members»

• Не хранят данные• Создают индексный

указатель на хранимое значение

• Всегда являются значением уровня 0 «level 0 members»

• Размещаются после (ниже) хранимых элементов в схеме «outline»

Scenario

Act Vs Bud

Current Year

Budget

Scenario Variances

Budget

(~)

(~)

(~)

(~)

SharedCurrent Year (+)

(-) Shared

Формулы вычисления значений

• Определяют вычисления в схеме «outline»:

Порядок консолидации значений• Порядок консолидации определяется порядком значений

в схеме «outline».• Вычисления производятся в порядке сверху-вниз.

Parent

Member 4

Member 2

Member 1

Member 3

Member 7

Member 5

Member 6

(+)

(+)

(-)

(*)

(%)

(/)

(~)

10

20

25

40

50

60

70

30

5

200

400

25

40

50

60

6.67

6.67 Parent = ((((M1 + M2) – M3) * M4) % M5) / M6

Интеллектуальные «Intelligent» вычисления

Только блоки данных отмеченные как Изменённые пересчитываются.

Создание алиасов для значений

Алиасы• Используются для отчётности• Обновляются в свойствах

схемы «Member Properties»• Хранятся в таблицах алиасов

Таблицы алиасов• Создаются в свойствах схемы• Обновляются отдельно

Загрузка значений измерений с помощью «Rules Files»

Источник данных

Выборка «Rules files»

Essbase БД

Иерархия

Создание «Rules Files»Раздел ШагиПодготовка 1. Открыть источник данных.

2. Установить свойства источника.3. Ассоциировать «rule» с схемой «outline»

БД.4. Если необходимо, форматировать файл.

Действия 5. Определить метод загрузки значений.6. Определить свойства полей

Завершение 7. Проверить корректность описаний.8. Сохранить «rule».9. Выполнить «rule».

Выбор Измерения

12

34

Выбор метода построения

• «Generation»• «Level»• «Parent-child»

1

2

3

4

Определение свойств полей

• Измерение• Тип поля• Номер поля

2

3

1

Дополнительно определить правила поддержки загрузки значений измерения

• Передвигать значения• Модифицировать свойства значений• Сортировка значений• Способ обновления

Загрузка данных

Источник данных

«Rules files» БД Essbase

Источники данных требующие «Rules File»

• Загрузка из SQL БД• Одновременное построение Измерений• Изменение данных

• Шкалирование• Изменение знака• Пропуск полей

• Изменение имён (значений)• Добавление префикса или суффикса• Добавление отсутствующих измерений• Измение порядка полей

Определение свойств полей

• Для каждого поля определяется – метод загрузки и имя поля.

1

3

2

Доопределение отсутствующих измерений

• Если необходимо, доопреляется заголовок для отсутствующего измерения

2

3

Отсутствует измерение Сценарий

1

Установка опций загрузки

• Перезаписывать, вычитаь из, суммировать с существующими значениями

• Изменять знак

Вычисления в Block Storage Essbase

• Значения в БД:• Исходные данные• Вычисляемые данные

• Вычисления:• «Outline» вычисления• Вычисления на основе скриптов

ОтчётВычисленная БДИсходные

данные

Вычисления

Вычисления основанные на «Outline»

• Используются для простых вычислений• Основывается на определённых в схеме «outline»

отношениях или формулах• Вычисляется вся БД

Вычисленная БД

«Outline»

Задание на вычисление по

умолчанию

CALC ALL

Входные данные

Вычисления основанные на Скриптах

• Вычисляется вся или часть БД• Управление порядком вычисления измерений• Выполнение сложных вычислений

Вычисленная БД

Пользовательские скрипты

Входные данные

Редактор Сриптов

Функции и команды

Измерения и значения

Порядок вычислений

•CALC ALL вычисляет схему в следующем порядке:

Оптимальный порядок:

От Наибольшего к НаименьшемуОптимальный

порядок:

От Наименьшего к Наибольшему

3. Плотные «Dense» измерения (в порядке в схеме)

4. Разряженные измерения (в порядке в схеме)

5. Двух проходные «Two-pass» вычисления

1. Измерения типа «Account»

2. Измерения типа «Time»

Блоки данных и Индексы

Scenario->Product->Customer

Блок Scenario Product Customer1 Current Year Lightbolt 365 A IBM2 Current Year Lightbolt 365 A Acer

… … …

Индексы блоков данных

Физические данные хранятся в блоках данных

Определения опций хранения Измерений

AccountsYear

Tot

Ячейка данных

• Уникально адресуема• Требуется 8 байт дискового пространства

100

123

131

166

196

150

149

182

231

115

120

143

100 Units of Lightbolt 365 A hard drives sold to IBM in February of the

current year

Статистика БД

Свойства Измерений

• Конфигурация Плотное-Разряженное («Dense-sparse»)• Количество значений в Измерении• Количество фактических значений

Измерение типа Атрибуты

Статистика по блокам

Вычисления в БД

Структура вычислительных Скриптов

• Комментарии

/* <=---BEGIN COMMENT TAGInsert comments between begin comment and end comment tags. END COMMENT TAG---=> */

Служебные команды

• команды - SET определяют режимы настройки среды выполнения

Фиксация множеств - секции Fix

Начало внешнего (основного) блока Fix

Окончание основного блока Fix

Внутренний блок Fixes

Пример вычислительного блока

Агрегация

• Используются CALC DIM или CALC ALL команды

Управление вычислениями

Фокусировка

Страницы до начала вычислений

«Budget Retail» блоки в памяти для вычислений

FIX(Budget, @ICHILDREN(Retail))"Net Sales" = "Gross Sales"–Discounts;ENDFIX

Страницы после вычислений

Оператор IF

Все блоки в памяти для проверки условий и вычислений

IF(@ISMBR(Budget) AND @ISICHILD(Retail))"Net Sales" = "Gross Sales"–Discounts;ENDIF

Страницы до начала вычислений

Страницы после вычислений

Синтаксис

IF в «outline» формуле IF в вычислительном скрипте

Units(IF(@ISMBR(Budget))

Units = "Prior Year" * 1.1;"List Price" = "Prior Year" * 1.25;"Discount %" = "Prior Year" * .90;

ENDIF)

Сравнение FIX и IF

• Результат вычислений один и тот же, но что быстрее?Units(IF(@ISMBR(Sep)) Units=@PRIOR(Units, 1);ENDIF

IF(@ISMBR(Oct)) Units=@PRIOR(Units, 2)*1.1;ENDIF)

FIX (Sep) Units=@PRIOR(Units, 1);ENDFIX

FIX (Oct) Units=@PRIOR(Units, 2)*1.1;ENDFIX

Units

Aug 100

Sep 100

Oct 110

Количество обрабатываемых блоков

Units(IF(@ISMBR(Sep)) Units=@PRIOR(Units, 1);ENDIF

IF(@ISMBR(Oct)) Units=@PRIOR(Units, 2)*1.1;ENDIF)

FIX (Sep) Units=@PRIOR(Units, 1);ENDFIX

FIX (Oct) Units=@PRIOR(Units, 2)*1.1;ENDFIX

IF обрабатывает все блоки

FIX для значений «dense» обрабатывает блоки с данными

Количество проходов

Units(IF(@ISMBR(Sep)) Units=@PRIOR(Units, 1);ENDIF

IF(@ISMBR(Oct)) Units=@PRIOR(Units, 2)*1.1;ENDIF)

FIX (Sep) Units=@PRIOR(Units, 1);ENDFIX

FIX (Oct) Units=@PRIOR(Units, 2)*1.1;ENDFIX

Один вычисляемый блок элементов требует один проход на блоках данных

Два FIX утверждения требуют два прохода на блоках данных

Ссылки на значения

Ссылки на значение

Units / Units->"Channel Total"

1

2

3

1. Block 1 Units / Block 3 Units

2. Block 2 Units / Block 3 Units

3. Block 3 Units / Block 3 Units

Unit Mix по Cust вычисления

1. Current Year->O-IBM->Family Total2. Current Year->OEM->Family Total3. Current Year->Channel Total->Family Total

Блоки данных

Ссылки на множество значений

Функции работы с множеством значений:• Генерируют множество значений для вычислений• Обычно используются как аргумент в FIX утверждениях и

других функциях

FIX(@ICHILDREN(OEM)) "Unit Mix by Chan" = Units / Units->OEM;ENDFIXFIX(@ICHILDREN(Retail)) "Unit Mix by Chan" = Units / Units->Retail;ENDFIXFIX(@ICHILDREN(Distributor)) "Unit Mix Chan" = Units / Units->Distributor;ENDFIX

Относительные ссылки

• Ссылаются на значения соотнесённые к текущему элементу:• Родитель• Дочерние на специфическом уровне «level» или генерации

«generation»

"Unit Mix by Chan" = Units / @ANCESTVAL(Customer,3,Units);

«Generation» 3 «customers»

Переменные

• Temporary Variables

• Substitution Variables

VAR RetDisc = 1.005FIX(@CHILDREN(Retail)) Discounts = Discounts * RetDisc;ENDFIX

FIX(@CurYear) "Cur Mo Vs Prior" = @VAR(&CurrMonth, &PriorMonth);ENDFIX

• Хранят промежуточные значения• Уменьшают сложность скриптов• Улучшают производительность

Temporary Variables

VAR

Создание Substitution Variables

1

3

6

4 5

Aggregate Storage DatabaseAggregate Storage Database

Aggregate Storage

Оптимизирована для:• Быстрой агрегации кубов• Большого количества измерений и значений• Крайне разряженных данных

Ключевые характеристики

• Данные загружаются на «level» 0.• БД доступна только на чтение ( в 11.1.2 возможна

запись).• Значения основанные на формулах - MDX запросы.• Все формулы и агрегации вычисляются в момент

запроса.• Данные хранятся в Табличных Пространствах.• Измерения

• Нет ограничений на число Измерений• Максимальное количество комбинаций значений: 2^52

• Одна БД на приложение

Формулы вычисления Значений

"Sales" / "Net Profit";

[sales] / [net profit]

Синтаксис Формул

MDX синтаксис

Приложения и базы данных

Различия:• нет «Calculation scripts»• нет вторичных БД• нет БД Валют

Aggregate Storage Block Storage

Rules Files

• Поддерживаются для:• Файловых источников• SQL источников

Иерархии

• Поддерживаются:• Хранимые иерархии• Динамические иерархии• Множество иерархий для одного измерения

Хранимые (Stored) Иерархии

• Преимущества:• Потенциально позволяют хранить

агрегированные данные• Улучшают время выполнения

запросов

• Но:• Ограничены использованием только

Limited use of унарных операций• Ограниченное использование «Label

Only»• Поддержка только одного экземпляра

значения измерения

Dimension

Level_1_2

Level_0_3

Level_2_1

Level_1_1

Level_0_1

Level_0_2

Label Only

Label Only

Stored

+

~

Label Only

+

+

+

~

Level_0_4 +

Label Only

Динамические «Dynamic» Иерархии

• Преимущества:• Любой оператор консолидации• Формулы на значениях

измерения• «Label Only» на любом уровне• Неограниченные «shared

members»

• Но:• Значения вычисляются только по

запросу (никогда не преагрегируются)

• Потенциально ухудшают время выполнения запроса

Years

Curr Year

Prev Year

Variance

Dynamic

~

~

+

Variance % ~

[20: [Curr Year]-[Prev Year]]

[20: ([Curr Year]-[Prev Year])/[Prev Year]*100]

Label Only

Множественные Иерархии

Возможность сочетать хранимые и динамические иерарахии для измерения.

Time

QTD

QTD(Jan)

MTD

Jan

Label Only

Multiple Hierarchies Enabled

+

+

+

Dynamic

QTD(Feb) ~

Label Only

Feb +

~

[0: [Jan]]

[0: [Jan] + [Feb]]

Stored

Редактор формул

Аналогичен «block storage» редактору:

• Списки выбора• Автоматическое

заполнение• Цветовое кодирование

Ссылки на значения

1. Americas Sales / Geography Sales

2. Europe Sales / Geography Sales

3. Asia Pacific Sales / Geography Sales

4. No Region Sales / Geography Sales

5. Geography Sales / Geography Sales

[Net Sales] / ([Net Sales], [Geography])

Динамические ссылки

1. IBM Sales / Major Accounts Sales

2. Major Accounts Sales / Customer Sales

3. Acme Distribution Sales / Wholesale Accounts Sales

4. Wholesale Accounts Sales / Customer Sales

5. Customer Sales / Customer Sales

[Net Sales] / ([Net Sales], Ancestor ([Customer].CurrentMember, 1))

Проверка условий – IIF()

• Включает два возможных результата• Истина - действие• Ложь - действие

• Используется Missing ключевое слово для возврата #MISSING

• Не поддерживается - Else

IIF ([Gross Sales] > 900000 AND IsLevel ([Sales People].CurrentMember, 0), [Gross Sales]*.035, Missing

)

Database Partitioning

Типы Partition

• Replicated partitions• Transparent partitions• Linked partitions

Основные понятия

Исходная БД Целевая БД

Partition cellPartition area

Replicated Partitions

• Традиционный подход• Копия данных• Множество источников• Ручная репликация• Только «Block storage»

Источники данных

Целевые данные

Transparent Partitions

• «Окно» между БД• Бесшовная передача• Текущие данные• Требуется синхронизация

«Outline»

Источники данных

Целевые данные

Linked Partitions

• Точка перехода• Связывает объекты• Различные схемы• Нет репликации • Нет синхронизации схем

Источники данных

Целевые данные

Создание Partitions

1

2

3

4

Идентификационная информация

• Исходная и Целевая БД• Пользователь

• Права на запись на Целевой

• Права на чтение на Исходной

Проектирование «Aggregate Storage Partition»

• Поддерживаются «Transparent» и «Linked»

• Комбинируется с «Block»• Расширение аналитических

возможностей• Нет синхронизации

Replicated,linked или

transparent

«Block» Целевая БД

«Block» БД Источник

«Aggregate Storage» БД

Источник