Oracle OLAP Option ( Да споделим опита )

Post on 02-Feb-2016

83 views 0 download

description

Oracle OLAP Option ( Да споделим опита  ). Ина Найденова , ТехноЛогика inaydenova@techologica.com. Oracle OLAP. Oracle Express Platform : Express Server Express Administrator Oracle Express Objects и др. Oracle Olap Option : Olap Analytical Engine като част от RDBMS Oracle - PowerPoint PPT Presentation

Transcript of Oracle OLAP Option ( Да споделим опита )

Oracle OLAP OptionOracle OLAP Option ( ( Да споделим опита Да споделим опита ) )

Ина Найденова, ТехноЛогика inaydenova@techologica.com

Oracle OLAPOracle OLAP Oracle Express Oracle Express PlatformPlatform::

Express ServerExpress Server Express Express AdministratorAdministrator Oracle Express ObjectsOracle Express Objects и др.и др.

OracleOracle Olap OptionOlap Option:: Olap Analytical Engine Olap Analytical Engine катокато част от част от RDBMS OracleRDBMS Oracle Analytic Workspaces, OLAP DML, SQL Interface to Analytic Workspaces, OLAP DML, SQL Interface to

OLAPOLAP Analytic Workspace Java APIAnalytic Workspace Java API BI Beans and Java OLAP APIBI Beans and Java OLAP API AWM, OLAP WorksheetAWM, OLAP Worksheet OracleBI Discoverer Plus OLAP, OracleBI Spreadsheet OracleBI Discoverer Plus OLAP, OracleBI Spreadsheet

Add-InAdd-In

Какво използвахме?Какво използвахме?

Цели:Цели: да създадем аналитично пространство с да създадем аналитично пространство с

подходящ многодименсионнен моделподходящ многодименсионнен модел да заредим данните в дефинираните кубоветеда заредим данните в дефинираните кубовете да дадем на клиентите въможност да анализират да дадем на клиентите въможност да анализират

даннитеданните

Използвани средства за целта:Използвани средства за целта: Analytic Workspace Manager Analytic Workspace Manager OracleBI Discoverer Plus OLAPOracleBI Discoverer Plus OLAP OracleBI Spreadsheet Add-InOracleBI Spreadsheet Add-In

Аналитичното пространствоАналитичното пространство

Може да се създаде чрезМоже да се създаде чрез::Analytic Workspace Manager (AWM)Analytic Workspace Manager (AWM)OracleBI Warehouse Builder (OWB)OracleBI Warehouse Builder (OWB)AW XML APIAW XML APIOLAP DML / DBMS_AWOLAP DML / DBMS_AW

AW AW може да се ползва отможе да се ползва от::BI tools BI tools нана Oracle OracleSQLSQLOLAP APIsOLAP APIs

Analytic Workspace ManagerAnalytic Workspace Manager

AWAWММ може работи в 2 режима: може работи в 2 режима:

Model ViewModel View – – представя представя многодименсионния модел на многодименсионния модел на даните (т.нар. даните (т.нар. Standard formStandard form))

Object ViewObject View – – едно ниво по-надолу, едно ниво по-надолу, имаме допълнителни обекти, с имаме допълнителни обекти, с които работи които работи OLAP engine-OLAP engine-аа

Последна версия 10.Последна версия 10.22

Основни елементи на логическия многодименсионнен Основни елементи на логическия многодименсионнен моделмодел::

МетрикиМетрики

ДименсииДименсии ЙерархииЙерархии НиваНива АтрибутиАтрибути

КубовеКубове

Елементи на Дименсионения Модел Елементи на Дименсионения Модел ((Model ViewModel View ))

D1

All time

20062005

Q1 Q4Q2 Q3 Q1 Q4Q2 Q3

M1 M2 M3 M1M2 M3…

…D2 D3 D31… D1 D2 D3 D30…

Quarter

Levels

Year

All

Month

Day

Стъпки при израждане на ДМ с Стъпки при израждане на ДМ с AWMAWM

1) 1) Установяване на връзка и създаване на празен Установяване на връзка и създаване на празен AWAW • създава се таблица създава се таблица AW$aw_nameAW$aw_name• права за достъп до аналитичното пространствоправа за достъп до аналитичното пространство• копиране на аналитично пространство (dbms_aw.aw_copy)копиране на аналитично пространство (dbms_aw.aw_copy)

2) 2) Съдаване на Съдаване на дименсите:дименсите:

- нивата- нивата- йерархиитейерархиите- атрибутитеатрибутите- mappingmapping на на

дименсиите дименсиите - зареждане на зареждане на

дименсионните дименсионните данниданни

Стъпки при израждане на ДМ с Стъпки при израждане на ДМ с AWMAWM

3) Създаване на кубове:3) Създаване на кубове: “ “рехав” (рехав” (sparsesparse)) и по кои дименсиии по кои дименсии как ще агрегираме даннитекак ще агрегираме данните дали да е компресиран дали да е компресиран дали да е разделен на дялове дали да е разделен на дялове

Стъпки при израждане на ДМ с Стъпки при израждане на ДМ с AWMAWM

СъздСъздaaване на кубовеване на кубове

Съхранение на многодименсионните данниСъхранение на многодименсионните данни

Компресиране на кубовеКомпресиране на кубове

Компресията - ограниченияКомпресията - ограничения По компресиранитеПо компресираните дименсии трябва да дименсии трябва да

бъдат агрегирани всички нива (не може да бъдат агрегирани всички нива (не може да използвате използвате skip-levelskip-level))

По компресираните дименсии може да се По компресираните дименсии може да се използва само използва само SUMSUM оператор оператор

Не може да дефинирате променлива Не може да дефинирате променлива едновременно с нормален композитен индекс едновременно с нормален композитен индекс и компресиран композитен индекси компресиран композитен индекс

Не може да имаме повече от една Не може да имаме повече от една променлива в компресиран куб променлива в компресиран куб **

Логическо разделяне на дяловеЛогическо разделяне на дялове

Работим с по-малки метрикиРаботим с по-малки метрики Ако имаме повече от 1 Ако имаме повече от 1 CPUCPU, , AWMAWM и и AW/XML AW/XML

Java APIJava API използват паралелизъм за да се използват паралелизъм за да се използват пълноценно всичките използват пълноценно всичките CPUsCPUs

Ако използвате Ако използвате Multi-Write Multi-Write възможностите на възможностите на 10g, 10g, може да имате много сесии, които да може да имате много сесии, които да променят отделните дялове променят отделните дялове

По-лесно се добавят и изтриват части от По-лесно се добавят и изтриват части от куба, фрагметация е по-малкакуба, фрагметация е по-малка

Ако използвате компресия, агрегациите се Ако използвате компресия, агрегациите се правят на ниво дялправят на ниво дял

Логическо разделяне на дяловеЛогическо разделяне на дялове

4) Създаване на метрика 4) Създаване на метрика

Стъпки при израждане на ДМ с Стъпки при израждане на ДМ с AWMAWM

5) 5) Зареждане наЗареждане на метрикаметрика

Стъпки при израждане на ДМ с Стъпки при израждане на ДМ с AWMAWM

DEFINE [program_name] PROGRAM PROGRAM ARGUMENT p_prod_level integer ALLSTAT SQL DECLARE CRS_ALLIANZ_CLNUM CURSOR FOR - SELECT - RPERIOD_ID,- CLFORMNT_ID, - .... FROM [source_name] - WHERE prod_level = :p_prod_level - GROUP BY - RPERIOD_ID,- ... ROLLUP(CLFORMNT_ID) SQL OPEN CRS_ALLIANZ_CLNUM SQL IMPORT CRS_ALLIANZ_CLNUM INTO - :MATCH MONTHS - :MATCH CLIENT_FOR_MONTHS - ... :MATCH TB_ALLIANZ_CLIENTS_NUM_STORED SQL CLOSE CRS_ALLIANZ_CLNUM SQL CLEANUP UPDATE COMMIT SHOW JOINCHARS ('TB_CLNUM - LEVEL ' p_prod_level ' LOADED!') END

Object ViewObject View Дименсиите – имаме Дименсиите – имаме

дименсии за елементите, дименсии за елементите, нивата и др., релации за нивата и др., релации за йерархичните отношенияйерархичните отношения

Атрибутите – в променливиАтрибутите – в променливи Метриките – във формули и Метриките – във формули и

променливипроменливи Правилата за агрегиране – в Правилата за агрегиране – в

aggregation maps aggregation maps и и valuesetsvaluesets

Object View – FormulasObject View – Formulas

DEFINE DEMO_CLNUM DEFINE DEMO_CLNUM FORMULA INTEGER FORMULA INTEGER

<list of dimensions><list of dimensions>

EQ aggregateEQ aggregate

((

DEMO_CLNUM_STORED DEMO_CLNUM_STORED using OBJ771105059using OBJ771105059

))

Aggregation MapsAggregation MapsDEFINE [name] AGGMAPDEFINE [name] AGGMAPAGGMAPAGGMAP

RELATION MONTHS_PARENTREL PRECOMPUTE(ALL) OPERATOR RELATION MONTHS_PARENTREL PRECOMPUTE(ALL) OPERATOR NOAGGNOAGG

RELATION SALES_CHANNELS_PARENTREL RELATION SALES_CHANNELS_PARENTREL PRECOMPUTEPRECOMPUTE(SCHL_AGG_VSET1) OPERATOR ) OPERATOR SUMSUM

RELATION PRODUCTS_PARENTREL RELATION PRODUCTS_PARENTREL PRECOMPUTE(PRECOMPUTE(PROD_AGG_VSET1) OPERATOR ) OPERATOR SUMSUM

RELATION CONTRACT_COUNT_PARENTREL RELATION CONTRACT_COUNT_PARENTREL PRECOMPUTE(CONTRACT_COUNT_LEVELREL 'CONTR_COUNT_L1') PRECOMPUTE(CONTRACT_COUNT_LEVELREL 'CONTR_COUNT_L1') OPERATOR OPERATOR SUMSUM

RELATION CLIENT_STATE_PARENTREL RELATION CLIENT_STATE_PARENTREL PRECOMPUTE(CLIENT_STATE_LEVELREL 'CLIENT_STATE_L2') PRECOMPUTE(CLIENT_STATE_LEVELREL 'CLIENT_STATE_L2') OPERATOR OPERATOR SUMSUM ……ENDEND

Можем ли сами даМожем ли сами да си направим “компресия”?си направим “компресия”?

За даден период За даден период [tk,tm] [tk,tm] имаме неадитивни имаме неадитивни дименсии, в чиито йерархии имаме възли дименсии, в чиито йерархии имаме възли само с 1 наследниксамо с 1 наследник

All

L1 E2L1 E1

L2 E1 L2 E2 … … L2 Ek …

…L3 E2 … L3 Em…

L4 E1 ... … … …

Искаме Искаме OLAP OLAP engine-engine-а точно а точно за тези възли да за тези възли да използва използва обощения обощения “on “on the fly”the fly”

Можем ли сами даМожем ли сами да си направим “компресия”?си направим “компресия”?

Нуждаем се от коректен Нуждаем се от коректен aggregation aggregation mapmap, който да се опреснява при всяко , който да се опреснява при всяко зареждане на даннитезареждане на данните

Например: дименсиите канали на Например: дименсиите канали на продажба и продукти са неадитивни, но продажба и продукти са неадитивни, но в в SCHL_AGG_VSET1 и и PROD_AGG_VSET1 се се съдържат всички елементи освен съдържат всички елементи освен възлите с един единствен наследниквъзлите с един единствен наследник

Можем ли сами даМожем ли сами да си направим “компресия”?си направим “компресия”?

DEFINE DEFINE F_NAMEF_NAME FORMULA INTEGER FORMULA INTEGER EQ EQ IF MONTHS GE '2003-JAN' AND IF MONTHS GE '2003-JAN' AND MONTHS LT '2004-JAN' THEN MONTHS LT '2004-JAN' THEN aggregate(MEASURE_STORED using AGG_MAP1)aggregate(MEASURE_STORED using AGG_MAP1)

ELSE ELSE IF MONTHS GE '2005-JAN' AND IF MONTHS GE '2005-JAN' AND MONTHS LT '2006-JAN' THEN MONTHS LT '2006-JAN' THEN aggregate(MEASURE_STORED using AGG_MAP2)aggregate(MEASURE_STORED using AGG_MAP2)

ELSE ELSE aggregate(MEASURE_STORED using AGG_MAP3)aggregate(MEASURE_STORED using AGG_MAP3)

SQL SQL достъп до многодименсионните масивидостъп до многодименсионните масиви

SQL SQL достъп до многодименсионните масивидостъп до многодименсионните масивиCREATE TYPE row_obj AS OBJECT (

column_first datatype, column_next datatype, column_n datatype);

CREATE TYPE table_obj AS TABLE OF row_obj;

SELECT * FROM TABLE ( OLAP_TABLE ( 'analytic_workspace',

'table_obj', 'olap_command', 'limit_map‘) )

MODEL DIMENSION BY(dimensions, gids) MEASURES(measures, attributes, rowtocell) RULES UPDATE SEQUENTIAL ORDER();

ДругиДруги Полезни изгледи:Полезни изгледи: AAll_olap2_aw_ll_olap2_aw_XXXXXXXX

V$AW_V$AW_XXXXXXXX Имплицитна смяна на текущото Имплицитна смяна на текущото AWAW Отделно Отделно temporary temporary таблично пространство за таблично пространство за OLAP OLAP

потребителитепотребителите Проблеми с освобождаването на паметтаПроблеми с освобождаването на паметта

select sum(dbas.bytes)/1024/1024 as mb from user_lobs dbaljoin user_segments dbas using (segment_name)where dbal.column_name = 'AWLOB' and

dbal.table_name ='AW$ALLIANZDW'; select sum(length(AWLOB)) from AW$ALLIANZDW;

OracleBI Spreadsheet Add-InOracleBI Spreadsheet Add-In

OracleBI Spreadsheet Add-InOracleBI Spreadsheet Add-In

OracleBI Spreadsheet Add-InOracleBI Spreadsheet Add-In

OracleBI Spreadsheet Add-InOracleBI Spreadsheet Add-In

OracleBI Discoverer Plus OLAPOracleBI Discoverer Plus OLAP

във Варна, Стара Загора и Бургас няма застрахователни офиси

Услуги свързани с банковия бизнес

Time: April 2006,….Time: May, Client Type: Private person, …

В заключениеВ заключениеМного е направено, но и има още какво Много е направено, но и има още какво

да се желае да се желае Работи се в нова посока:Работи се в нова посока:

Oracle Oracle BI Suite BI Suite базиран набазиран на Siebel Siebel Analytics Analytics платформатаплатформата

Въпроси ?Въпроси ?