36
Oracle OLAP Option Oracle OLAP Option ( ( Да споделим опита Да споделим опита ) ) Ина Найденова, ТехноЛогика [email protected]

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

  • Upload
    bena

  • View
    94

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

Ина Найденова, ТехноЛогика [email protected]

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

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

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

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

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

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

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

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

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

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

Може да се създаде чрезМоже да се създаде чрез::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

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

Analytic Workspace ManagerAnalytic Workspace Manager

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

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

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

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

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

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

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

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

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

Елементи на Дименсионения Модел Елементи на Дименсионения Модел ((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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

aggregation maps aggregation maps и и valuesetsvaluesets

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

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

))

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

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

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

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

За даден период За даден период [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”

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

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

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

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

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

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

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)

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

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

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

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();

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

ДругиДруги Полезни изгледи:Полезни изгледи: 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;

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

OracleBI Spreadsheet Add-InOracleBI Spreadsheet Add-In

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

OracleBI Spreadsheet Add-InOracleBI Spreadsheet Add-In

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

OracleBI Spreadsheet Add-InOracleBI Spreadsheet Add-In

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

OracleBI Spreadsheet Add-InOracleBI Spreadsheet Add-In

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

OracleBI Discoverer Plus OLAPOracleBI Discoverer Plus OLAP

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

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

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

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

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

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

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

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

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

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