on line analytical processing olap n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
線上分析式處理 On-line Analytical Processing OLAP PowerPoint Presentation
Download Presentation
線上分析式處理 On-line Analytical Processing OLAP

Loading in 2 Seconds...

play fullscreen
1 / 36

線上分析式處理 On-line Analytical Processing OLAP - PowerPoint PPT Presentation


  • 212 Views
  • Uploaded on

線上分析式處理 On-line Analytical Processing OLAP. 張珀銀、李建祥 2008.1.23. 大 綱. 功能特色 維度模式 特殊型態 塑模步驟 儲存方式 MDX 簡介 結 論. 功 能 特 色. 含 階層式關係的 多維度結構 有效的交叉比較與分析規格 資料結構與呈現方式的分離 多樣且彈性的操作 Roll-up Drill-down Slice and Dice Pivot. 維 度 模 式. 事實資料表 需要以彙總函數計算的屬性 維度資料表 分析所需的分群屬性 維度模式結構

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '線上分析式處理 On-line Analytical Processing OLAP' - phailin


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2
大綱
  • 功能特色
  • 維度模式
  • 特殊型態
  • 塑模步驟
  • 儲存方式
  • MDX簡介
  • 結 論
slide3
功能特色
  • 含階層式關係的多維度結構
  • 有效的交叉比較與分析規格
  • 資料結構與呈現方式的分離
  • 多樣且彈性的操作
    • Roll-up
    • Drill-down
    • Slice and Dice
    • Pivot
slide4
維度模式
  • 事實資料表
    • 需要以彙總函數計算的屬性
  • 維度資料表
    • 分析所需的分群屬性
  • 維度模式結構
    • 星狀綱目(Star Schema)
    • 雪花綱目(Snowflake Schema)
slide5
特殊型態
  • 非事實資料表(Factless Fact Table)
    • 事件追蹤管理(Event Tracking)
      • 問題:學生出席的次數?
      • 解法:增加虛擬欄位,再利用Count()加總
    • 覆蓋分析(Coverage Analysis)
      • 問題:促銷期間沒有賣出的商品?
      • 解法:建立覆蓋事實資料表,存入所有促銷商品,再與銷售事實資料表進行差集處理
  • 快照事實資料表(Snapshot Fact Table)
    • 彙總某時點的資料並儲存成預存資料,做為OLAP的資料源,以提升處理效能
slide6
塑模步驟
  • 建立事實資料表
    • 資料表格中需要被彙總的欄位
  • 建立維度資料表
    • 將其他非彙總性欄位根據分析角度歸類進行反正規化
  • 將各維度資料表主鍵加入事實資料表

銷售事實

-----------------------

ProductId

TimeId

CustomerId

StoreId

SalesQty

SalesAmount

slide7
儲存方式
  • Relational OLAP (ROLAP)
    • 明細資料與彙總資料存於RDB
    • 即時但效率差
    • 儲存空間耗用較低
  • Multi-dimensional OLAP (MOLAP)
    • 明細資料與彙總資料存於CUBE
    • 即時性差但效率好
    • 儲存空間耗用較高
  • Hybrid OLAP(HOLAP)
    • 明細資料於RDB
    • 彙總資料存於CUBE
    • 查詢效率近似MOLAP
    • 儲存空間介於MOLAP與ROLAP之間
slide8
MDX簡介
  • MDX (Multidimensional Expressions)
    • 針對OLAP多維資料庫的多維度查詢語言
    • 1997年由Microsoft 所提出,為OLE DB FOR OLAP的一部分,之後即於1998年內建於SQL SERVER中,名為Analysis Services。
    • 儘管MDX並非開放式的規格,其他廠商仍採用此規格,可見MDX確實有它的重要性。
    • 因MDX由MS所主導,之後的範例以SQL 2005中的Analysis Services為主。
  • OLAP資料庫中的CUBE結構
    • 多維度的資料結構 (CUBE),瞭解MDX之前,須先瞭解CUBE的結構
slide9
CUBE結構
  • OLAP資料庫
    • 多維度的資料結構 (CUBE)
slide10
CUBE的物件架構與命名原則
  • 在Analysis Services中每個物件都要有個識別碼,以中括號[]括起來。
  • 找2005年的二月
    • [TIME].[ALL].[2005].[Q1].[二月]
  • 有一原則:結構後面可以接成員,成員不能接結構
slide11
MDX語法的分類
  • 資料定義語言:CREATE,DROP等等
  • 資料操作語言:SELECT,UPDATE
  • 指令碼陳述式:管理變數範圍,流程控制的指令碼:如SCOPE,CACULATE
slide12
基本的MDX查詢句
  • SELECT[AXIS的定義 [, <AXIS的定義>…]]FROM <CUBE的定義>WHERE <SLICER 定義>
  • AXIS:在軸上所要看到的維度成員或計量值, 亦可以使用index的方式指定0:COLUMNS,1:ROWS2:PAGES,3:SECTIONS4:CHAPTERS
  • CUBE:指定想要用的CUBE
  • SLICER:指定要出現在結果集中的成員或量值
slide13
基本的MDX查詢句
  • 範例:以SQL 2005中的範例資料庫”Adventure Work”為例
  • MDX CODE
  • SELECT {[Measures].[Sales Amount], [Measures].[Order Quantity]} on columns, {[Product].[Category].[Bikes],[Product].[Category].[Clothing]} on rowsFROM [Adventure work]

on columns

on rows

slide14
基本的MDX查詢句
  • SELECT {[Measures].[Sales Amount], [Measures].[Order Quantity]} on columns, {[Product].[Category].[Bikes],[Product].[Category].[Clothing]} on rowsFROM [Adventure work] WHERE {[Date].[Calendar Year].[CY 2002]}
  • 此結果只有2002年的總合

on columns

on rows

slide15
基本的MDX查詢句
  • SELECT {[Measures].[Sales Amount], [Measures].[Order Quantity]} on columns, {[Product].[Category].[Bikes],[Product].[Category].[Clothing]} on rowsFROM [Adventure work] WHERE {[Date].[Calendar Year].[CY 2002], [Date].[Calendar Year].[CY 2003]}
  • 此結果為2002與2003年的總合

on columns

=16,927(2002)+35,331(2003)

on rows

slide16
基本的MDX查詢句
  • SELECT {[Sales Channel].[Sales Channel].[Sales Channel].Members}*{[Measures].[Sales Amount], [Measures].[Order Quantity]} on columns, {[Product].[Category].[Bikes],[Product].[Category].[Clothing]} on rowsFROM [Adventure work] WHERE {[Date].[Calendar Year].[CY 2002], [Date].[Calendar Year].[CY 2003]}

使用*運算子將Members 與Sales Amount跟Order Quantity兩個集合交叉乘積

slide17

在SELECT中以WITH 建立導出成員,命名集,計算資料表格。WITH所建立的物件僅限於當次查詢有效。

  • WITH [<導出成員的定義>]
  • [<自訂命名集的定義>]
  • [<資料格計算的定義>]
  • 導出成員的定義方式
  • MEMBER [<成員名稱>] AS ‘<計算公式>’
  • [, SOLVE_ORDER =<解決順序>]
  • [,CELL_PROPERTY>=<VALUE_EXPRESSION>…]
  • [,FROMAT_STRING=<顯示格式設定>]
進階的MDX查詢句
slide18

展示一綜合範例如下

  • WITH
  • -- 新增導出成員 達成率
  • Member [Measures].[達成率] AS
  • [Measures].[Sales Amount]/
  • [Measures].[Sales Amount Quota]
  • , Format_String =‘Percent’ – 顯示為百分比
  • -- 新增導出成員 去年同期達成率Member [Measures].[去年同期達成率]AS {ParallelPeriod([Date].[Calendar].[Calendar Year]), Measures.[達成率]}
  • , Format_String = ‘Percent’ --顯示為百分比
進階的MDX查詢句
slide19

續上之範例如下

  • SELECT {[Measures].[Sales Amount], [Measures].[Sales Amount Quota],
  • [Measures].[達成率],
  • [Measures].[去年同期達成率] on 0,
  • {Sales Territory}.[Sales Territory Country].Members on 1
  • FROM [Adventure Works]
  • WHERE
  • [Date].[Calendar].[Calendar Year].[CY 2004]}
進階的MDX查詢句
slide20
進階的MDX查詢句

使用 WITH 所建立的導出成員

slide21
進階的MDX查詢句
  • NON EMPTY: 查詢非空值之結果
    • 假設ML為非空值之ROWS
  • Select
  • {[Measures].[Sales Amount]} on 0,
  • Non Empty [ML] on 1
  • From [Adventure Works]
slide22

SUBCUBE:若只需要與cube中的一小部分進行互動,可將查詢範圍限制在subcube中,可以改善查詢效能。CREATE SUBCUBE <Subcube 別名> AS <Subcube 運算式>

  • 範例
  • CREATE SUBCUBE [Adventure works] AS
  • SELECT
  • {[Measures].[Sales Amount]} on 0,
  • {[Q3 CY 2003] on 1}
  • FROM [Adventure work]
  • Select
  • {[Measures].[Sales Amount]} on 0,
  • Non Empty [ML] on 1
  • From [Adventure Works]
進階的MDX指令
slide23
進階的MDX指令
  • Drill Through:一個cube中存放了來源與匯總資料,select可取後匯總資料,而drill through則可以取得來源資料。
  • DrillThrough 語法
  • DrillThrough [<資料筆數>][<起始筆數>] <MDX SELECT> [<回傳欄位>]
  • 範例
  • DrillThrough
  • Select
  • {[十月 30, 2003], [Order Quantity]} on 0,
  • {[Bikes]} on 1
slide24
結論
  • OLAP解決了SQL在RDB上彙總資料的彈性與效能問題
  • 階層式的多維度CUBE結構,能提供給決策者以Roll-up 或 Drill-down方式分析資料
  • 多種儲存結構(ROLAP, MOLAP, HOLAP)滿足效能及即時性的需求
  • MDX提供開發者存取CUBE的語言,能直接存取彙總資料,不需要利用SQL彙總交易資料,能發揮OLAP的優點
slide25
OLAP階層與量值
  • CUBE的結構裡有維度和量值,而維度下有階層,階層下有層級,每個層級下裡有許多成員,其從屬關係如下

維度

成員

階層

成員

層級

成員

量值

slide26
OLAP階層與量值│範例
  • 以某商品的銷售量的時間維度 為例

成員

時間維度

2001

2002

2003

Q1

Q2

Q3

Q4

JAN.

FEB.

…..

MON.

…..

銷售量

slide32
事實與維度資料

事實資料:

銷售量

維度資料:

銷售年度

維度資料:

車型

slide33
星狀綱目

產品維度

----------------------

ProductId

BrandName

ProductName

SKU

時間維度

----------------------

TimeId

TheYear

TheMonth

TheDay

銷售事實

-----------------------

ProductId

TimeId

CustomerId

StoreId

SalesQty

SalesAmount

顧客維度

----------------------

CustomerId

AccountNum

Name

Address

門市維度

----------------------

StoreId

StoreName

StoreType

StoreAddress

slide34
雪花狀綱目

產品類別維度

----------------------

ProductClassId

ProdSubcategory

ProdCategory

ProdDepartment

門市區域維度

----------------------

RegionId

SalesCity

SalesRegion

SalesCountry

產品維度

----------------------

ProductId

BrandName

ProductName

SKU

門市維度

----------------------

StoreId

StoreName

StoreType

StoreAddress

銷售事實

-----------------------

ProductId

TimeId

CustomerId

StoreId

SalesQty

SalesAmount

顧客維度

----------------------

CustomerId

AccountNum

Name

Address

時間維度

----------------------

TimeId

TheYear

TheMonth

TheDay

slide35
維度資料表的建立

尺寸資料表

---------------

SizeId

SizeUnit

SizeQty

產品維度資料表

----------------------

ProductId

ProductName

ColorName

TypeName

SizeUnit

SizeQty

產品資料表

-----------------

ProductId

ProductName

ColorId

TypeId

SizeId

反正規化

顏色資料表

---------------

ColorId

ColorName

型別資料表

---------------

TypeId

TypeName

slide36
塑模步驟三

產品維度

----------------------

ProductId

BrandName

ProductName

SKU

時間維度

----------------------

TimeId

TheYear

TheMonth

TheDay

銷售事實

-----------------------

ProductId

TimeId

CustomerId

StoreId

SalesQty

SalesAmount

顧客維度

----------------------

CustomerId

AccountNum

Name

Address

門市維度

----------------------

StoreId

StoreName

StoreType

StoreAddress